Agile Development
Agile Development
Agile Development
Planning:
• Begins with the creation of a set of stories (also called user stories)
• Each story is written by the customer and is placed on an index card
• The customer assigns a value (i.e. a priority) to the story
• Agile team assesses each story and assigns a cost
• Stories are grouped to for a deliverable increment
• A commitment is made on delivery date
• After the first increment “project velocity” is used to help define subsequent delivery dates for other
increments
Design:
• Follows the keep it simple principle
• Encourage the use of CRC (class-responsibility-collaborator) cards
• For difficult design problems, suggests the creation of “spike solutions”—a design prototype
• Encourages “refactoring”—an iterative refinement of the internal program design
• Design occurs both before and after coding commences
Coding:
• Recommends the construction of a series of unit tests for each of the stories before coding commences
• Encourages “pair programming”
– Developers work in pairs, checking each other's work and providing the support to always do a good
job.
– Mechanism for real-time problem solving and real-time quality assurance
Unit-2 –Agile Development
Speculation says we can’t predict outcomes. If we can’t predict outcomes, we can’t plan. If we can’t plan,
traditional project management theory suffers.
• Collaboration weights speculation in that a project manager plans the work between the predictable parts
of the environment and adapts to the uncertainties of various factors—stakeholders, requirements,
software vendors, technology, etc.
Learning:
• “Learning” cycles challenge all stakeholders and project team members.
• Based on short iterations of design, build and testing, knowledge accumulates from the small mistakes we
make due to false assumptions, poorly stated or ambiguous requirements or misunderstanding the
stakeholders’ needs.
• Correcting those mistakes through shared learning cycles leads to greater positive experience and
eventual mastery of the problem domain.
• DSDM can be combined with XP to provide a combination approach that defines a solid process model (the
DSDM life cycle) with the nuts and bolts practices (XP) that are required to build software increments.
• In addition, the ASD concepts of collaboration and self-organizing teams can be adapted to a combined
process model.
Scrum
• Scrum principles are consistent with the agile manifesto and are used to guide development activities
within a process that incorporates the five framework activities: requirements, analysis, design, evolution,
and delivery.
• Within each framework activity, work tasks occur within a process pattern called a sprint.
Unit-2 –Agile Development
• The work conducted within a sprint (the number of sprints required for each framework activity will vary
depending on product complexity and size) is adapted to the problem at hand and is defined and often
modified in real time by the Scrum team.
• Scrum emphasizes the use of a set of software process patterns that have proven effective for projects
with tight timelines, changing requirements, and business criticality.
• Each of these process patterns defines a set of development actions: Backlog—a prioritized list of project
requirements or features that provide business value for the customer.
• Items can be added to the backlog at any time (this is how changes are introduced).
• The product manager assesses the backlog and updates priorities as required.
Crystal
• The Crystal methodology is one of the most lightweight, adaptable approaches to software development.
Crystal is actually comprised of a family of agile methodologies such as Crystal Clear, Crystal Yellow, Crystal
Orange and others, whose unique characteristics are driven by several factors such as team size, system
criticality, and project priorities.
• This Crystal family addresses the realization that each project may require a slightly tailored set of
policies, practices, and processes in order to meet the project‘s unique characteristics.
• Several of the key tenets of Crystal include teamwork, communication, and simplicity, as well as
reflection to frequently adjust and improve the process.
• Like other agile process methodologies, Crystal promotes early, frequent delivery of working software,
high user involvement, adaptability, and the removal of bureaucracy or distractions.
– Feature Teams
– Inspections
– Configuration Management
– Regular Builds
– Visibility of progress and results
• FDD recommends specific programmer practices such as “Regular Builds” and
“Component/Class Ownership”.
• Unlike other agile methods, FDD describes specific, very short phases of work, which are to
be accomplished separately per feature.
• These include Domain Walkthrough, Design, Design Inspection, Code, Code Inspection, and
Promote to Build.