Another agile methodology besides the commonly known Scrum and Lean Software development like Kanban is extreme programming.
Whereas Scrum and Lean methods have more or less only certain rules on the process, extreme programming in its own nature also defines certain rules regarding the software development of the project as well. Since the core is programming and software development, it is also not applicable to projects that do not involve software development. Under the following circumstances Extreme Programming could be beneficial for your project:1
Dynamically changing software requirements
Risks caused by fixed time projects using new technology
Small, co-located extended development team
The technology you are using allows for automated unit and functional tests
In general, extreme programming consists of the following four main pillars:23
Coding
Testing
Listening
Designing
Coding
If you do not have anything to code, you have nothing to do. Coding is the heart of extreme programming and delivers the results for the customer. You also write your code doing pair programming, so that you ensure higher quality of the software from the beginning.
Testing
Testing is crucial, because it ensures that your developed software is great and behaves as it should. There are different kind of tests:
Unit tests – should be written even before starting to code
Acceptance tests – check the customer requirements
Integration tests – integration with other systems
Listening
It is very important that the software which is developed, meets the needs of the customer, because otherwise it is only waste. Therefore, extreme programming dedicates this point mainly to the customer-developer interaction. It is also important that a customer or someone speaking for the customer is available for the team all the time.
Designing
Happens regularly between the developers and allows to design the system in a future proof way, so it ensures flexibility when adding new features or changes.
Main Features of Extreme Programming
Besides the above-mentioned pair programming, there are three features that in my opinion make extreme programming a great framework after all: 4
Test Driven Development
Before a developer starts the test, he or she writes the testcase first, this increases the quality and awareness. It also relies on a rule that says that the build of the software should be maximum 10 minutes.
Planning Game
As in Scrum the developers discuss requirements together with the customer to set the scope and define the requirements
Continuous deployment
Changes are immediately tested and committed to the code base after finishing, so that you can catch on integration issues as soon as possible.
Comments