Agile Development Overview

15
Agile Development Overview Mark Kovacevich [email protected]

description

This is a presentation I developed to promote Agile Development in one of my former organizations.

Transcript of Agile Development Overview

Page 1: Agile Development Overview

Agile DevelopmentOverview

Mark Kovacevich

[email protected]

Page 2: Agile Development Overview

Purpose

The purpose of this presentation is to

provide an overview of Agile Development

Page 3: Agile Development Overview

Agile Development Defined

An iterative and incremental (evolutionary) approach to software development

which is performed in a highly collaborative manner

by self-organizing teams within an effective governance framework

with "just enough" ceremony

that produces high quality software

in a cost effective and timely manner

 which meets the changing needs of its stakeholders.

Page 4: Agile Development Overview
Page 5: Agile Development Overview

Principles Behind the Agile Manifesto

● Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.

● Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.

● Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.

● Business people and developers must work together daily throughout the project.

● Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.

● The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.

Page 6: Agile Development Overview

Principles Behind the Agile Manifesto (Continued)

● Working software is the primary measure of progress.● Agile processes promote sustainable development. The sponsors,

developers, and users should be able to maintain a constant pace indefinitely.

● Continuous attention to technical excellence and good design enhances agility.

● Simplicity--the art of maximizing the amount of work not done--is essential.

● The best architectures, requirements, and designs emerge from self-organizing teams.

● At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

Page 7: Agile Development Overview

Types of Agile Development

● Adaptive Software Development (ASD)● Agile Modeling● Crystal methods● Dynamic System Development Methodology

(DSDM)● eXtreme Programming (XP)● Feature Driven Development● Lean Development● Scrum

Page 8: Agile Development Overview
Page 9: Agile Development Overview

Which Projects are Suited to Agile?

Agile home ground:Low criticality Senior developers Requirements change very often Small number of developers Culture that thrives on chaos

Plan-driven home ground:High criticality Junior developers Requirements don't change too often Large number of developers Culture that demands order

Page 10: Agile Development Overview

Tools to Support Agile Development● Attributes

● Sprint Planning● Backlog Management ● Testing/ Coordination● Resource Planning● Documentation● Integration (Quality Center, Clearcase, etc.)

● Candidates● IBM Jazz● Microsoft Solutions Framework (MSF) for Agile● VersionOne● Rally Software

Page 11: Agile Development Overview

Resources/ More Information

● Agile Alliance: http://www.agilealliance.org/

● Agile Software Development: http://agilesoftwaredevelopment.com/

● Agile Manifesto: http://www.agilemanifesto.org/

● Agile University: http://www.agileuniversity.org/index.jsp

● Extreme Programming: http://www.extremeprogramming.org/

Page 12: Agile Development Overview

Appendix

Page 13: Agile Development Overview

Core Scrum Practices

● Backlog. Product, Release, Sprint Backlog - lists of all functionality in product, release and sprint respectively. Product Owner responsible for the backlog management and maintenance.

● Iterative development. The whole project gets divided into sprints usually 4 weeks duration each. Sprints have fixed duration (time boxing). Time boxing enables regular deliveries, supports project heart beats and helps development teams to focus on a shippable product in the end of each sprint.

● Scrum meetings. Daily meetings where team members answers the following questions: What have you done since the last scrum meeting? What has impeded your work? What do you plan on doing between now and the next scrum meeting?

● Burn Down Charts. Scrum Sprint Burn Down chart shows implementation progress during a single sprint. It provides answers on the following questions: When sprint could be completed based on previous progress? What is the most possible scrum team Velocity in future sprints?

● Sprint review meeting. Facilitated by Scrum Master and provides an inspection of project progress at the end of the every Sprint. The goal is to improve development process by introducing new practices, changing existing practices, etc.

Page 14: Agile Development Overview

Agile Software Development Lifecycle

Page 15: Agile Development Overview

Characteristics Agile Plan-driven

Application

Primary Goals Rapid value; responding to change Predictability, stability, high assurance

Size Smaller teams and projects Larger teams and projects

Environment Turbulent; high change; project-focused Stable; low-change; project/organization focused

Management

Customer Relations

Dedicated on-site customers, where feasible; focused on prioritized increments

As-needed customer interactions; focused on contract provisions; increasingly evolutionary

Planning/Control Internalized plans; qualitative control Documented plans, quantitative control

Communications Tacit interpersonal knowledge Explicit documented knowledge

Technical

Requirements Prioritized informal stories and test cases; undergoing unforseeable change

Formalized project, capability, interface, quality, forseeable evolution requirements

Development Simple design; short increments; refactoring assumed inexpensive

Architect for parallel development; longer increments; refactoring assumed expensive

Test Executable test cases define requirements Documented test plans and procedures

Personnel

Customers Dedicated, collocated CRACK* performers CRACK* performers, not always collocated

Developers At least 30% full-time Cockburn level 2 and 3 experts; no Level 1B or -1 personnel**

50% Cockburn Level 3s early; 10% throughout; 30% Level 1B’s workable; no Level -1s**

Culture Comfort and empowerment via many degrees of freedom (thriving on chaos)

Comfort and empowerment via framework of policies and procedures (thriving on order)

* Collaborative, Representative, Authorized, Committed, Knowledgeable** These numbers will particularly vary with the complexity of the application