In today’s era, gradually the traditional Waterfall project management model is gradually replaced by Agile models, when the project needs high flexibility, to better meet the needs of customers. count. In addition to the scrum which is a very popular Agile model, this article will cover Extreme Programming, which has also grown in popularity for its many outstanding features. So what is Extreme Programming, let’s find out.
Extreme Programming – or “XP” for short – is an Agile paradigm focused on software development. While Scrum focuses on the project management level in terms of setting work priorities and getting feedback, XP focuses on Best Practices in software development. Therefore, there will be a lot of software-related references in the following discussion. As for the values and principles of the Agile Manifesto, see if you have a way to apply XP values and practices to other types of knowledge projects.
The core values of XP
XP’s core values are: simplicity, connectivity, responsiveness, courage, and respect; These basic values manifest themselves in practices performed throughout the XP life cycle.
- Simplicity : is a value focused on reducing complexity, features, and waste. Team XP upheld the motto: “Find the simplest thing that works” and build the solution first.
- Connect : This value is focused on making sure the entire project team knows what they need to do and what people are doing. For example, this row meeting is an important networking tool (These meetings are explained in Chapter 5).
- Feedback : The project team should get early feedback. Receiving failure early can be very helpful, especially if it delivers new information while we have time to improve the product.
- Courage : It will take courage to let others examine your work. In Pair Programming (described later), project team members share code and need to frequently simplify and adapt these codes. While supported by applying automated builds and unit tests, developers still need a certain amount of confidence to make important changes.
- Respect : Respect is a key value of XP projects, where everyone works together as a team and every individual is accountable for the success and failure of the project. This value is also related to pair programming; The individuals on the team need to keep in mind that everyone has a different way of working and should respect that difference. The following figure depicts the XP process:
As depicted in the chart above, the project team (XP team) relies on “user needs” (known as User stories) to plan releases and loops (Iterations). The typical loop lasts 2 weeks, with the programmer working in pairs to write code throughout these loops. All software development deals are rigorously tested and regularly. Then, upon customer approval, the software is distributed as small releases.
Spike is the space of work used to mitigate problems and threats, and architectural spikes are the loops used to demonstrate approaches to technology. These spearheads are combined with the release planning process.
Roles in the XP project team
XP has different roles from Scrum – roles in XP are Coach, Customer, Programmer, and Tester. Let’s see how each role participates in an XP project.
The coach acts as a consultant to the project team, guiding the process and helping the team members on the right track. The coach is also a coordinator – helping the project team to be more efficient – connecting and fostering communication within each project team as well as between the project teams. This role has many of the same responsibilities as the Scrum Master. Although the official definitions of these two terms differ, they are often used interchangeably.
In addition, the coach can also be a manager, administering external connections and coordinating project team activities. However, this is not an official role in XP
In an XP project team, the customer is the business representative who provides the requirements, priority lists, and business direction for the project. This person identifies the product to be built, prioritizes the features, and confirms if the product is working properly. This role is similar to the “Product Owner” in Scrum.
Programmers are developers who build products by writing and integrating code to respond to requests from users.
Auditors provide quality assurance and help customers identify and write “Acceptance Tests” for the needs of customers (User stories). This role can also be assumed by the developer (programmer), if they have the necessary skills.
Above are a brief overview of the Extreme Programming model, also known as Extreme Programming. In the next article, we will continue to dig deeper into how it operates and its practices. See you in the next article in this series.