agile programin
TRANSCRIPT
-
8/14/2019 AGILE PROGRAMIN
1/25
Chapter 3
Agile Process Models
-
8/14/2019 AGILE PROGRAMIN
2/25
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 workperformed
Yielding
Rapid, incremental delivery of software
-
8/14/2019 AGILE PROGRAMIN
3/25
Principles
Satisfy customer through early and continuous delivery ofvaluable software
Welcome change in requirements, even late in development
Deliver working software frequently.
Business people and developers must together daily. Build projects around motivated individuals
Have face-to face conversation
Working software is the primary measure of progress
Simplicity- the art of maximizing the amount of work not
done. Self organizing team
At regular intervals performance tuning.
-
8/14/2019 AGILE PROGRAMIN
4/25
An Agile Process
Is driven by customer descriptions of what is required
(scenarios)
Recognizes that plans are short-lived
Develops software iteratively with a heavy emphasis on
construction activities
Delivers multiple software increments
Adapts as changes occur
-
8/14/2019 AGILE PROGRAMIN
5/25
Extreme Programming (XP)
XP has four Framework activities : planning, design,coding, and testing.
XP Planning Begins with the creation of a set of user stories
The customer assigns a value to the story. Agile team assesses each story and assigns acost- measured in
development weeks, if more than 3 then split.
Stories are grouped to for a deliverable increment
A commitment is made on delivery date
After the first increment project velocity is used to helpdefine subsequent delivery dates for other increments
-
8/14/2019 AGILE PROGRAMIN
6/25
Extreme Programming (XP) XP Design
Follows the KIS (keep it simple) principle
Encourage the use of CRC (class-responsibility collaborator) cards
For difficult design problems, suggests the creation of spike solutionsa designprototype
Encourages refactoringan iterative refinement of the internal program design
XP Coding Recommends the construction of a unit test for a store beforecoding commences
Encourages pair programming- 2 people work together at one computer workstationto create code for the story.
XP Testing
All unit tests are executed daily
Acceptance tests are defined by the customer and executed to assess customer visiblefunctionality
-
8/14/2019 AGILE PROGRAMIN
7/25
-
8/14/2019 AGILE PROGRAMIN
8/25
Analysis
Design
Code
Test
Waterfall Iterative XPWaterfall Iterative XPWaterfall Iterative XP
-
8/14/2019 AGILE PROGRAMIN
9/25
XP Practices
Planning game.
Small releases.
Simple design.
Testing.
Refactoring.
Coding standards.
Pair programming.
Collective ownership.
On-site customer.
40-hour week.
Open workspace.
Continuous integration
-
8/14/2019 AGILE PROGRAMIN
10/25
-
8/14/2019 AGILE PROGRAMIN
11/25
Pair
Programming
Continuous
Integration
100% Unit
Tests Passed
Acceptance
Tests Passed
CreateUnit Test
Failed
Passed
End ofTask
Run all unittests
ExtremeProgramming.org
Summary of testing
-
8/14/2019 AGILE PROGRAMIN
12/25
Adaptive Software Development
A technique for complex software system.
Focus on human collaboration and team self-organization
ASD life cycle
Speculation
Collaboration
Learning
-
8/14/2019 AGILE PROGRAMIN
13/25
adapt ive cycle planning
uses mission stat ement
project co nst raints
basic requirements
t ime-boxed release plan
Requirement s gat hering
JAD
mini-specs
component s implemented/ t est ed
focus groups for feedback
formal t echnical reviews
post mortems
soft ware increment
adjustments for subsequent cycles
Release
-
8/14/2019 AGILE PROGRAMIN
14/25
Dynamic Systems Development Method
systems which meet tight time constraints incrementalapproach.
Follows the 80 percent rule Only enough work is required for each increment for the movement
to next increment, the remaining details can be completed later
Life cycle Feasibility study basic requirement
Business study functional and informational requirement
Provide buss. Value
Defines appl arch.
Functional Model iteration f/b as they exercise prototypes Design and build iteration- revisits prototype to provide operational
buss. Value.
Implementation not 100% complete
-
8/14/2019 AGILE PROGRAMIN
15/25
Dynamic Systems Development Method
DSDMdistinguishing features Similar in most respects to XP and/or ASD Nine guiding principles
Active user involvement is imperative.
DSDM teams must be empowered to make decisions.
The focus is on frequent delivery of products. Fitness for business purpose is the essential criterion for
acceptance of deliverables.
Iterative and incremental development is necessary toconverge on an accurate business solution.
All changes during development are reversible. Requirements are baselined at a high level
Testing is integrated throughout the life-cycle.
-
8/14/2019 AGILE PROGRAMIN
16/25
-
8/14/2019 AGILE PROGRAMIN
17/25
Scrum
Principles
Small working teams
Max. comm.,
Min. overhead
Max. sharing of knowledge Process should be adaptable to both technical and business
changes
Process yields frequent software increments
Developers are partitioned into clean, low coupling partition
or packets.
Constant testing and documentation
Ability to declare a product done whenever possible.
-
8/14/2019 AGILE PROGRAMIN
18/25
Scrum
Framework activities Requirement
Analysis
Design
Evolution Delivery
Work occurs in sprints and is derived from a backlog ofexisting requirements
Meetings are very shor t and sometimes conducted withoutchairs
demos are delivered to the customer with the time-boxallocated
-
8/14/2019 AGILE PROGRAMIN
19/25
Backlog (prioritized list of requirements or features theprovide business value to customer, items can be added at anytime)
Sprints (work units required to achieve one of the backlogitems, must fir into a predefined time-box, affected backlogitems frozen)
Scrum meetings (15 minute daily meetings) addressing thesequestions: What was done since last meeting? What obstacles
were encountered? What will be done by the next meeting? Demos (deliver software increment to customer for
evaluation)
-
8/14/2019 AGILE PROGRAMIN
20/25
Scrum Process Flow (used with permission)
-
8/14/2019 AGILE PROGRAMIN
21/25
-
8/14/2019 AGILE PROGRAMIN
22/25
-
8/14/2019 AGILE PROGRAMIN
23/25
Crystal Principals
Its always cheaper and faster to communicate face-to-face
As projects grow in size, teams become larger and methodologiesbecome heavier
As projects grow in criticality some degree of formality will need to beintroduced in parts of the methodology
As feedback and communication become more efficient the need forintermediate work products is reduced
Discipline, skills, and understanding counter process, formality, anddocumentation
Team members not on the critical project path can spend their excess
time improving the product or helping people who are on the crit icalpath
-
8/14/2019 AGILE PROGRAMIN
24/25
Incremental development strategy used with 1 to 3month time lines
Reflection workshops conducted before project begins,during increment development activity, and after
increment is delivered Crystal methodologies
Clear (small, low criticality projects)
Orange (larger, moderately critical projects)
Orange Web (typical e-business applications)
-
8/14/2019 AGILE PROGRAMIN
25/25
The following characteristics are notable for each of theagile models discussed:
XP user stories, pair-programming, refactoring, andcontinuous integration, incremental delivery
ASDadaptive cycle planning, time-boxing, risk-drivenplanning, collaborative learning, self-organizing teams
DSDMoperationalized prototyping
Scrumbacklog, sprints, scrum meetings
Crystal a set of example agile processes, usefulprinciples