Topics covered * Agile methods * Plan-driven and agile development * Extreme programming * Agile project management * Scaling agile methods
Rapid software development * Rapid development and delivery is now often the most important requirement for software systems * Businesses operate in a fast –changing requirement and it is practically impossible to produce a set of stable software requirements * Software has to evolve quickly to reflect changing business needs. * Rapid software development * Specification, design and implementation are inter-leaved * System is developed as a series of versions with stakeholders involved in version evaluation * User interfaces are often developed using an IDE and graphical toolset.
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) and to be able to respond quickly to changing requirements without excessive rework.
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 * That is, while there is value in the items on the right, we value the items on the left more.
The principles of agile methods Principle | Description | Customer involvement | Customers should be