1. Agile Process
Extreme Programming
SCRUM Process
Dr. Vendhan Duraisamy
KAMARAJ College of Engineering and Technology
Unit I - Software Process and Agile Development
IT2203 - Software Engineering
2. Introduction to Agility
In agile software development process,
• It is a nimble team able to appropriately respond to changes.
• Effective (rapid and adaptive) response to change.
• Effective communication among all the stakeholders.
• Organizing a team so that it is in control of the work performed.
Yielding …
• Rapid, incremental delivery of software.
2
3. An Agile Process
Any agile software process is characterized in a manner that
addresses a number of key assumptions about the majority of
software projects:
• Is driven by customer descriptions of what is required
(scenarios).
• Develops software iteratively and delivers multiple ‘software
increments’.
• Adapts as changes occur.
3
5. Agility and the Cost of Change
• In software development the cost of change increases
nonlinearly as a project progresses (solid black curve).
• It is relatively easy to accommodate a change when a
software team is gathering requirements (early in a project).
• An agile process reduces the cost of change because the
software is released in increments and change can be
controlled within an increment.
5
6. 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.
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
7. 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.
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.
7
8. Extreme Programming (XP)
• Extreme programming is the most widely used approach to
agile software development.
• Most recently a variant of XP called IXP (Industrial XP) has
been defined.
• IXP refines XP and targets the agile process specifically for use
within large organization.
Beck defines five XP values
1. Communication 2. Simplicity
3. Feedback 4. Courage
5. Respect
9. XP Process
Extreme programming uses an object oriented approach that
practices four framework activities.
1. Planning 2. Design
3. Coding 4. Testing
10. XP Process - Planning
The planning activity begins with listening a requirements
gathering activity that enables the technical members of XP to
understand the requirements.
• Listening leads to the creation of a set of stories (also called
user stories) that describe required output, features, and
functionality for software to be built.
• Members of the XP team then assess each story and assign a cost-
measured in development weeks to it.
• It is important to note that new stories can be written at any time.
• Customers and Developers work together to decide how to group
11. • If the story is estimated to require more than three development
weeks, the customer is asked to split the story into smaller stories
and the assignment of value and cost change occurs again.
• Once a basic commitment is made for a release, the XP team orders
the stories that will be developed in one of three ways:
1. All stories will be implemented immediately (within a few
weeks).
2. The stories with highest value will be moved up in the schedule
and implemented first.
3. The riskiest stories will be moved up in the schedule and
implemented first.
XP Process - Planning
12. • After the first project release (also called a software increment)
has been delivered, the XP team computes project velocity.
• Project velocity is the number of customer stories implemented
during the first release.
Project velocity can then be used to:
1. Estimate delivery dates and schedule for subsequent releases.
2. Determine whether an over commitment has been made for all
stories across the entire development project.
3. If an over commitment occurs, the content of releases is
modified or end delivery dates are changed.
13. XP Process - Design
• XP design follows the KIS (keep it simple) principle.
• A simple design is always preferred over a more complex
representation.
• XP encourages the use of CRC (Class-Responsibility
Collaborator) cards as an effective mechanism for thinking
about the software in an object-oriented context.
• If a difficult design, XP recommends the immediate creation of an
operational prototype of that portion of the design called a spike
solution, the design prototype is implemented and evaluated.
14. XP Process - Coding
• After design work is done, the team does not move to code, but
rather develops a series of unit tests.
• Once the unit test has been created, the developer is better able
to focus on what must be implemented to pass the test.
• Once the code is complete, it can be unit-tested immediately,
thereby providing instantaneous feedback to the developers.
• A key concept during the coding activity is pair programming.
• For example, one person might think about the coding details of a
particular portion of the design while the other ensures that coding
standards are being followed or that the code for the story will
15. XP-Process Coding
• This continuous integration strategy helps to avoid
compatibility and interfacing problems and provides a smoke
testing environment that helps to uncover errors early.
• XP encourages Refactoring a construction technique that is also
a method for design optimization.
• Refactoring is the process of changing a software system in
such a way that it does not alter the external behavior of the
code yet improves the internal structure.
• The intent of refactoring is to control these modifications by
suggesting small design changes that can radically improve the
design.
16. XP Process - Testing
• The creation of unit tests before coding commences as a key
element of the XP approach.
• This encourages a regression testing strategy whenever code is
modified.
• XP acceptance tests, also called customer tests, are specified by
the customer and focus on overall system features and
functionality that are visible and reviewable by the customer.
• Acceptance tests are derived from user stories that have been
implemented as part of a software release.
17. SCRUM
• Scrum is derived from an activity that occurs during a rugby match.
• It is an agile development method by jeff sutherland in 1990.
• It incorporates the following framework activities.
Requirements, Analysis, Design, Evolution and Delivery
Key Roles and Responsibilities
1. Product Owner - Customer to guide the team
2. Scrum Master - Project manager
3. Team Member - Cross-functional team members
19. 1. Backlog - A prioritized list of project requirements or features
that provides business value for the customer.
Features can be added to the backlog at any time.
i. Product Backlog - Lists all the prioritized features that remain
to be developed.
ii. Sprint Backlog - During sprint planning meeting, team
identifies one or more features to be assigned.
iii. Sprint Burndown Chart - Tool to visualize the progress made
and the work remaining on a daily basis.
20. 2. Sprint - Consists of work units that are required to achieve a
requirement defined in the backlog in a predefined time, typically 30
days.
Changes are not introduced during the sprint.
3. Scrum Meetings - Short meeting (15 minutes) held daily by the
scrum team.
• What did you do since the last team meeting?
• What obstacles are you encountering?
• What do you plan to accomplish by the next team meeting?
It includes
1. Sprint Planning 2. Daily Scrum 3. Sprint Review Meeting