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 | |