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
Rapid, incremental delivery of software

4 Practices to Successful Projects

1. An early release of the evolving product to the
2. Getting rapid feedback from the customer and
incorporating that feedback into new design
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
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

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.

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


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.

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
7. Working software is the primary measure of


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.

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.



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


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

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.


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.
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.


Defining Characteristics of SCRUM

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

Five Time Boxes

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

Three Artifacts
Product Backlog
Sprint Backlog
Burndown Chart

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
Does development and testing

Product Owner
Owns requirements, clarifies as needed

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