0% found this document useful (0 votes)
32 views

Lecture 4 - Agile Software Development

Agile software development methods focus on iterative development, customer collaboration, and responding to change over rigid planning. Some key agile principles include valuing individuals and interactions over processes, working software over documentation, and customer collaboration over contract negotiation. Popular agile methods like Extreme Programming (XP) emphasize practices like small iterative releases, on-site customer involvement, simple design, and test-driven development.

Uploaded by

Umer Hanif
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
32 views

Lecture 4 - Agile Software Development

Agile software development methods focus on iterative development, customer collaboration, and responding to change over rigid planning. Some key agile principles include valuing individuals and interactions over processes, working software over documentation, and customer collaboration over contract negotiation. Popular agile methods like Extreme Programming (XP) emphasize practices like small iterative releases, on-site customer involvement, simple design, and test-driven development.

Uploaded by

Umer Hanif
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 53

SE-200 SOFTWARE

ENGINEERING
Agile Software Development

Instructor: Asst Prof Mobeena Shahzad

BESE 28 (A,B,C)

1
Agile Methods
■ Dissatisfaction with the overheads involved in software design
methods of the 1980s and 1990s led to the creation of agile methods.
■ These methods:
– Focus on the code rather than the design
– Are based on an iterative approach to software development
– Are intended to deliver working software quickly and evolve
this quickly to meet changing requirements.

■ The aim of agile methods is


– to reduce overheads in the software process (e.g. by limiting
documentation)
– to be able to respond quickly to changing requirements without
excessive rework.

2
Agile Manifesto
■ In 2001 Kent Beck and 16 other software developers, referred to as
“Agile Alliance”, signed the “manifesto for Agile software
development”, which stated:

■ We are uncovering better ways of developing software by doing it and


helping others do.
■ 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.

3
Agile Principles
Agile Alliance defined 12 agility principles:

1. Highest priority is to satisfy the customer through early and continues delivery of valuable software.

2. Welcome changing requirements even late in the development (for customers competitive advantage).

3. Deliver working software frequently, from couple of weeks to couple of months.

4. Business people and developers must work together daily throughout the project.

5. Build project around motivated Individuals. Give them the environment and support they need and
trust them to get the job done.

6. Most efficient and effective method of conveying information to and with team is face to face
conversation.
4
Agile Principles
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.

9. Continuous attention to technical excellence and good design enhances agility.

10. Simplicity the art of maximizing the amount of work 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.

5
Key Principles of Agile Methods
Principle Description
Customer involvement Customers should be closely involved throughout the development
process. Their role is to provide and prioritize new system requirements
and to evaluate the iterations of the system.

Incremental delivery The software is developed in increments with the customer specifying
the requirements to be included in each increment.
People not process The skills of the development team should be recognized and exploited.
Team members should be left to develop their own ways of working
without prescriptive processes.
Embrace change Expect the system requirements to change and so design the system to
accommodate these changes.
Maintain simplicity Focus on simplicity in both the software being developed and in the
development process. Wherever possible, actively work to eliminate
complexity from the system.

6
Agile software development is a group of
software development methodologies that are
Agile based on similar principles.
Methods
Agile methodologies generally promote a project
management process that encourages:

• frequent inspection and adaptation

• a leadership philosophy that encourages teamwork

• a set of engineering best practices that allow for rapid


delivery of high-quality software, and a business
approach that aligns development with customer needs
and company goals 7
What are Agile Methods?

Agile Software Development Most agile methods attempt to Each iteration is like a
is a conceptual framework for minimize risk by developing miniature software project of
undertaking software software in short timeboxes, its own, and includes all the
engineering projects called iterations, which may tasks necessary to release the
typically last one to four weeks mini-increment of new
functionality

8
Agile Methods vs Traditional Methods
A plan-driven approach is based around separate development stages with the outputs to be
produced at each of these stages planned in advance. Iteration occurs within activities.

In Agile Methods, specification, design, implementation and testing are inter-leaved and the
outputs from the development process are decided through a process of negotiation during the
software development process.

Agile methods emphasize Realtime communication, preferably face to face, over written
documents

Agile methods like XP relies on the close collaboration of actively engaged individuals with
ordinary talents and has the ability to flexibly schedule the implementation of functionality,
responding to changing business needs

9
Plan-driven and Agile Specification

