Extreme Programming

XP Practices

by Bjorn W.

The methodology of Extreme Programming encourages you and your team to follow some practices to create products in an efficient, solution-oriented and maintainable way.

Standard practices in no particular order are:

10-Minute Build

The 10-minute build practice is an extreme programming practice where the code base is designed by the developer to be built automatically. The code base is also designed to test run in ten minutes or less. It is from the amount of time required for the code base to finish running all tests that the 10-minute build derives its name.

Collective Code Ownership

The concept of Collective Code Ownership points out to the fact that in an agile software development process, no single member of the whole team owns any specific part of the source code. Therefore, any member of the team can contribute a fresh idea to the project that’s meant to improve the design of the software and fix any bugs in the project. In the process, there is a consistent application of coding standards and each member of the team contributes in a manner that can be deciphered by any member of the whole team. Any new versions created by any member of the team that is incomprehensible are replaced by simpler versions that can be understood by all the members involved in the process.

Continuous Integration

Continuous Integration is a software development practice wherein the code is stored in the central repository, in a way that it is accessible; once the system is received, automated builds and tests are run on it. Continuous integration is a practice specially devised to build or integrate the stages of development. The idea is to identify bugs and remove them during the development process, thus reducing turnaround time and improving the quality of the software being released as a result. This practice enhances the developer’s productivity and helps release versions quickly and easily. DevOps companies with continuous integration practices tend to automate the software development & delivery processes, thus enabling coordinated teams and reducing lead time between bug fixes, and increased mean time for recovery.

Customer Tests

While designing a system, a good team does not assume that they are getting everything right. The team has to prove that what it is doing works and what they are designing is the system needed by the customer. Customer tests allow a customer and programmers to know whether the system is working as they expect it. This practice also makes it possible for the customer to inform the programmer what should be done to meet all the customer requirements.

Refactoring

In extreme programming, simplified design is a fundamental rule to be followed. However, when putting all the designs into play, the design must be refactored.

Energized Work

As it were, you may be aware of specific Extreme Programming practices including test-first incremental design and continuous integration among others. Well, for you to gain the most from each particular practice, you must be fully aware of the values and rules governing the practices. It can sometimes be so painful and time wasting, trying to generate tests just because you want them to meet a particular job requirement. It is, therefore, useful to bear in mind that by so doing, you will be offering details not only to yourself and other developers as well. Instead, it would be better if you did and enjoyed TDD.

Incremental design

Due to changing customer requirements, an experimental approach is needed to suit the ever-changing design and development of the software. As the design is continually evolving, this is crucial towards finetuning it, as it cannot be preconceived before the project begins allowing for a more experimental approach, proving why incremental design is necessary. Incremental design tends to work better because the up-front design doesn’t take into account the flaws that can only be discovered later.

Metaphor

Extreme Programming (XP) was designed to produce vast amounts code and deliver software quickly and timely with less cost. To facilitate that process various practices have to be implemented, one of which is the practice of System Metaphor. Unfortunately, it is one of the least understood and is rarely put into practice as a result.

Pair Programming

Pair Programming - also known as Peer Programming - is an extreme programming technique in which programmers work in a pair at one workstation. The idea is similar to a pilot of a rally car - one is the driver, and his team mate gives instructions where what’s ahead.

Planning Game

Extreme programming software development methodology is becoming one of the top software development approaches that ensure customer satisfaction, better design and smooth project development in the software engineering companies. One of the unique features of this method is its planning process which is technically referred to as XP planning game.

Quarterly Cycle

Amongst the twelve primary practices of XP comes Quarterly Cycle. Quarterly Cycle along with the other methods helps in assuring a real flow for Extreme Programming. The primary purpose of Quarterly Cycle is to keep an overall track of the project. This in-depth means a Quarterly cycle is like an index to all the weekly periods happening in the project. A quarterly cycle will also help in eliminating minute details and will enable us to focus on the critical areas of the project.

Simple Design

Of the four basic practices of Extreme Programming (XP) it is the design phase that can be the most problematic. For this reason, in implementing Extreme Programming practices, the practice of Simple Design needs to be taken note of.

Sit Together

The Sit Together is an extreme programming practice in which all programmers on teamwork simultaneously within one workspace. The room may have separate workstations where the team members can work individually or in smaller groups of twos (Peer Programming). It is advised that there be a board or projector screen where general plans or instructions from the team leader may be written.

Slack

Slack is a type of Agile practice in Extreme programming (XP). Slack is essential in planning for a successful sprint that yields consistent and high-quality results.

Small Releases

