Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 27

Agile Development

Lecturer Tahreem Khalil

Slide Set to accompany


Software Engineering: A Practitioner’s Approach, 7/e
by Roger S. Pressman

Slides copyright © 1996, 2001, 2005, 2009 by Roger S. Pressman

For non-profit educational use only

May be reproduced ONLY for student use at the university level when used in conjunction with Software Engineering: A
Practitioner's Approach, 7/e. Any other reproduction or use is prohibited without the express written permission of the author.

All copyright information MUST appear if these slides are posted on a website for student use.
These slides are designed to accompany Software Engineering: A
Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by 1
Roger Pressman.
Today, Agenda
 Agile Manifesto
 Agile – What and Why?
 Agile Principles
 Thought Provoking debate

2
The Manifesto for Agile Software
Development
“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.”

Kent Beck et al

3
What is “Agility”?
 Effective (rapid and adaptive) response to change
 Facile (easy) communication among all stakeholders
 Emphasizes rapid delivery of operational software
 Adopts the customer as part of the team
 it recognizes that planning in an uncertain world has its limits
and that a project plan must be flexible

Yielding …
 Rapid, incremental delivery of software

4
Why Agile?
 Agile Methods were developed in an effort to overcome perceived and actual
weaknesses in conventional software engineering

 In the modern economy, it is often difficult or impossible to predict how a


computer-based system will evolve as time passes

 Market conditions change rapidly, end-user needs evolve, and new competitive
threats emerge without warning

5
Why Agile?
 In many situations, you won’t be able to define requirements fully before
the project begins

 You must be agile enough to respond to a fluid business environment

 Important Agile characteristic: ability to reduce the costs of change


throughout the software process

6
Agility and the Cost of
Change

7
Agility Principles – (1/3)
1. Highest priority is to satisfy the customer through early and continuous delivery of
valuable software.
2. Welcome changing requirements, even late in development. Agile processes adapt change
for the customer's competitive advantage.
3. Deliver working software frequently, from a couple of weeks to a couple of months, with a
preference to the shorter timescale.
4. Business people and developers must work together daily throughout the project.
5. Build projects around motivated individuals. Give them the environment and support
they need, and trust them to get the job done.
6. The most efficient and effective method of conveying information to and within a
development team is face–to–face conversation.

8
Agility Principles – (2/3)
7. Working software is the primary measure of progress.
8. Agile processes promote sustainable development. The sponsors, developers, and users
should be able to maintain a constant pace indefinitely.
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 architectures, requirements, and designs emerge from self–organizing teams.
12. At regular intervals, the team reflects on how to become more effective, then tunes and
adjusts its behavior accordingly.

9
Agility Principles – (3/3)
 Not every agile process model applies these 12 principles with equal
weight, and some models choose to ignore (or at least downplay) the
importance of one or more of the principles

 However, the principles define an agile spirit that is maintained in each


of the process models

10
Agility – a debate
 There is considerable debate about the benefits and applicability of agile software development as opposed to more conventional
software engineering processes

 No one is against agility. The real questions are:


 What is the best way to achieve it?
 how do we build quality software that meets customers’ needs?
 How software scaled to meet customer’s needs

 There are no absolute answers to either of these questions. Even within the agile school itself, there are many proposed process
models each with a subtly different approach to the agility problem

11
Summary
 Agile Manifesto
 Agile – What and Why?
 Agile Principles
 Thought Provoking debate

12
Agile Process Models
 The most widely used of all agile process
models is Extreme Programming (XP). But
many other agile process models have been
proposed and are in use across the industry.
Among the most common are:

13
Extreme Programming (XP)
Model

14
Extreme Programming (XP)
Model
 The most widely used approach to agile software development
 XP uses an object-oriented approach as its preferred development paradigm
 XP encompasses four framework activities

 Planning
 Design
 Coding
 Testing

15
XP Model – Planning (1/2)
 Begins with listening (Requirements gathering, understanding business
context for the Software, a picture of features and functionalities)

 Listening leads to the creation of “user stories” (again focus is output,


features and functionalities, story is similar to use-cases, written by the
customer)

 Customer assigns a value to the story

 Agile team assesses each story and assigns a cost

 Stories are grouped to for a deliverable increment

16
XP Model – Planning (2/2)
 A commitment is made on delivery date

 The XP team orders the stories that will be developed in


one of three ways:
• Development of all stories immediately
• Development of high priority stories at first
• Development of risky stories at first

 After the first increment “project velocity” is used to help


define subsequent delivery dates for other increments

17
XP Model - Design
 Follows the KIS (Keep It Simple) principle

 Encourage the use of CRC (Class-Responsibility-Collaborator)


cards (see Chapter 8)

 For difficult design problems, suggests the creation of “spike


solutions”—a operational prototype for a portion of design

 Encourages “refactoring”—an iterative refinement of the


internal program design

18
XP Model - Coding
 Recommends the construction of a unit test for a story before
coding commences

 Encourages “pair programming” to code for a story

 One person codes, the other checks the coding standards used,
test whether the code follows the story being implemented,
fulfills the unit tests

19
XP Model - Testing
 All unit tests are executed daily (whenever code is modified)

 “Acceptance tests” are defined by the customer and executed


to assess customer visible functionality

20
Extreme Programming (XP)
Model

21
Scrum
 Originally proposed by Schwaber and Beedle

 Scrum principles are consistent with the agile manifesto and are used to guide development
activities

 It incorporates the following framework activities:

 Requirements
 Analysis
 Design
 Evolution
 Delivery

22
Scrum

23
Scrum
 Scrum—distinguishing features
 Work occurs in “sprints” and is derived from a
“backlog” of existing requirements
 Meetings are very short and sometimes conducted
without chairs
 “Demos” are delivered to the customer with the time-
box allocated
 Development work is partitioned into “packets”
 Testing and documentation are on-going as the
product is constructed

24
Human Factors
 The process molds to the needs of the people and
team, not the other way around
 Following key traits must exist among the people on
an agile team and the team itself:
 Competence. (innate talent, Software skills, Knowledge about
processes)
 Common focus: (different tasks, different skills but same common
interest)
 Collaboration: (frequent collaboration of stakeholders)
25
Human Factors
 Decision-making ability: (freedom to control its own destiny)
 Fuzzy problem-solving ability: (learn lessons from problem
solving)
 Mutual trust and respect. (respect for integrity)
 Self-organization.(self-defined, targets, schedule, Process)

26
Summary
 Agile Process Models
 Extreme Programming (XP)
 Scrum
 Human Factor in Agile

27

You might also like