Lecture 3 Agile
Lecture 3 Agile
Nahida Islam
Lecturer, Department of CSE
Email: [email protected]
What is Agile?
Software developed during one unit of time is referred to as an iteration, which may last from
one to four weeks. Agile methods also emphasize working software as the primary measure of
progress.
What is Agile?
Dramatic Project Underperformance – According to the Standish Group’s Chaos Reports, only
16 percent of IT projects are successful, the remainder are:
Late.
Over Budget.
Deliver only a fraction of original scope in order to meet budget restrictions.
Cancelled.
What is different about Agile?
Empowered Teams – Experienced specialists are encouraged to work out the detail design on
their own.
Personal Communication – Rather than relying on written documentation to communicate
design decisions, technical approaches and other typically documented items, agile method
suggest that the team work in the same physical space (co-location). Use of white boards in
the work area is encouraged rather than lengthy formal detail design documentation.
Agile Manifesto
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.
Characteristics of Agile Software
Development
Light Weighted methodology
Simple design
Reducing Risk – The benefits from improved control and improved communication lead to
reduced risks. Examples of risks include:
Risk of building (or doing) the wrong thing. Did the sponsor get what they asked for but
not what they actually wanted?
Risk of building the right thing poorly. For example, was the product poorly crafted. Was
it thoroughly tested as a part of each iteration? Is the final produce extensible?
Risk of being placed into an endless cycle of design updates and reviews due to changing
requirements or high levels of complexity
Relief from continual design revisions -- Agile Methods are of the most benefit when
applied to projects where the requirements are either unclear or evolving
Benefits of Being Agile
.Agile methods allow the Project Manager to their control over the project in high change
environment. Utilizing less rigid, yet structured agile methodologies, control is through a
number of mechanisms.
Early and frequent stakeholder feedback allows the Project Manager to redirect project
priorities when needed to ensure that real value is delivered.
The
. sponsor is able to end the project earlier than scheduled and still receive value.
Short daily meetings allow team members to share both successes and problems with each
other. Each team member should share:
What they have just completed (so that team members working on dependent tasks are
notified).
What are they going to work on next (allows other team members to contribute
information that may be helpful to the task).
Issues that are slowing down or halting their progress (so that other team members and/or
the Project Manager can provide assistance).
Agile Method of Planning of a Software
Development Project
Initial Analysis
Initial Design
(When problems are identified they are pushed back into the analysis step, to improve
it).
Initial coding
push back identified design problems back. Perform another iteration of design to
improve it.
Initial Testing
Identified problems are feed back into another iteration of coding.
Integration and deployment
Feedback any problems you encounter into the process.
A system of incremental/continuous improvement.
Agile Methods are all about incremental
progress
Working incrementally allows the most critical portions of the product to be delivered
earlier.
Dedicated developers
Experienced developers
Extreme Programming
Scrum
Crystal Methods
Feature Driven Development
Lean Development
Dynamic Systems Development Methodology (DSDM)
Extreme Programming--XP
Programmers: Customers:
get clear requirements & get most business value first
priorities
get accurate feedback
can do a good job
can make informed business
can make technical decisions decisions
don’t work overtime can change their mind
Scrum- An Agile Process
Scrum approach is a general agile method but its focus is on managing iterative
development rather than specific agile practices.
Scrum Roles
The Process
Scrum Artifacts
Scrum Master
Team is self-organizing
Knows what needs to be build and in what sequence this should be done
Sprint
Daily Scrum
A collaborative meeting in the beginning of each Sprint between the Product Owner, the Scrum
Master and the Team
NO outside influence can interference with the Scrum team during the Sprint
Is a short (15 minutes long) meeting, which is held every day before the Team starts working
Participants: Scrum Master (which is the chairman), Scrum Team
Every Team member should answer on 3 questions:
What did you do since the last Scrum?
What are you doing until the next Scrum?
What is stopping you getting on with the work?
Daily Scrum
Is a meeting in which team members make commitments to each other and to the Scrum
Master
Is a good way for a Scrum Master to track the progress of the Team
Sprint Review Meeting
Business functionality which was created during the Sprint is demonstrated to the Product
Owner
Product Backlog
Sprint Backlog
Burn down Charts
Product Backlog
Is a FORECAST
A subset of Product Backlog Items, which define the work for a Sprint
Is created ONLY by Team members
Each Item has it’s own status
Should be updated every day
No more then 300 tasks in the list
If a task requires more than 16 hours, it should be broken down
Team can add or subtract items from the list. Product Owner is not allowed to do it
Burn Down Chart
Are used to represent “work done”.
Are wonderful Information Radiators
3 Types:
Sprint Burn down Chart (progress of the Sprint)
Release Burn down Chart (progress of release)
Product Burn down chart (progress of the Product)
X-Axis: time (usually in days)
Y-Axis: remaining effort
Sprint Burn Down Chart