*The following is written by guest blogger Tammy Ziemba
Extreme Programming (XP) is an agile software development framework that aims to deliver higher quality software and higher personal satisfaction for the development team. XP is the most explicit of the frameworks in regards to suitable design practices for software development.
When is XP A Good Choice
The general attributes of a suitable XP environment can be found on www.extremeprogramming.org:
- Powerfully changing software necessities
- Dangers brought about by settled time ventures utilizing new technology.
- The technology you are utilizing takes into consideration mechanized unit and functional tests.
Because of XP’s particularity with regards to its full arrangement of software building practices, there are a few situations where you may not have any desire to practice XP thoroughly. The post When is XP Not Appropriate on the C2 Wiki is likely a decent place to begin to discover models where you might not have any desire to utilize XP.
While you can’t utilize the whole XP framework, by and large, that shouldn’t prevent you from using whatever number of the practices as could be expected under the circumstances given your unique situation.
Books and Educational Material on Extreme Programming
5 Values of XP
The five values of XP are communication, simplicity, feedback, courage, and respect and are depicted in more detail underneath.
Software development is inalienably a team sport that depends on communication to exchange information from one team member to every other person on the team. XP stresses the significance of the proper sort of connection – face to face talk with the guise of a whiteboard or other illustration instrument.
Simplicity signifies “what is the least difficult thing that will work?” The reason for this is to dodge squander and do just the essential things, for example, keep the design of the framework as straightforward as would be prudent, so it is less demanding to look after, support, and reconsider. Simplicity likewise implies that you address just the necessities; don’t attempt to anticipate what’s to come.
Through consistent feedback about their past endeavors, teams can distinguish territories for development and change their practices. Feedback likewise underpins basic design. Your team manufactures something, assembles feedback on your plan and usage, and after that modify your item going forward.
Kent Beck characterized courage as “powerful activity in the face of dread” (Extreme Programming Explained P. 20). This definition demonstrates an inclination for activity-dependent on different standards with the goal that the outcomes aren’t unsafe to the team. You need the courage to raise authoritative issues that decrease your team’s adequacy. You need the courage to quit accomplishing something that doesn’t work and take a stab at something different. You need the courage to accept and follow up on feedback, notwithstanding when it’s hard to recognize.
Colleagues are to respect each other to speak with one another, give and accept feedback that praises your relationship, and to work together to recognize straightforward designs and arrangements.
The center of XP is the interconnected arrangement of software development practices recorded underneath. While it is conceivable to do these practices in detachment, numerous teams have discovered a few exercises strengthen the others and ought to be done together. Combined, they can help mitigate the dangers you regularly face in software development.
The XP Practices have changed a bit since they were at first introduced. The below list is what they currently are:
- The Planning Game
- Little/Small Releases
- Allegory or System Metaphor
- Straightforward and Simple Design
- Continuous Testing
- Pair Programming
- Aggregate or Collective Ownership of Code
- Continuous Integration
- 40-hour week
- On-Site with the Customer
- Coding Standards
The following are the portrayals of the practices as depicted in the second version of Extreme Programming Explained: Embrace Change. These depictions incorporate refinements dependent on encounters of numerous teams who practice Extreme Programming and mirror a progressively commonsense arrangement of practices.
Since communication is one of the five values of XP, and a great many people concur that face-to-face discussion is the best type of connection, have your team sit together in a similar space without obstructions to their communication, for example, desk area dividers.
A practical cross-functional gathering of people with the essential skills to complete an item of work. This includes all of the people who have some impact on fulfilling that work should get together once a day to accomplish a particular result.
Set up your team space to encourage face-to-face communication. Enable people to have some privacy when they need it. Make working together as a team straightforward and easy. This can encourage shared learning or diffusion of knowledge from one person to another. Use Information Radiators to convey data effectively.
The team is best at software development and all learning work when they are focused and free from diversions. Empowered work implies beyond any doubt that the team is capable physically and mentally of making the best choices of how to perform the work.
The thought behind this practice is that two minds are better than one, and four eyes may catch things that two could not. Teams that have utilized pair programming have discovered that it enhances quality and it can increase the speed at which programming can be done by helping to eliminate technical debt.
When is XP Not Appropriate. Retrieved from http://wiki.c2.com/?WhenIsXpNotAppropriate
Beck, Kent (1999). Extreme Programming Explained: Embrace Change.