You are on page 1of 22

Agile Principles

Muhammad Shoaib

What is Agility?

Effective (rapid and adaptive) response to change


Effective communication among all stakeholders
Drawing the customer onto the team
Organizing a team so that it is in control of the
work performed
Yielding
Rapid, incremental delivery of software

4 Practices to Successful Projects


1. An early release of the evolving product to the
customer.
2. Getting rapid feedback from the customer and
incorporating that feedback into new design
experiments.
3. A team structure that will allow the right
decisions to be made on the fly.
4. Choosing a product architecture that allows for
change rather than attempting to get optimal
performance.
MacCormack, A. D., Product-Development Practices That Work: How Internet Companies Build Software,
Sloan Management Review 42, no. 2 (winter 2001): 75-84.

Manifesto for Agile Software


Development
We are uncovering better ways of developing software by
doing it and helping others do it. Through this work we
have come to value:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
That is, while there is value in the items on the right, we
value the items on the left more.
.
source: http://www.agilemanifesto.org

The Proposed 5th Manifesto


Craftsmanship over Execution

12 Principles of Agile Software


1. Our highest priority is to satisfy the customer
through early and continuous delivery of
valuable software.
2. Welcome changing requirements, even late
in development. Agile processes harness
change for the customer's competitive
advantage.

source: http://www.agilemanifesto.org

12 Principles of Agile Software


3. Deliver working software frequently, from a
couple of weeks to a couple of months, with
a preference to the shorter timescale.
4. Business people and developers must work
together daily throughout the project.
5. Build projects around motivated individuals.
Give them the environment and support they
need, and trust them to get the job done.
source: http://www.agilemanifesto.org

12 Principles of Agile Software


6. The most efficient and effective method of
conveying information to and within a
development team is face-to-face
conversation.
7. Working software is the primary measure of
progress.

source: http://www.agilemanifesto.org

12 Principles of Agile Software


8. Agile processes promote sustainable
development. The sponsors, developers, and
users should be able to maintain a constant
pace indefinitely.
9. Continuous attention to technical excellence
and good design enhances agility.
10.Simplicity--the art of maximizing the amount
of work not done--is essential.
source: http://www.agilemanifesto.org

12 Principles of Agile Software


11.The best architectures, requirements, and
designs emerge from self-organizing teams.
12.At regular intervals, the team reflects on how
to become more effective, then tunes and
adjusts its behavior accordingly.

source: http://www.agilemanifesto.org

10

Agile Appraoches
eXtreme programming XP (Beck, 1999;Beck,
2000)
Scrum (Cohn, 2009; Schwaber, 2004; Schwaber
and Beedle, 2001)
Crystal (Cockburn, 2001; Cockburn, 2004)
Adaptive Software Development (Highsmith,
2000)
DSDM (Stapleton, 1997; Stapleton, 2003), and
Feature Driven Development (Palmer and Felsing,
2002).

XP

XP
Incremental development
supported through small, frequent releases of the system
Requirements are based on simple customer stories or scenarios

Customer involvement is supported


through the continuous engagement in the development team
Customer representative takes part in the development and responsible for
defining acceptance tests for the system.

People, not process, are supported through


pair programming

Change is embraced through regular system releases to customers


test-first development
refactoring to avoid code degeneration, and continuous integration of new
functionality.

Maintaining simplicity is supported by


constant refactoring that improves code quality and by using simple designs
that do not unnecessarily anticipate future changes to the system.

Testing in XP
Test-first development
Incremental test development from scenarios
User involvement in the test development and
validation, and
The use of automated testing frameworks.

SCRUM

SCRUM
There are three phases in Scrum.
The first is an outline planning phase where you
establish the general objectives for the project
and design the software architecture.
This is followed by a series of sprint cycles, where
each cycle develops an increment of the system.
Finally,
the project closure phase wraps up the project,
completes required documentation such as system
help frames and user manuals, and assesses the
lessons learned from the project.

PROCESS COMPARISON

Defining Characteristics of SCRUM


Three Roles
Team
ScrumMaster (Project Manager)
Product Owner (Product Manager)

Five Time Boxes

Sprint
Sprint Planning
Daily SCRUM Meeting
Sprint Review Meeting (Demo)
Retrospective Meeting (AAR)

Three Artifacts
Product Backlog
Sprint Backlog
Burndown Chart

SCRUM
Sprints are fixed length, normally 24 weeks.
The starting point for planning is the product backlog.
The selection phase involves all of the project team who work with
the customer to select the features and functionality to be
developed during the sprint.
Once these are agreed, the team organizes themselves to develop
the software.
Short daily meetings
Scrum master
Unlike XP, Scrum does not make specific suggestions, however, these
XP practices can be used if the team thinks they are appropriate.

At the end of the sprint, the work done is reviewed and presented
to stakeholders.
The next sprint cycle then begins.

Attributes of Sprint
Team
Does development and testing

Product Owner
Owns requirements, clarifies as needed

ScrumMaster
Keeper of process, facilitator, problem solver

Start Date, Duration, End Dates


Multi-team projects have all Sprints synchronized to the
same schedule

Capacity for work (Velocity)


Depends on team composition and Sprint Duration

Questions