03 - Agile Software Development
03 - Agile Software Development
Lecture 3
• 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
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.
6
Extreme programming
• All tests must be run for every build and the build is only accepted if tests run successfully
7
Extreme programming practices (a)
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
• XP testing features:
• Test-first development
10
Problems with agile methods
• It can be difficult to keep the interest of customers who are involved in the
process
11