Simple Single talk about extreme programming (extremeprogramming, XP programming for short)

Source: Internet
Author: User

 

Basic Concepts

 

Extremeprogramming (XP) was proposed by kentbeck in 1996. Kent carefully observed and analyzed various prerequisites, feasibility, and difficulties for simplifying software development, and introduced this new concept of software development.

 

Extreme Programming is born from a need to strengthen the communication between developers and users, allowing customers to fully participate in software development and design, and ensure that the changing needs are corrected in a timely manner. To make it easy for customers to communicate with developers, they must use the language that the customer understands. First, testing and coding is to first display the external outlines of the customer's software and the features used by the customer, it makes the customer feel like the future software. Testing first and then coding are clearly different from the waterfall model. At the same time, extreme programming focuses on user feedback and allows the customer to join the development is consistent, so that the customer to participate is to feedback at any time whether the software meets the customer's requirements. With feedback, the development sub-process becomes shorter, and iterations naturally occur. rapid iterations and minor version releases make the development process more self-feedback processes, some examples are more detailed and rapid model methods. Of course, eXtreme Programming also adds a lot of "actions" that motivate developers, such as teaming programming and 40 hours of work.

 

Extreme Programming is a lightweight and smart software development method. It is also a very rigorous and thorough method. Its foundation and values are communication, simplicity, feedback, and courage. That is, any software project can be improved from four aspects: strengthen communication, start from simplicity, and seek feedback; be brave in seeking truth from facts. XP is a near-spiral development method, which breaks down complicated development processes into relatively simple small cycles. Through positive communication, feedback, and a series of other methods, developers and customers can clearly understand the development progress, changes, issues to be resolved, and potential difficulties, and adjust the development process in a timely manner according to the actual situation.

 

Four core values

 

1. Communication is the most important thing in the software design and development of the team. Communication is important for creating team awareness and efficient cooperation awareness. Communication does not give you all the software development you need.

2. Simple (simplicity) XP suggests that you always do the simplest thing around the process and writing code as long as it can work. Kentbeck points out that instead of implementing a complex system, it is better to design a simple system that can meet the current needs, because the situation you consider may never happen.

3. Feedback makes us satisfied with improvements, but we don't expect them to be perfect immediately. We use feedback to get closer to our goal step by step. There are multiple forms of feedback.

Your opinion on an idea; what the code will look like when you implement the idea; test whether it is easy to write; test whether it can run; once the idea is deployed, how it works.

4. Courage is only dangerous, and courage that echoes other values is powerful. The courage to express the pleasant or unpleasant truth will help the establishment of communication and trust; giving up failed solutions and the courage to seek new solutions will help encourage the pursuit of the "simple" value. The courage to seek true and specific answers will help increase feedback.

 

Software Development Process

 

1. Requirements

The customer should be a member of the Project Development Team, rather than separated from the developer, because the customer plays an important role from the Project Plan to the final acceptance. Developers and customers turn various requirements into small demand modules (userstory ). Each time the software is released (after a development cycle), you can get a ready-to-use system that fully meets all the requirements in the corresponding plan. In some traditional development modes, No matter what function, the user must wait until all development is completed.

2. Design

Each development cycle has many unittest instances ). At the beginning, all unit tests failed because nothing was implemented. As small demand modules were completed, more and more unit tests were passed. In this way, both the customer and the developer can easily check whether the customer has fulfilled its commitment to the customer.

3. Programming

XP advocates that two people write the same program (pairprogramming, Pair Programming) together, and the ownership of the Code is attributed to the entire development team (collectivecodeownership ). Programmers must strictly abide by programming specifications when writing and reorganizing optimization programs. Anyone can modify the program written by others. After modification, make sure that the new program can pass the unit test.

4. Test

XP recommends that you write unit tests before you start writing programs. Developers should integrate developed modules frequently (continuousintegration) and run unit tests each time after integration. unit tests should be run for any code review and modification; if a bug is found, you need to add the corresponding test (so the XP method does not need a bug database ). In addition to unit testing, integration testing, function testing, load testing, and system testing are available. All these tests are one of the most important documents in the XP development process and one of the content that is finally delivered to users.

 

Understanding eXtreme Programming

 

Extreme Programming is a development management mode, which emphasizes the following:

 

1. Role Positioning

Extreme Programming clearly joins customers in the development team and participates in daily development and communication meetings. If the customer is the end user of the software, the customer's opinion shall prevail. It not only allows the customer to participate in design discussions, but also enables the customer to write the user story, that is, the functional requirements, including the functions to be implemented by the software and the business operation process to complete the functions. The responsibility of the user in the software development process is mentioned as important as that of the developer.

 

2. Agile Development

Agile Development pursues cooperation and responds to changes. Iteration is to shorten the release cycle of a version, shorten the cycle to weeks and days, and complete a small functional module, which can be quickly tested and presented to the customer in a timely manner for timely feedback. The minor version accelerates the frequency and features of customer feedback and greatly simplifies the design and document blocking processes. The reason why the limit programming Chinese block is no longer important is that each version has simple functions and does not require a complicated design process. Extreme Programming is simply designed to meet customer requirements. There is no need to worry too much about expansion because customers can add new requirements at any time.

 

3. Value Pursuit

Extreme Programming changes software development into a challenge of self-and management. It pursues communication, simplicity, feedback, and courage, reflects the value of the development team, and inspires the emotions of participants, to maximize the enthusiasm of developers, high mood, serious investment, the development of software quality is greatly improved. Pair programming is a way to stimulate players' talents.

 

Extreme Programming redefines the software development process as an iterative loop process of listening, testing, coding, and design, and establishes the idea of Software Development Management for testing-> coding-> reconstruction (design.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.