Extreme Programming in software engineering javatpoint

From the course: Agile Software Development

Video is locked.

Unlock the full course today

Join today to access over 20,400 courses taught by industry experts or purchase this course individually.

Extreme programming (XP)

- Extreme Programming, or XP, is a collection of software engineering practices. It was introduced by Kent Beck in 1996 when he was leading the development of a payroll system at Chrysler. XP is a lightweight, innovative customer and developer focused methodology. XP has values, rules, principles, and practices. Extreme Programming uses weekly iterations. Each iteration, or cycle, starts with the customer providing a list of requirements that they would like delivered by the end of that week. The developers break the requirements, or stories, into tasks, and then estimate and assign the tasks to themselves. The XP team produces an implementation of user stories on a weekly basis. XP teams also have a quarterly cycle, which is the container for the weekly cycles. The quarterly cycle enables the team to do high level planning and align their work with the longterm goals of the enterprise. Like Sprint Retrospectives in SCRUM, the quarterly cycle is an opportunity for the XP team to…

Contents

Extreme Programming in software engineering javatpoint

Many software developers working with Extreme Programming constantly discover its evident advantages and possible disadvantages. Is there an ideal software development methodology? Some people think that Extreme Programming (XP) is one of the best development methods.

However, nothing is perfect in this world. If you want to know about the pros and cons of Extreme programming, this article is right for you.

There are many useful software development methodologies and the Agile group is one of the most popular.

I would suggest that among all Agile methodologies Scrum and Kanban are used more often. However many developers all over the world protect the benefits of Extreme Programming and prefer it.

Before highlighting the advantages and disadvantages of XP methodology it is necessary to find out the proper definition of it and describe its main principles. So here we go!

Extreme Programming is one of Agile methodologies. It shares all Agile principles including strong customer involvement in the software development process, good communication inside of the teams, and iterative cycles of development.

What are the roots of Extreme Programming?

XP was developed by Kent Beck. He is the author of the book based on this concept.

Beck insisted that in order to write code, you have to write a test for it first. He also defined the idea that code should be written by pairs of programmers. According to him, the main programmer describes the code to the other programmer and stimulates further ideas.

Usually, XP is used for teams between 2 and 12, although there were projects of 30 that reported success as well.

Extreme Programming in software engineering javatpoint

What are Extreme Programming values?

XP initially recognized 5 values. By the way, the fifth value was added in the second edition.  Here they are:

Communication

Some people compare software development with team sports activities where participants rely on each other and transfer knowledge from one to another. Extreme Programming highlights the importance of such communication using whiteboards and face to face discussion.

Simplicity

Simplicity is connected with the simplest thing that will work.

It’s crucial to do only the necessary things. Simplicity also means requirements you know without trying to guess.

Feedback

Feedback helps teams to identify areas for improvement and optimization their practices.

Courage

It can be interpreted as the preference for actions that aren’t harmful to the team. Courage will help to reduce to optimize all organizational issues.  

Respect

All members should respect each other and provide feedback that honors your relationship.

There 5 roles in Extreme Programming:

  • Tracker
  • Customer
  • Programmer.
  • Tester
  • Coach

In Extreme Programming, the degree of customer involvement in the process of software development is extremely high. It is even higher than in other Agile methodologies. The customer participates in all team meetings including the most important ones – the planning games. He is not just a stakeholder, but a team member. The client is the only person who writes user stories and estimates the final product. Such degree of customer involvement is required because XP projects develop in strict periods.

Strong communication inside of Extreme Programming teams is also caused by short terms of XP projects. The team members usually work in the same office to have an ability to discuss any issue of the project. Such discussions save lots of time.

Extreme Programming has the shortest iterative cycles among other Agile methodologies. Usually, they last only one week. That is why XP developers have invented lots of new practices like pair programming and planning game to raise the productivity of their work.

Now, as we know what XP is, let’s return to describe its advantages and disadvantages.

Advantages of Extreme Programming

  • The main advantage of Extreme Programming is that this methodology allows software development companies to save costs and time required for project realization. Time savings are available because of the fact that XP focuses on the timely delivery of final products. Extreme Programming teams save lots of money because they don’t use too much documentation. They usually solve problems through discussions inside of the team.
  • Simplicity is one more advantage of Extreme Programming projects. The developers who prefer to use this methodology create extremely simple code that can be improved at any moment.
  • The whole process in XP is visible and accountable. Developers commit what they will accomplish and show progress.
  • Constant feedback is also the strong side.It is necessary to listen and make any changes needed in time.
  • XP assists to create software faster thanks to the regular testing at the development stage.
  • Extreme Programming contributes increasing employee satisfaction and retention.

However, as I’ve mentioned at the beginning of this article, there is no ideal method. That’s why it’s a high time to list some XP drawbacks.

Extreme Programming disadvantages

  • Some specialists say that Extreme Programming is focused on the code rather than on design. That may be a problem because good design is extremely important for software applications. It helps sell them in the software market. Additionally, in XP projects the defect documentation is not always good. Lack of defect documentation may lead to the occurrence of similar bugs in the future.
  • One more disadvantage of XP is that this methodology does not measure code quality assurance. It may cause defects in the initial code.
  • XP is not the best option if programmers are separated geographically.

Have we forgotten anything? What do you think? If you are able to add some pros or cons of Extreme Programming, feel free to add them in comments.

Extreme Programming in software engineering javatpoint

What is extreme programming in software engineering?

Definition. Extreme Programming (XP) is an agile software development framework that aims to produce higher quality software, and higher quality of life for the development team. XP is the most specific of the agile frameworks regarding appropriate engineering practices for software development.

What is extreme programming give an example?

Many extreme-programming practices have been around for some time; the methodology takes "best practices" to extreme levels. For example, the "practice of test-first development, planning and writing tests before each micro-increment" was used as early as NASA's Project Mercury, in the early 1960s.

What are the 3 practices of Extreme Programming?

eXtreme Programming (XP) – Key Practices You Need to Explore for Your Team.
Key Practice #1 – Pair Programming. ... .
Key Practice #2 – Planning Game. ... .
Key Practice #3 – Continuous Process. ... .
Key Practice #4 – Coding Standards. ... .
Key Practice #5 – Sustainable Pace. ... .
Key Practice #6 – Test Driven Development (TDD).

Why is it called extreme programming?

Why is it called “Extreme?” Extreme Programming takes the effective principles and practices to extreme levels. Code reviews are effective as the code is reviewed all the time. Testing is effective as there is continuous regression and testing.