10
Agile Method Applicability
■ Product development where a software company is developing a
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
– where there are not a lot of external rules and regulations that
affect the software.

■ Because of their focus on small, tightly-integrated teams, there are


problems in scaling agile methods to large systems.

11
Problems with Agile Methods
It can be difficult to keep the Team members may be unsuited to the
interest of customers who are intense involvement that characterizes
involved in the process. agile methods

Prioritizing changes can be


Maintaining simplicity requires extra
difficult where there are
work.
multiple stakeholders.

Contracts may be a problem as


with other approaches to
iterative development.
12
Agile Variants
Extreme Programming (XP)

Scrum

Adaptive Software Development (ASD)

Crystal Clear and Other Crystal Methodologies

Dynamic Systems Development Method (DSDM)

Feature Driven Development

Lean software development

Agile Unified Process (AUP)

13
Extreme Programming - XP

14
Extreme Programming

Extreme Programming (XP) takes an ‘extreme’


approach to iterative development.
Perhaps the best-known and most widely
used agile method.
- New versions may be built several times per day;

- Increments are delivered to customers every 2


weeks;

- All tests must be run for every build and the build is
only accepted if tests run successfully.
15
Extreme Programming
XP (according to inventor Kent Beck) is characterized by 12 practices:

Small Simple
Planning Metaphor
Releases Design

Continuous Pair Collective


Testing
Integration Programming Ownership

40 Hour On Site Coding


Refactoring
Week Customer Standards

16
Extreme Programming
■ Planning  programmers estimate effort of implementing customer stories and customer decides about
scope and timing of releases
■ Small releases  new release every 2 3 months
■ Simple design  emphasis on simplest design
■ Testing  development test driven
■ Refactoring  restructuring and changes to simplify
■ Pair Programming 2 people at 1 computer
■ Collective ownership  anyone can change any part of the code at any time.
■ Continuous integration  new builds as soon as code ready
■ 40-hour week  maximum 40-hour week. No overtime
■ On site customer  customer present and available full time for team
■ Coding standards  rules exist and are followed
■ Open workspace  large room small cubicles
■ Just rules  team has own rules but can be changed any time 17
XP - Example

One of the most famous extreme programming real life examples is Google's
search engine.

Amazon developed Amazon Web Services (AWS) in the wake of extreme


programming.
They used this methodology to build the infrastructure for their cloud
computing services, making it possible to scale up quickly

18
Key Practices of XP
Planning

Release The Project The project is


User stories are Make frequent
planning creates Velocity is divided into
written. small releases
the schedule. measured. iterations

Iteration A stand-up
Move people Fix XP when it
planning starts meeting starts
around breaks.
each iteration. each day.

19
Key Practices of XP
Designing

Choose a system
metaphor . (system of Create spike
Use CRC cards for
Simplicity names for your solutions to reduce
objects that everyone design sessions.
risk.
can relate to)

• Refactor whenever and wherever possible

• For example, Techniques for improving names and location of code: Move method or move field 
move to a more appropriate class or source file
• Rename method or rename field  changing the name into a new one that better reveals its
purpose
20
Class Responsibility
Collaborator (CRC)
cards

Example

21
Key Practices of XP
Coding

The customer is always available


Code must be written to agreed standards
Code the unit test first
All production code is pair programmed
Only one pair integrates code at a time
Integrate often
No overtime .

22
Key Practices of XP
Testing

All code must Acceptance tests


When a bug is
All code must pass all unit tests are run often and
found tests are
have unit tests before it can be the score is
created.
released. published.

23
XP Programming Methodology

24
XP Advantages and Disadvantages

Advantages Disadvantages

Built In Quality Informal, little, or no documentation

Overall Simplicity Scalability

Programmer Power Contract Issues

Customer Power Misconception on the cost of change

Synergy Between Practices Tailoring

25
Example: A ‘prescribing medication’ story

26
Examples Of Task Cards For Prescribing Medication

27
Scrum

28
What is Scrum?
■ The Scrum approach is a general agile method, but its focus is on
managing iterative development rather than specific agile practices.

■ It is an agile, lightweight process to manage and control development


work.

■ Scrum is a team-based approach to iteratively, incrementally develop


systems and products when requirements are rapidly changing

■ Scrum is a process that controls the chaos of conflicting interests and


needs