Small releases generally are releasing miniature versions of your product to the public over short time intervals. Afterward, analyze the information received from your customers’ reactions.

Practicing of Stories

The term story seems to be unfamiliar with the programming, but actually, it is entirely related with the Extreme Programming Practice. This is a part of the Agile Methodology’s Extreme Programming Practicing factor, in which the product development is done on the bases of the story statement of the user for whom the product is to be designed. The story is a three-sentence text document provided by the user-written on his user card and termed as “User Story.” This is not the document that contains the detailed requirement information of the user, but it is a document that is created and submitted by the user before submitting his detailed requirement document. The extreme programming practice is done on the bases of this user story.

Sustainable Pace

The sustainable pace practice was coined by Kent Beck to replace the “40 hour week” approach of measuring employee output. The current capacity of producing quality work within a time constraint -of a week, for example- is hard to standardize in Extreme Programming because it is a factor of talent. More work hours does not necessarily translate to better productivity.

Weekly-Cycle

Weekly-Cycle is one of the primary practices of Extreme Programming. It describes the process of setting up a weekly team and customer meeting. During the meeting, you’ll review your previous work and establish the software development process and goals for the upcoming week.

Whole Team

Achieve a desirable final product in a professional software development process is an emphasis that has to be put on the importance of working together. In a whole-team approach, all individuals possessing the necessary skills required in working towards achieving a common target need to put in a synchronized effort to ensure the project is a success.


How to deal with compromises when implementing Scrum?

How to deal with compromises when implementing Scrum?

Using scrum can actually be the best decision which you could make for the organization as it has many advantages for everyone. It is a practical framework which guides you about all the things you...

by Pete R.
Ensure quality in your user stories - the INVEST-Principle

Ensure quality in your user stories - the INVEST-Principle

The INVEST principle allows teams to work effectively on a good user story. To understand INVEST better, one has first to understand what the mnemonic stands for.

by Pete R.
Estimation in the agile world done right! How to play Planning Poker®?

Estimation in the agile world done right! How to play Planning Poker®?

Planning Poker® is one of the tools used in Agile. The reason why it is useful is that it helps the team, decide how many of the points are allocated to a specific story or task. It helps mitigate...

by Pete R.
5 Tips for Dealing with Uncooperative Team Members in Scrum

5 Tips for Dealing with Uncooperative Team Members in Scrum

It is normal to come across people at the workplace that can make your job more complicated than it actually has to be. These kinds of people are disrespectful, harmful or merely unwilling to behave...

by Pete R.
Does Scrum Alone Stand for Agile?

Does Scrum Alone Stand for Agile?

Is Scrum the only technique in Agile? Many people consider Scrum a single method of Agile. Long gone are days when Scrum and Agile were used interchangeably. Nowadays, many people know about the...

by Pete R.
Changes That Occurs When Moving from Waterfall to Scrum

Changes That Occurs When Moving from Waterfall to Scrum

Are you thinking about the changes that occur when a company shifts of Scrum? In today's advanced world, the previous approaches for software development are unviable. Though waterfall practice is...

by Pete R.
Hey Scrum! Where has the test phase gone?

Hey Scrum! Where has the test phase gone?

If one is looking for a methodology to manage programmers, then scrum is their best bet. If one wants to tests cases, they need to give Scrum a try.

by Pete R.
Best Ways to Track Time in Scrum

Best Ways to Track Time in Scrum

Without a doubt, time tracking is one of the many things that a software developer doesn't enjoy. It is perceived that keeping track of time is wasteful and restricting. This is because the time...

by Pete R.
What is the Nokia Scrum Test?

What is the Nokia Scrum Test?

Over a decade ago a man named Bas Vodde introduced a simple test that was able to assess the level of agile adoption and Scrum at the Nokia-Siemens Finland. The test was conducted on almost ten agile...

by Pete R.
Top Signs That Your Organization Is Not Ready for Agile

Top Signs That Your Organization Is Not Ready for Agile

Are you thinking of implementing Agile in your company? Do you think your company is ready for Agile? In the software development industry, everyone is talking about the benefits of Agile...

by Pete R.
Scrum Estimations vs. Request for Accuracy

Scrum Estimations vs. Request for Accuracy

Estimation is something significant when it comes to getting the tasks completed. However, there are cases where an estimate turns out to be wrong during the process. When you start working on a...

by Pete R.
Scrum - your burn down-chart looks strange? These techniques will help you to improve

Scrum - your burn down-chart looks strange? These techniques will help you to improve

Scrum burndown charts might not always seem like the ideal charts that one would want and sometimes, the charts might appear more terrifying than one might have thought. Some people might try to...

by Pete R.