Agile Extreme Programming Flashcards
Define Extreme Programming (XP)
It is an agile software development framework that aims to produce higher quality software and higher quality of life for the development team.
What are the origins of Extreme programming?
Developed in the 1990s to address specific software development requirements in the face of vague or changing requirements. (Beck at the Chrysler Corp)
Describe the Extreme Programming Mindset.
Kent Beck described the following as a minimal set of effective practices:
- Very Short Iterations (Planning Game)
- Continuous Code Reviews (Pair Programming)
- Extensive Testing (Test-Driven Approach)
- Automating builds (Continuous Integration)
- Constant design improvement (Refactoring)
- Continuous architecture refinement (Metaphor)
Describe the XP tenets
XP aims to flatten the cost of change curve by applying XP values, roles and practices.
What are the five XP Values
Communication
Feedback
Simplicity
Respect
Courage
Describe the XP Value of Communication.
Software development requires communication to transfer knowledge. Most problems can be traced back to a lack of communication.
XP employs communication in the area of fine scale feedback, (e.g., Paired programming, Planning game, Test-driven Development, and Whole team) and Shared Understanding (e.g., Coding standards, collective coed ownership, simple design and system metaphor).
What is the responsibility of the XP Coach?
To notice poor communication and to facilitate effective information exchange.
Describe the XP value of simplicity.
It is the quality or condition of being easy to understand, do or uncomplicated in design. Avoids waste. (What is the simplest thing that will work). (Remember the KISS mentality).
It means doing a simple thing today, even if it means we pay a little more to change it tomorrow, by addressing only the known requirements without trying to predict future requirements.
Describe the relationship between simplicity and communication.
Simplicity and communication have a mutually supporting relationship, in that when there is more communication, there is clearer understanding of what is needed, and the higher the confidence level on what doesn’t need to be done. As well, the simpler the solution, the less communication required.
Define the XP value of feedback.
Constant feedback about previous efforts means that teams can identify area for improvement and revise their practices. Feedback also supports simple design.
Define the XP value of Courage.
It is effective action in the face of fear and is required to raise organizational issues that reduce the project teams effectiveness, allows the opportunity to stop something that does not work and try something else or to accept and act on feedback.
Define the XP value of Respect.
Builds on the other four values of communication, simplicity, feedback and courage, respect means respecting ones thoughts, feelings, abilities, qualities or achievements.
It is demonstrated by programmers that never commit changes that break compilation, that make existing tests fail, or that otherwise delay the work of their peers. Team members strive for high quality and seek the best design.
What are the four roles and one optional role of the XP team?
- Customer
- Programmer
- Tester
- Coach
- Optional: Tracker
Define the role of Customer
Commonly includes:
- Driving project goals and features.
- making business decisions.
- participating in the planning game.
- Acceptance tests.
- Representing business/Sponsor interests.
- Prioritizing
- Ideally a single voice.
Define the programmer role.
Commonly includes:
- collaborating to create customer solutions.
- pair programming
- Programming testing
- Applying designs, coding standards and refactoring.
- collective code ownership.