Agile 140428151329 Phpapp02
Agile 140428151329 Phpapp02
Contents
Rationale
Existing categories
Why
About Agile
Agile Mothodologies
The chosen one
Whats next
Categories of Dev. methods
Code and Fix
No process at all
Development is chaotic and unplanned
Serial
Software processes are well defined and detailed
Developers are expected to follow in serial manner
Waterfall Process / Big design up front (BDUF)
Quarter length releases
Iterative
Software processes are well defined and detailed
Developers are expected to follow in an iterative manner
Short release cycles weeks / months
Agile
Software processes are defined at high-level
People oriented approach
Enables people to respond effectively to change
Short release cycles weeks / moths
Why
Who are we
Small team of programmers without Designers, Tester or full time project
manager
In most cases the requirements are general and not fully defined
Why not Serial or Iterative methods
Often development of small IT software for which full scale design is too time
consuming
Usually short TTM (Time to market) needed
Why and when yes Code and Fix
For the really small project when first and in short period of time a prototype
needed as a POC (Proof of Concept)
When only one developer involved
Why and when yes Agile
High-level design is needed to begin developing
When several team-members involved in development
First prototype release version can be quickly presented to the client
Adaptive to changes in clients requirements as the projects developes
About Agile WTF?
"Agile Development" is an umbrella term for several iterative and
incremental software development methodologies. The most popular agile
methodologies include
Extreme Programming (XP)
Scrum
Crystal Clear
Dynamic Systems Development Method (DSDM)
Lean Development
Feature-Driven Development (FDD)
While each of the agile methods is unique in its specific approach, they all
share a common vision and core value (Agile Manifesto)
They all fundamentally incorporate
Iteration and continuous feedback
Lightweight
Rapid and flexible respond to change
All focus on empowering people to collaborate and make decisions together
quickly and effectively
About Agile WTF?
About Agile - Characteristics
Agile methods break tasks into small increments with minimal planning
Iterations are short time frames that typically last from one to four weeks
Each iteration involves a team working through a full software
development cycle
Multiple iterations might be required to release a product or new features.
Team members decide individually how to meet an iteration's
requirements
Agile methods emphasize face-to-face communication over written
documents
Each agile team will contain a customer representative which
available for developers to answer mid-iteration questions
Most agile implementations use a routine and formal daily face-to-face
communication among team members (Stand-ups)
TDD - Test Driven Development
Agile Methodologies - XP
Intended to improve software quality and responsiveness to
changing customer requirements
Frequent "releases" in short development cycles
Improve productivity and introduce checkpoints where new
customer requirements can be adopted
Elements of XP:
Programming in pairs
Extensive code review
Unit testing
Avoiding programming of features until they are needed
Flat management structure
Simplicity and clarity in code
Expecting changes in customer requirements
Frequent communication with the customer and among
programmers
Extreme Programming Model
Agile Methodologies -
Scrum
A product owner creates a prioritized wish list called a product
backlog.
During sprint planning, the team pulls a small chunk from the top of
that wishlist, a sprint backlog, and decides how to implement those
pieces.
The team has a certain amount of time, a sprint, to complete its work -
usually two to four weeks - but meets each day to assess its progress
(daily scrum).
Along the way, the ScrumMaster keeps the team focused on its goal.
At the end of the sprint, the work should be potentially shippable, as in
ready to hand to a customer, put on a store shelf, or show to a stakeholder.
The sprint ends with a sprint review and retrospective.
As the next sprint begins, the team chooses another chunk of the product
backlog and begins working again.
Scrum cycle
Agile Methodologies
Crystal Clear Alistair Cockburn
Backlog Example2
Determine team velocity How many story points can be completed in one
iteration (sprint)
Establish the release plan
Group user stories in groups that provide a releasable version
Determine in which sprints those user stories will be completed
Prepare for the first sprint prepare the product backlog
Break the user stories down into smaller stories
Provide details about the user stories that the team will need to break the
stories down into tasks.
Scrum Order of things
Plan a Sprint
Sprint planning meeting - Team commits to completing the chosen
items from the backlog
Choose user stories to be implemented in the sprint
Tasks
Identify the tasks
Evaluate each task (hours)
Scrum Order of things
Run a Sprint
Complete selected user stories
The sprint is of constant length 2 to 4
weeks, the length of the sprint cannot be
changed
Track sprint progress burndown report
Finish the sprint
Make sure user stories completed
After the customer review,
the team will hold a retrospective meeting to
improve the process
Scrum Order of things
Track the project
As sprints are advancing, customers develop a better
understanding of their remaining needs, and changes
in the backlog will happen.
Prepare for the next sprint
Update the user stories and their priorities as customers'
needs change.
Break down user stories that are likely to be
implemented in the next sprint.
Scrum Order of things
Track the project
Track Release Progress
As the project proceeds from sprint to sprint, your team
will track the overall progress toward the next release