Extreme programming examples in the Middle East

Newxel Blog
Geek Culture
Published in
5 min readJul 27, 2021

--

A gentle introduction to Extreme Programming

Extreme Programming (in short, XP) is an agile software development framework that was designed to improve the quality of software and satisfy the customer’s needs. It makes the life of a developer less of a hassle (no matter how constantly changes have to be made).

With extreme programming, the focus is on dynamically changing software development needs and using a well-versed development team that can apply the best technology that enables functional tests and automated units. This philosophy also believes in strong customer participation to make it possible to develop a solid software system in the shortest time.

How it started

Extreme programming was first introduced to the world by Kent Beck, author of Extreme Programming Explained, when he was working on a Chrysler Comprehensive Compensation program. He wanted to help development teams working in a field of ever-changing demands find better methods of writing software code.

His main idea for developers was that they develop something simple that can be easily fitted into a design framework, and while doing this, the engineer’s managers and the client must all be involved.

He stressed out 5 values that can help improve the quality of software. These are:

Communication

All developers must continually communicate with their client and other members of the team. Communication may include progress, challenges, and clarity of the customer’s needs.

Simplicity

The aim is to focus on the minimalist solution. Begin with the simplest solution you can work on, and if need be, you can add extra features later on. The approach here is to create software that satisfies what you need today and not tomorrow. Future issues can be dealt with when the right time comes.

Feedback

With Extreme Programming, feedback is very crucial for the success of the software project. First, get feedback from the software system by writing some unit tests. Next, get feedback from the client and from your team on how the system is performing. And where there are changes to be made, implement them as soon as possible

Respect

Here we talk of self-respect and respect to both customer and your fellow team members. Self-respect is seen when one aims to provide the highest quality software without so much supervision. Your customer and teammates should never feel disrespected or unappreciated for their hard efforts in helping the project to succeed.

Courage

How can you be a developer without courage? All software-related challenges need to be taken with a firm grip and be a bold proactive developer. A software developer with the right amount of courage finds it even easy to refactoring code when the need arises.

How does Extreme Programming work?

Under normal circumstances, Extreme Programming consists of five stages which are planning, managing, designing, coding and testing.

Let’s take a closer look at these 5 stages.

1. Planning

This is the first phase of Extreme Programming where the software engineering team meets up with the customer to create user stories. The latter are then turned into iterations. The project will be divided into iterations, and iteration planning initiates each iteration.

2. Managing

Managing is indeed essential. Here are a few guidelines to observe:

  • Give the team a dedicated open workspace.
  • Set a sustainable pace.
  • A stand-up meeting starts each day.
  • The Project Velocity is measured.
  • Move people around.
  • Fix XP when it breaks.

3. Designing

Good-quality software needs a clean and simple design.

  • Use Class Responsibility Collaboration cards for design sessions.
  • Choose a system metaphor.
  • Create spike solutions in order to reduce risk.
  • Avoid adding functionalities earlier.
  • Refactor whenever and wherever possible.

4. Coding

Under coding, these are the guidelines to be observed:

  • The client must be always available
  • Code should be written to agreed standards.
  • Unit test to be coded first.
  • Only one pair integrates code at a time.
  • Integrate as often as possible.
  • All production code is pair programmed.
  • Set up a dedicated integration computer.
  • Use collective ownership.

5. Testing

Proper testing needs to be done:

  • All code should have unit tests.
  • Every code must pass all unit tests before release.
  • Whenever a bug is found, tests are created.
  • Acceptance tests are constantly run to determine the score.

According to the XP Kent Beck philosophy, these stages bring out every principle of Extreme Programming and a dedicated team of software developers are able to achieve this.

Extreme Programming in Practice

Code Refactoring

Code refactoring involves restructuring computer code without changing the code that was written before. It also involves cleaning up and editing the code to remove all redundancy and unnecessary functions. Refactoring keeps your code clean and simple and increases code coherency so it is easily understood by other programmers.

Test-Driven Development (TDD)

For good feedback, Extreme Programming teams practice test-driven development techniques before the code itself is written. According to this practice, all code must pass the test before it gets released. Because of this, software developers will focus on writing code that is able to attain the specified function. This is how Test-Driven Development allows developers to use immediate feedback to produce software that is reliable.

On-site Customer

In Extreme Programming, the client should be always available to participate in the development and answer any questions that the dev team might have, and resolve disputes quickly and amicably in order to obtain the required results.

Pair Programming

It takes 2 to code! Basically, this concept entails that two programmers need to work together on the same code. As one software engineer focuses on writing the code, the other one will review it, find ways of improving, and fix any mistakes he might have detected. Not only does this produce high-quality software, but it also promotes teamwork and better communication which is one of the founding philosophies of XP.

The Planning Game

This refers to a meeting that takes place at the onset of an iteration cycle. The customer and the development team meet up to talk about the required end product and approve it’s features. At the end of the planning game, software engineers plan for the pending iteration and release and how it is going to be executed.

Several Middle East companies such as Uniweb IT solutions and Global Innovations — Travel Technology Company are now working on XP practices to improve the quality of software in an ever-changing environment. If your business needs the best XP techniques, get in touch with us. Newxel is a reliable outstaffing partner that can connect you to the best software engineers in Ukraine that can apply extreme programming example(s) to your specification. We can match you up with the right software development engineers to help you build and maintain a dedicated development team.

Get in touch with us today.

--

--

Newxel Blog
Geek Culture

Here we talk about tech news, management, leadership, IT recruitment, startups and development trends, and much more…