An Agile View of Process: Software Engineering: A Practitioner's Approach 6 Edition Roger S. Pressman
An Agile View of Process: Software Engineering: A Practitioner's Approach 6 Edition Roger S. Pressman
An Agile View of Process: Software Engineering: A Practitioner's Approach 6 Edition Roger S. Pressman
2
What is Agility?
• Effective response to change
• Effective communication among all
stakeholders
• Drawing the customer onto the team;
eliminate the “us and them” attitude
• Organizing a team so that it is in control of the
work performed
• Rapid, incremental delivery of software
3
Principles to achieve agility – by the
Agile Alliance (1)
1. Highest priority -> satisfy the customer
2. Welcome changing requirements
3. Deliver working software frequently
4. Business people and developers must work
together
5. Build projects around motivated individuals
6. Emphasize face-to-face conversation
4
Principles to achieve agility – by the
Agile Alliance (2)
7. Working software is the primary measure of progress
8. Agile processes promote sustainable development
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
11. The best designs emerge from self-organizing teams
12. The team tunes and adjusts its behavior to become more
effective
5
Agile Software Process – Three Key
Assumptions
• Difficulty in predicting changes of
requirements and customer priorities
• For many types of s/w, design and
construction are interleaved
• Analysis, design, construction, and testing are
not as predictable as we might like
6
Agile Software Process
• An agile process must be adaptable
• It must adapt incrementally
• Requires customer feedback
• An effective catalyst for customer feedback is
an operational prototype
7
The Politics of Agile Development
• There is considerable debate about the
benefits and applicability of agile software
development
• No one is against agility. The real question is:
– What is the best way to achieve it?
8
Human Factor
• Key point:
– The Process molds to the needs of the people and team, not the
other way around
• A number of key traits must exist among the people on an
agile team and the team itself
– Competence
– Common focus
– Collaboration
– Decision-making ability
– Fuzzy problem-solving ability
– Mutual trust and respect
– Self-organization
9
Agile Process Models
• Extreme Programming (XP)
• Adaptive Software Development (ASD)
• Dynamic Systems Development Method (DSDM)
• Scrum
• Crystal
• Feature Driven Development (FDD)
• Agile Modeling (AM)
10
Extreme Programming (XP) - 1
• The most widely used agile process, originally
proposed by Kent Beck [BEC99]
• XP uses an object-oriented approach as its preferred
development paradigm
• Defines four (4) framework activities
– Planning
– Design
– Coding
– Testing
11
Extreme Programming (XP) - 2
simple design spike solutions
CRC cards prototypes
user stories
values
acceptance test criteria
iteration plan
n
desig
l anning
p g
codin
refactoring
Release
unit test
software increment continuous integration
project velocity computed
acceptance testing 12
XP - Planning
13
XP - Design
14
XP - Coding
16
http://www.extremeprogramming.org/map/project.html
17
18
19
20
21
Refs
22