extreme programming | has definition A process model and methodology that provides a disciplined approach to highly incremental and user-centred development of small projects |  |
has philosophy software developers should not need to be overworked, so overtime should not be needed |  |
has principles - The development team includes all the stakeholders
- Large requirements documents are replaced by short user stories which dictate project planning
- Releases are small and frequent
- Planning takes place just before the start of each iteration
- Scope, resources and time are the three project variables that can be changed. Management can only dictate two of these; the developers determine the third
- Quality should not be sacrificed
- In order to ensure high quality, design for testability is emphasized: Automated test cases are written before the software is developed
|  |
has web site www.extremeprogramming.org  |  |
is popular for small projects that involve uncertain, changing requirements and other sources of high risk |  |
is a subtopic of 11.2 - Software Process Models |  |
is an instance of methodology |  |
is an instance of process model |  |
promotes the use of CRC cards, a focus on simplicity, creation of 'spike' throwaway prototypes when difficult technical issues are encountered, merciless restructuring of code, frequent integration, programming in pairs, and continual improvement |  |
methodology | describes detailed sequences of steps for performing analysis and design |  |
is often supported by tools developed by the author of the process, or others |  |
usually describes aspects of project management |  |
usually requires the use of a particular notation and the production of documentation in particular formats |  |
process model | functions as an aid to thinking, not as a rigid prescription of the way to do things |  |
helps the project manager and his or her team to decide what work should be done and in what sequence to perform the work |  |