Extreme Programming Practice: Planning Game

2021-12-31 09:38:28
ZenTao
Original 2006
Summary : In Extreme Programming, the planning game is a planning meeting held by the development team and stakeholders. It has two sessions: release planning and iteration planning. Customers and all developers in the team must participate.


(Source: Pinterest)

What Is Extreme Programming?

Extreme Programming or XP is a software development framework in agile that aims to produce high-quality software while fostering a higher quality of life for the development team. It is the most specific of all agile frameworks that tackle appropriate engineering processes to make sure the developers don’t suffer from the dynamic nature of the setup.

Extreme Programming Practices

Fig. 1. The XP game in agile involves both customers and developers
(Source: Freepik)


In Extreme Programming, the planning game is a meeting held by the development team and stakeholders. It has two sessions: release planning and iteration planning. Customers and all developers in the team must participate in the planning game scrum.

During the planning game in agile, the responsibilities between the team and the client are assigned and clarified. User stories are also adopted in Extreme Programming to manage and track user requirements. In fact, the concept of user stories originated from Extreme Programming. 

XP game in agile is based on the concept that customers have the information about the value of projects while the development team knows about their costs. In a simpler sense, it’s basically about the exchange of information: the customer provides short stories and the development team responds by estimating the completion time and cost of these stories. 

The XP game in agile is divided into two parts: release planning and iteration planning. The stories agreed upon by both parties are exchanged during the release and iteration planning sessions. The planning game in agile further breaks down these sessions to include three phases, namely exploration, commitment, and guidance.

Release Planning

Fig. 2. Release planning is the part of the XP game in agile where user stories are defined
(Source: Freepik)


During the exploration phase, the customer collects user stories and writes them on the user story cards. The developer estimates the required man-hours for each user story and writes the estimated value on the story card. If a user story cannot be estimated, it will be re-decomposed by the customer and then estimated again by the developer.


During the commitment phase, customers prioritize user stories based on business value. On the other hand, the developers prioritize user stories based on risk and confirm the development velocity. Finally, the customer chooses the user story to be completed for the next release.

In the guidance phase, developers and customers can adjust and modify the plan. For example, the priority of user stories can be changed and along with that is the establishment of deviations from the previous estimates. These factors are discussed during the planning game scrum. This is an opportunity to adjust the plan accordingly and make sure the project is still completed within the expected timeline.

Iteration Planning

Fig. 3. Only the development team is involved in this part of the planning game in agile
(Source: Freepik)


Iteration planning is the next part of the planning game in agile. It involves organizing what needs to be done for the next release planning. This portion of extreme programming planning is done right at the beginning of each iteration. Also, in each planning game scrum, only the development team members are included in the discussions.

During the exploration phase, the team discusses each user story and breaks it down into tasks. The working hours to complete the tasks are then estimated by the development team.

During the commitment phase, each developer voluntarily claims the tasks they want and makes a final estimate of the tasks they’re responsible for. During this portion of the planning game scrum, the team should evaluate whether they are overloaded. The advantage of the XP game in agile is that the division of labor can be optimized to make sure the tasks are completed on time. This means that one or more developers can be made responsible for one task.

During the guidance phase of each subsequent iteration, developers execute each task through pair programming, continuous integration, test-driven development, and other practices. Finally, they do functional testing to make sure the agreed user stories produce the desired output.

Summary

The supporters of Extreme Programming believe that the continuous change of software requirements is inevitable, natural, and acceptable in software development projects. They also believe that all requirements should be defined at the beginning of the project. Rather than controlling or limiting changes, XP practices support each other. For this to happen, customers and developers should be proactive during the planning process.

The goal of the XP planning game in agile is to be adaptive to changes at any stage of the project cycle. Planning extreme programming involves finding the most effective method to deal with changes. For example, pair programming, code specification, collective code ownership, continuous integration, and other practices enable each team member to refactor the code easier and adjust to changes as needed.


Write a Comment
Comment will be posted after it is reviewed.