0% found this document useful (0 votes)
51 views11 pages

03 - Agile Software Development

The document discusses agile software development and extreme programming (XP). It describes plan-driven development and how agile development interleaves specification, design, implementation, and testing through negotiation. The agile manifesto values individuals, working software, customer collaboration, and responding to change over processes, documentation, contracts, and plans. XP takes an extreme approach with daily builds, 2-week iterations, and passing all tests. Key XP practices include incremental planning, small releases, test-first development, pair programming, and continuous integration. Testing is central to XP with test-first development and incremental test development. Potential problems with agile methods include customer involvement, team suitability, maintaining simplicity, and contracts

Uploaded by

waris ali
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
51 views11 pages

03 - Agile Software Development

The document discusses agile software development and extreme programming (XP). It describes plan-driven development and how agile development interleaves specification, design, implementation, and testing through negotiation. The agile manifesto values individuals, working software, customer collaboration, and responding to change over processes, documentation, contracts, and plans. XP takes an extreme approach with daily builds, 2-week iterations, and passing all tests. Key XP practices include incremental planning, small releases, test-first development, pair programming, and continuous integration. Testing is central to XP with test-first development and incremental test development. Potential problems with agile methods include customer involvement, team suitability, maintaining simplicity, and contracts

Uploaded by

waris ali
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 11

Software Engineering-1

Lecture 3

Syed Usman Anwar


Lecturer
COMSATS Institute of Information Technology
Agile Software Development
Plan-driven and agile development

• Plan-driven development
• A plan-driven approach to software engineering is based around
separate development stages with the outputs to be produced at each
of these stages planned in advance

• Agile development
• 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

3
Plan-driven and agile specification

4
Agile Manifesto

• “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;

5
The principles of agile methods

Principle Description
Customers should be involved throughout the development
Customer involvement process. Their role is provide and prioritize new system
requirements and to evaluate the iterations of the system.
The software is developed in increments with the customer
Incremental delivery specifying the requirements to be included in each increment.

The skills of the development team should be recognized and


People not process exploited. Team members should be left to develop their own
ways of working without prescriptive processes.
Expect the system requirements to change and so design the
Embrace change system to accommodate these changes.

Focus on simplicity in both the software being developed and


Maintain simplicity in the development process. Wherever possible, actively work
to eliminate complexity from the system.

6
Extreme programming

• Perhaps the best-known and most widely used agile method.

• Extreme Programming (XP) takes an “extreme” approach to iterative development

• 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

• The extreme programming release cycle

7
Extreme programming practices (a)

Principle or practice Description


Requirements are recorded on story cards and the stories to be
Incremental planning included in a release are determined by the time available and
their relative priority.

The minimal useful set of functionality that provides business


Small releases value is developed first. Releases of the system are frequent
and incrementally add functionality to the first release.
Simple design Enough design is carried out to meet the current requirements
and no more.
An automated unit test framework is used to write tests for a
Test-first development new piece of functionality before that functionality itself is
implemented.
Refactoring All developers are expected to refactor the code continuously as
soon as possible code improvements are found. This keeps the
code simple and maintainable.

8
Extreme programming practices (b)

Pair programming Developers work in pairs, checking each other’s work and
providing the support to always do a good job.
Continuous integration As soon as the work on a task is complete, it is integrated into
the whole system. After any such integration, all the unit tests in
the system must pass.
On-site customer A representative of the end-user of the system (the customer)
should be available full time for the use of the XP team. In an
extreme programming process, the customer is a member of
the development team and is responsible for bringing system
requirements to the team for implementation.

9
Testing in XP

• Testing is central to XP and XP has developed an approach where


the program is tested after every change has been made.

• XP testing features:

• Test-first development

• Incremental test development from scenarios

• User involvement in test development and validation

10
Problems with agile methods

• It can be difficult to keep the interest of customers who are involved in the
process

• Team members may be unsuited to the intense involvement that


characterizes agile methods

• Maintaining simplicity requires extra work

• Contracts may be a problem as with other approaches

11

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy