Rekayasa Perangkat Lunak
Agile Development
Mutia Fadhila Putri M.Kom
Slides based on the book of Pressman, Roger S., Software
Engineering: A Practitioner’s Approach, 7th Edition, Mc. Graw Hill
International, USA, 2015.
Mutia Fadhila Putri 2023/2024
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
Outline
• What is Agility?
• Agile Manifesto
• Agile Principles
• Extreme Programming
• Scrum
3
Requirement Changes
http://www.geekherocomic.com/2009/02/21/agile-development-explained/
4
Agile Programming
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
• 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 Agile Approach
• Identifies separate stages • Consider design and
in the software process implementation to be the
with outputs associated central activities in the
with each stage. software process
• Iteration occurs within • Incorporate other activities,
such as requirements
activities with formal elicitation and testing, into
documents used to design and implementation
communicate between
• Iteration occurs across
stages of the process
activities
• Example: requirements will
evolve until a requirements • requirements and design
specification is produced, are developed together,
as an input to design and rather than separately
implementation
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
9
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
10
Principles of Agile Methods
• 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
11
Agility and the Cost of Change
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.
13
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.
14
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.
15
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
16
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
17
Rekayasa Perangkat Lunak
Extreme Programming (XP)
Mutia Fadhila Putri 2023/2024
Extreme Programming (XP)
http://search.dilbert.com
19
Extreme Programming (XP)
http://search.dilbert.com
20
Extreme Programming (XP) simple design
spike solut ions
prot ot ypes
CRC cards
user st ories
values
accept ance t est crit eria
it erat ion plan
construction of
unit test (test
cases)
ref act oring
pair
programming
Release
sof t ware increment unit t est
project velocit y comput ed cont inuous int egrat ion
accept ance t est ing
21
Extreme Programming (XP)
• The most widely used agile process, originally
proposed by Kent Beck
• XP Planning
• Begins with the creation of “user stories”
• Agile team assesses each story and assigns a cost
• 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
22
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
23
Extreme Programming (XP)
http://search.dilbert.com
24
Extreme Programming (XP)
XP Coding
• Recommends the construction of a unit test for a store before coding
Coding commences
• Encourages “pair programming”
XP Testing
• All unit tests are executed daily
Testing • “Acceptance tests” are defined by the customer and executed to assess
customer visible functionality
25
XP Release Cycle
[Sommerville]
26
Scrum
Rekayasa Perangkat Lunak
Mutia Fadhila Putri 2023/2024
SCRUM
Scrum in a game of rugby
http://newsimg.bbc.co.uk/media/images/44181000/jpg/_441
81384_eng_sa_scrum416.jpg
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 • establish the general objectives for the project
Planning and design the software architecture
Series of • each cycle develops an increment of the system
Sprint Cycles
Project • wraps up the project, completes required
documentation such as system help frames and
Closure user manuals and assesses the lessons learned
from the project
31
Role in Scrum
• Product Owner
• Define product backlog
• Gathering input from Customers and Stakeholders
• Business aspect
• Development / Scrum Team
• Develop the software
• All team work together (no specific role)
• Scrum Master
• Organize scrum team
• Manage scrum events
32
Scrum Event
• Sprint Planning
• At the beginning of the sprint: choose sprint backlog from the
product backlog
• Sprint (work together to finish the sprint backlog)
• Daily Standup Meeting →
• What did you do since last scrum meeting?
• Do you have any obstacle?
• What will do you do before next meeting?
• Sprint Review
• Product Demo
• Discuss the business opportunity
• Sprint Retrospective
• Evaluate the sprint
33
Sprint Cycle
• Sprints are fixed length, normally 1–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.
34
36
Other Agile Process Models
• Adaptive Software Development
• Dynamic System Development Method
• Crystal
• Feature Driven Development
• Agile Modeling
• Agile Unified Process
37
Q&A
https://bit.ly/QnA-RPL
Mutia Fadhila Putri 2023/2024