As my last blog was all about where agile development came from, this blog will focus on the extreme programming method of agile development. it will look at the different phases and hopefully give you a comparison between traditional methods and agile methods. enjoy 🙂
Extreme programming is probably the most prominant of the agile methods. the very first extreme programming project was started March 6th 1996 . Extreme Programming or XP focuses on customer satisfaction and teamwork, everyone is an equal partner i.e. managers, customers and developers all collborate together.
Extreme programming improves software development in 5 essential ways
- Communication– XP developers constantly communicate with customers and fellow developers
- Simplicity– They keep their design simple and clean so as to avoid any complications.
- Feedback – they receive feedback by testing at every stage.
- Respect – they respect customers and deliver the system as early as possible so that changes can be made if neccessary. Also because everyone is equal and in a collaborative team, opinions are respected by all members.
- Courage – XP programmers respond courageously to changing requirements and new technologies
the XP life cycle consits of 5 phases – Exploration, Planning, Iterations to release, production, maintenence and death
- Exploration phase -involves 2 stages
- initial requirements modelling – customers and users meet with the development team to create “user stories”. user stories are extremely important in XP as they provide high level requirements for your system and are a critical input into your planning process.
- Initial architectural modelling – identify a metaphor that describes how you intend to build the system. The metaphor acts as a conceptual framework, identifying key objects and providing insight into their interfaces.it does not matter when exactly you develop this metaphor once it is at the beginning of the project
- Planning Phase
It is during this phase that developers paln a date with the customer for the first set of user stories to be implemented. Modelling is an important part of this phase. Normally a task card is drawn up, this is a written list of what needs to be done to complete the task. however sketches can also be drawn up and then they are transferred to an index card so to have a record of your design to base your coding efforts on during the next iteration.
- Iterations to release Phase
this is where your major development efforts including modeling, programming, testing, and integration occur. In Iteration planning the focus is on the user stories assigned to the current iteration. When you are working on iteration you will find that new user stories, ones that have not been estimated, have been added in therefore you need to go through the effort of identifying tasks so you may accurately estimate each user story. After estimating the new stories, and perhaps revisiting the other stories just to be on the safe side, you may find that you have too many or too few stories for the iteration and will need to move stories to/from other iterations.
Pair programming – this is a big part of the XP development. people work in pairs. throughout the production of the system 2 programmers sit side by side at the same machine, this ensures that everything is gone over by not 1 but 2 programmers and it is provent that pair programming produces better codes than programmers working on their own.
- Production phase
during this phase it is essential you slow down the rate at which ypu evolve the software because it is extremly important that the right things go into the next release. the system is tested and the performance of the system is checked before release. New changes may be introduced here , however they would have to be implemented quickly. it is also a good idea during this phase to look at ypur documentation and clean it up for users if needed.
- Maintenance phase
this phase is to ensure that the system is being used correctly and that is works well. an effort for customer ssupport has to be made here, it is vital that a system is maintained and to do this users need to know what they are doing – this is why documentation and also user involvement during development is crucial. if a system is not maintained then the development of it was a waste of time.
- Death phase
This occurs when customers have no more stories to implement, customer needs are met. all neccessary documentation is written in this phase. this phase may also occur if a development has to be abandoned because of it being too expensive to further development or desired product is not being delivered .
so those are the 5 phases of the XP model …….below is a video on the strengths and weaknesses of extreme programming , i just thought it might be helpful ….hope you like it 🙂