Extreme Programming (also termed as XP) is an agile software development methodology. XP focuses on coding of the software. XP has four core values and fourteen principles.
XP has four core values: -
• Communication: - Team should communicate on a regular basis, share information, discuss solutions and so on. Teams who communicate very often are able to solve problems more efficiently. For instance any kind of issues which are resolved in a cryptic fashion send an email to the whole team. This ensures that knowledge is shared with every one and in your absence some other developer can solve the problem.
• Simplicity: - Keep things simple. Either it’s from a process angle, technical angle or from a documentation point of view. An over complicated process or a technical architecture is only calling for problems.
• Feedback: - Regular feedback from end user helps us to keep the project on track. So regular feedbacks should be enabled from end user and testing team.
• Courage: - To bring change or to try something new, needs courage. When you try to bring change in an organization you are faced with huge resistance. Especially when your company is following traditional methodologies applying XP will always be resisted.
From the above four core values 14 principles are derived. Values give a broader level view while the 14 principles go deep in to how to implement XP.
• Rapid feedbacks: - Developers should receive rapid feedbacks from the end user. This avoids confusion in the last minute of delivery. In water fall model feedbacks are received in late intervals. This is minimized in XP.
• Keep it Simple: - Encourage simplicity in project design and process. For instance rather than using complex tools probably simple handwritten flowcharts on board can solve the problem.
• Give incremental changes: - Whenever you update patches and updates, release it in small pieces. If you are updating numerous patches in one go and if there is a defect, it will be difficult to track the same.
• Embrace Change: - Do not be rigid with the customer saying that we have already signed the requirement so we can not change the architecture. End customer or users are finally human beings so they can change as the project moves ahead....Accept it if it’s logical.
• Light Weight: - Keep documentation and process as simple as possible. Do not overdose the developer with unnecessary documentation. Developer’s main work is coding and ensuring that the code is defect free, so he should be more concentrating on the code rather than documentation.
• Deliver Quality: - Any code you deliver should be defect free. Be committed to your work and deliver defect free code.
• Start small and grow big: - Many times the end customer wants to start with a big bang theory. He can start with a big team, wants all the functionalities at the first roll out and so on. Start with small team and the “must have” features to be delivered. As we add features and the work load increases gradually increase your team strength.
• Play to win: - Take all steps which are needed to make a project success. Any type of deadline and commitment try to meet the same with true spirit.
• Encourage honest communication: - Promote honest communication. If communication happens face to face then there is less leakage of requirement. Encourage end user to sit with developers and give feedbacks; this makes your project stronger.
• Conduct testing honestly: - Test plans should not be created for the sake of creation. Test plan should prove actually that you are on track record.
• Adapt according to situation: - No two projects are same, no two organization are same and behavior of people from person to person. So it’s very essential that our approach also adapts according to situations.
• Metric honesty: - Do not gather metrics for the sake of gathering or showing off to external people how many metrics your project derives. Pick metrics which makes sense to your project and helps you measure your project health.
• Accept responsibility: - Do not impose or assign people on task which they do not like. Rather question the resource once which tasks he likes and assign accordingly. This will increase productivity to a huge level and maintains your project enthusiasm high.
• Work with people’s instincts: - Normally in a project team there are highly motivated people, moderately motivated and people with less motivation. So give power to your motivated team members and encourage them.
Asked In: Many Interviews |