By the time when you are reading this article you could have started hearing the word Extreme programming. There is a debate going on already whether extreme programming is good or not? Here I’d like to cover some of the key features of extreme programming and will give some links at the end; they can feed you enough for further reading.
Extreme programming (XP for short) is a software process developed by Kent Beck. Extreme programming has several interesting features; the first one involves less paper work.
In XP everyone has important roles. The main players are the XP customer, team and the manager. The XP team plans and builds "stories", a story gives the idea about how the system should function.
The customer will describe how any story to be. The customer will be involved in determining the stories, which has more business value and has the valuable features that can be developed within the timeline. The number of stories depends on the size and complexity of the project. The customer will involve in the process of acceptance testing which means testing and verifying the final solution if it is up to the need or not. In XP the customer will define the release. Remember an extreme project needs a fulltime customer for guiding the project thought its phases. The customer can be in on-site or sometimes they may not be there.
The XP programmer’s roles are analysis, design, coding, testing and integration. Moreover the programmer in the team can estimate the difficulty and finishing time on stories. XP programmers involves in continuous integration, excessive testing, pair programming, collective code ownership, refactoring etc.,
The manager is the middleman who makes the process between the customer and the team smoother. The manager has to find out the factors that are making the process slow and by applying his knowledge and experience he has to change the problems. The managers will not involve directly in of the phases during the analysis, design, coding, testing or integration but they will co ordinate them for a smooth go. The manager is to fix the conflicts.
In extreme programming everyone has their rights and they can raise voice if anything goes against their rights. They can immediately have a standup meeting to fix out any conflicts or troubles if arises.
Extreme programming has many concepts. I'll try to cover some of them in my forth coming articles, like code quality, Acceptance tests and pair programming. There are some controversies over extreme programming also. But it's a managers' decision over extreme programming in any software/web development company to adopt it or not to. Since extreme programming is good for companies with less manpower or smaller companies, they can use extreme programming methodologies while they are growing itself.
Martin Fowler's is coming with his new methodology on extreme programming. I'd suggest you give a visit to his site as he talks XP in another perspective.