-
eXtreme Programming Values
eXtreme Programming is based on the following five core values:
• Respect: Respect is a two-way street: it needs to be given to fellow teammates so that everyone feels respected as a valued team member; and it is also required from management so that the team owns and is responsible for what they have committed to. Respect is not attacking a fellow developer for the code that he has written. Respect implies criticizing the code, not the developer, and working with that developer to increase his level of code quality. Respect is being humble and leading by example to bring others on your team up, not disrespectfully tear them down.
• Communication: In order to develop quality software efficiently, clear and frequent communication is required between the customer and team members. If possible, sit down with the customer and flush out ideas, point to things, make communication highly visible and interactive, and avoid "pie in the sky" types of conversations. Stick figures and a whiteboard or pointing at the computer screen to bring across a point go a long way. Such methods often work better than trying to write a multi-page document attempting to get the same point across.
Clear and frequent communication is required by code as well as people. XP practices such as simple design, refactoring, pair programming, and test-driven development (TDD) help define a simple system architecture that is understood by the team and represents the domain that the model is based on.
• Simplicity: Albert Einstein had it right he said, "Make everything as simple as possible, but not simpler." Simplicity is an art form. Keeping the code simple means doing what is required and nothing more, rather than over-complicating things that may never be needed. The value of having a simple code base is that it enables developers to quickly understand and work with the code, which in turn enables features to be added and modified easily and quickly.
• Feedback: Feedback is an essential part of XP programming and it can come in various flavors. Feedback is important when working with the code base to ensure that it is not broken when making a modification. This is achieved through TDD and a continuous integration process. Feedback is also valuable when demoing working code to a customer. The customer’s feedback can be integrated into the code right away, or added to the next iteration. Having customers sit with the team allows constant feedback to happen. Finally, feedback from the rest of the development team is crucial in XP. Team feedback can help validate system design decisions and ensure the design remains simple. Feedback from the team via pair programming enables knowledge sharing and increased technical excellence; for when a member of the team learns a new technique, she can share it. Team feedback is enabled by the team sitting together, which is an XP practice that you will read more about later.
• Courage: Last, but certainly not least, courage is a must. The XP methodology empowers developers to self-organize and estimate their work; and to be honest and transparent with estimates and roadblocks. To have courage opens the possibility of failure; but the key is to fail early, change course, and continue along the path to success. Courage is needed for developers to leave preconceptions behind when they start a project. Thus they are able to embrace new ideas and come up with the simplest design for the project they are working on, rather than (for instance) trying to reuse a design that is familiar from a previous project.
The project management methodology of XP, as you’ll see, is very similar to Scrum; we will discuss similarities. Now let’s take a look at the practices of XP, which can help you achieve an agile software development process.
Source of Information : Pro Agile .NET Development with SCRUM
Subscribe to:
Post Comments (Atom)
0 comments: