2.3.4
Extreme Programming
Extreme Programming
Extreme Programming
Extreme programming is an agile methodology that is good for rapidly changing user requirements.


Extreme planning
Extreme planning
- Extreme planning is the first stage, where the client is in constant communication with the project team to establish the requirements.
- The project then goes into the 'planning game' to plan out releases and what will be in each iteration.


Extreme designing
Extreme designing
- The project team then moves into extreme designing where they will build simple designs that implement the needed functionality.
- During this they will develop what is known as the 'project metaphor'.
- This is a way to describe the project and build it up.


Extreme programming
Extreme programming
- The project team then move into extreme programming where they will develop the agreed items from the planning game.
- During this time the programmers work in pairs with one coding and the other critiquing the code.


Extreme testing
Extreme testing
- Once development is completed then it moves to extreme testing where the code is tested in units.
- Integration testing is also completed to ensure it works together and the code is reviewed for efficiency and quality.


Acceptance testing
Acceptance testing
- Acceptance testing is where the client feeds back on the product in its current stage.
- This is then taken into the next iteration of extreme planning for the next release, and the progress all repeats until the project is completed.
Merits & Drawbacks of Extreme Programming
Merits & Drawbacks of Extreme Programming
Software development methodologies are suitable in different situations and all of them have positive and negatives.


Merits of extreme programming
Merits of extreme programming
- Like agile, extreme programming can produce a product quickly for the client to be able to sell or use.
- The product is then quickly incremented for improvements and additional features.
- The project is constantly refactoring in response to continuous client feedback.
- This can save time and money for developing.
- The project is at lower risk of failure, as the client has guided the project with their continuous feedback.


Drawbacks of extreme programming
Drawbacks of extreme programming
- The project can be too code focused and not design focused so may not be the best possible product and extreme programing produces little to no documentation.
- If the developers are split geographically it can cause issues when it is time for code review.


Usage
Usage
- Extreme programming is best suited to projects where the client has a constantly changing set of requirements, but needs a product quickly to get to market and for the lowest possible price.
1Components of a Computer
1.1Structure & Function of the Processor
1.2Types of Processors
2Software & Software Development
2.1Systems Software
2.2Applications Generation
2.3Software Development
3Exchanging Data
3.1Compression, Encryption & Hashing
3.3Networks
4Data Types, Data Structures & Algorithms
4.1Data Types
5Legal, Moral, Cultural & Ethical Issues
5.1Computing Related Legislation
6Elements of Computational Thinking
6.1Thinking Abstractly
6.2Thinking Procedurally
6.3Thinking Logically
7Problem Solving & Programming
7.1Programming Techniques
7.2Programming Construction
Jump to other topics
1Components of a Computer
1.1Structure & Function of the Processor
1.2Types of Processors
2Software & Software Development
2.1Systems Software
2.2Applications Generation
2.3Software Development
3Exchanging Data
3.1Compression, Encryption & Hashing
3.3Networks
4Data Types, Data Structures & Algorithms
4.1Data Types
5Legal, Moral, Cultural & Ethical Issues
5.1Computing Related Legislation
6Elements of Computational Thinking
6.1Thinking Abstractly
6.2Thinking Procedurally
6.3Thinking Logically
7Problem Solving & Programming
7.1Programming Techniques
7.2Programming Construction

Unlock your full potential with GoStudent tutoring
Affordable 1:1 tutoring from the comfort of your home
Tutors are matched to your specific learning needs
30+ school subjects covered