Agile Development
-
Upload
ferrisaputra24 -
Category
Documents
-
view
3 -
download
0
description
Transcript of Agile Development
Faculty of Computer Science
University of Indonesia
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Topic 04: Agile Development
1
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
References
[Pressman, 2010] Pressman, Roger S. Software Engineering: A Practitioner’s Approach. New York: McGraw-Hill Higher Education, 2010.
[Sommerville] Sommerville, Ian, Software Engineering, 9th Edition, Pearson - Addison Wesley, England, 2011.
2
http://www.geekherocomic.com/2009/02/21/agile-development-explained/
4
http://search.dilbert.com
5
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 work performed
Rapid, incremental delivery of software
6
Plan-driven Approach v.s. Agility
[Sommerville]
For some types of software, such as safety-critical control systems, where a complete analysis of the system is essential, a plan-driven approach is the right one.
In a fast-moving business environment, the requirements are likely to change quickly and unpredictably due to external factors. If using a plan-driven approach, the software may then be out-of-date when it is delivered.
7
Plan-driven Approach
Identifies separate stages in the software process with outputs associated with each stage.
Iteration occurs within activities with formal documents used to communicate between stages of the process
Example: requirements will evolve until a requirements specification is produced, as an input to design and implementation
Agile Approach
Consider design and implementation to be the central activities in the software process Incorporate other activities,
such as requirements elicitation and testing, into design and implementation
Iteration occurs across activities
requirements and design are developed together, rather than separately
[Sommerville]
8
An Agile Process
Is driven by customer descriptions of what is required (scenarios)
Recognizes that plan are short-lived
Develops software iteratively with a heavy emphasis on construction activities
Delivers multiple ‘software increments’
Adapts as change occur
10
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
11
Principles of Agile Methods
[Sommerville]
Customer involvement
Customers should be closely involved throughout the development process.
Incremental delivery
People, not process
The skills of the development team should be recognized and exploited
Embrace change
Maintain simplicity 12
Agility Principles 1. Our 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 harness 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.
14
Agility Principles 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.
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.
15
Agility Principles
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.
16
Human Factors The process molds to the needs of the people and team,
not the other way around
Key trait 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
17
Types of System for Agile Development
[Sommerville]
small or medium-sized product for sale
custom system development within an organization
where there is a clear commitment from the customer to become involved in the development process and
where there are not a lot of external rules and regulations that affect the software
18
Extreme Programming (XP)
http://search.dilbert.com
20
The most widely used agile process,
originally proposed by Kent Beck
Extreme Programming (XP)
http://search.dilbert.com
21
Extreme Programming (XP)
22
unit t est
cont inuous int egrat ion
accept ance t est ing
pair
programming
Release
user st ories
values
accept ance t est crit eria
it erat ion plan
simple design
CRC cards
spike solut ions
prot ot ypes
refact oring
sof tware increment
project velocit y computed
construction
of unit test
(test cases)
Extreme Programming (XP)
XP Planning
Begins with the creation of “user stories”
Customer assisns a value (i.e. priority) for each story
Agile team assesses each story and assigns a cost (measured in development weeks)
Stories are grouped 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
23
Extreme Programming (XP)
XP Design
Follows the KISS principle
Encourage the use of Class Responsibility Collaboration (CRC) cards
For difficult design problems, suggests the creation of “spike solution” - a design prototype
Encouraging “refactoring” - an iterative refinement of the internal program design
24
Extreme Programming (XP)
XP Coding
Recommends the construction of a unit test for a store before coding commences
Encourages “pair programming”
XP Testing
All unit tests are executed daily
“Acceptance tests” are defined by the customer and executed to assess customer visible functionality
26
Extreme Programming (XP)
http://www.extremeprogramming.org/map/project.html
28
SCRUM http://newsimg.bbc.co.uk/media/images/44181000/jpg/_44181384_eng_sa_scrum416.jpg
Scrum in a game of rugby
29
SCRUM Originally proposed by Schwaber and Beedle
Scrum - distinguishing features
Development work is partitioned into “packets” called product backlog
Testing and documentation are on-going as the product is constructed
Work occurs in “sprints” and is derived from a “backlog” of existing requirements
Meeting are very short and sometimes conducted without chairs
“Demos” are delivered to the customer with the time-box allocated
30
Phases in Scrum
Outline Planning
establish the general objectives for the project and design the software architecture
Series of Sprint Cycles
each cycle develops an increment of the system
Project Closure
wraps up the project, completes required documentation such as system help frames and user manuals and assesses the lessons learned from the project
31
Sprint Cycle
Sprints are fixed length, normally 2–4 weeks
The starting point for planning is the product backlog
Assessment phase: backlog is reviewed, priorities and risks are assigned
Selection
Each project team select features and functionality to be developed during the sprint
Short daily meetings
At the end of the sprint, the work done is reviewed and presented to stakeholders. The next sprint cycle then begins.
32
http://35qk152ejao6mi5pan29erbr9.wpengine.netdna-cdn.com/wp-content/uploads/2013/05/Scrum_Framework.jpg
33
SCRUM http://www.kathan.at/snipsnap/space/snipsnap-
index/development/methodologies+%26+processes/scrum.gif
34
Other Agile Process Models
Adaptive Software Development
Dynamic System Development Method
Crystal
Feature Driven Development
Agile Modeling
Agile Unified Process
35