29
Scrum
■ There are three phases in Scrum.
– The initial phase is an outline planning phase where you
establish the general objectives for the project and design the
software architecture.

– This is followed by a series of sprint cycles, where each


cycle develops an increment of the system.

– The project closure phase wraps up the project, completes


required documentation such as system help frames and user
manuals and assesses the lessons learned from the project.

30
The Scrum Process

31
Key Scrum Concepts

32
33
Primary Scrum Roles

34
Key Planning Elements

35
Key Planning Elements

36
Putting it All Together

37
User Stories
■ Detail can be added to user stories in two ways:
– By splitting a user story into multiple, smaller user stories.
– By adding “conditions of satisfaction.”

■ Example 1: As a vice president of marketing, I want to select a


holiday season to be used when reviewing the performance of past
advertising campaigns so that I can identify profitable ones.

■ Detail could be added as:


– Make sure it works with major retail holidays: Christmas,
Easter, President’s Day, Mother’s Day, Father’s Day.
– Holiday seasons can be set from one holiday to the next (such
as Thanksgiving to Christmas).
– Holiday seasons can be set to be a number of days prior to the
holiday.
38
39
A Sample Product Backlog

40
Product Owner
■ Define the features of the product
■ Decide on release date and content
■ Be responsible for the profitability of the product (ROI)
■ Prioritize features according to market value
■ Adjust features and priority every iteration, as needed
■ Accept or reject work results

41
The Scrum Master
■ Represents management to the project
■ Responsible for enacting Scrum values and practices
■ Ensure that the team is fully functional and productive
■ Enable close cooperation across all roles and functions
■ Shield the team from external interferences

42
The Team
■ Typically, 5-9 people
– Cross functional
– Programmers, testers, user
■ experience designers, etc.
■ Members should be full time
■ May be exceptions (e.g., database administrator)

43
What happens during a Sprint?

Frequent, short Scrum Meetings

Each team produces a visible, usable increment

Each increment builds on prior increments

Clearly defined deliverables and responsibilities

Each team member buys into the assignment

44
The Daily Scrum

Parameters Not for problem solving Helps avoid other


unnecessary meetings
Daily Whole world is invited
15 minutes Only team members, Scrum owner,
Stand up can talk

45
Everyone answers 3 questions

46
At the end of a Sprint?

Status meeting with all Increments are


Surprises are reported.
stakeholders. delivered.

ANYTHING can be New estimates and


changed, work can be team assignments are The project can be
added, eliminated, made for the next cancelled.
reprioritized. Sprint.

Experience from
earlier increments It's always easier to
allows better estimates estimate shorter
and planning as development periods
project progresses.
47
The Sprint Review

Team presents what it accomplished during the sprint

Typically takes the form of a demo of new features or underlying architecture

Informal
• 2 hour prep time rule
• No slides

Whole team participates

Invite the world

48
Sprint Retrospective

Periodically take a Typically 15 30 Done after every Whole team


look at what is and is minutes sprint participates
not working
ScrumMaster
Product owner
Team
Possibly customers and
others

49
Scrum is a best fit for:
■ For brand new projects
■ Projects with volatile requirements, user feedback is required,
■ iterative nature.. Modular

Example:
■ Deploying an ERP application, such as SAP. The vendor has
done this many times, has a process with all steps clearly
defined and understood, and can proceed with a well practiced
waterfall process.
■ Creating custom reports for the ERP application. This is likely
to be an iterative process, as reports evolve towards greater
usefulness over time due to user feedback and is well suited to a
Scrum process.
50
Scrum Benefits

The product is broken down into a set of manageable and understandable chunks.

Unstable requirements do not hold up progress.

The whole team have visibility of everything and consequently team communication is
improved.

Customers see on-time delivery of increments and gain feedback on how the product
works.

Trust between customers and developers is established and a positive culture is created in
which everyone expects the project to succeed.

51
Scrum has been used for:

Commercial In house Contract Fixed price Financial


software development development projects applications

24x7 systems with


ISO 9001 certified Video Game Satellite Control
Embedded systems 99.999% uptime
applications development Software
requirements

Some of the largest


Websites Handheld Software
applications in use

52
References
– “Software Engineering” by Ian Summerville
■ Chapter 3: Agile Software Development

– “Software Engineering : A Practitioners Approach” by Roger S. Pressman


■ Chapter 3: Agile Development

53

You might also like