Extreme Programming (Extreme Programming, Abbreviation XP) is proposed by Kent Beck in 1996. Kent Beck in the early 1990s
When you have worked with Ward Cunningham, you have always explored new software development methods. I hope that software development is simpler.
effect. Kent carefully observes and analyzes the prerequisites, possibilities and difficulties of simplified software development. March 1996,
Kent finally introduced new software development concepts in a project made for Daimlerchrysler.
XP is a lightweight, smart software development method; it is also a very strict and careful way. Its foundation and values
It is communication, simple, feedback and courage; that is, any software project can be improved from four aspects: strengthen communication;
Single; seek feedback; courage to seek truth from facts. XP is an near-spiral development method that decomposes complex development process into one by one.
Relatively simple small cycle; developers and customers can be very clear through active communication, feedback, and other series of methods, developers and customers can be very clear
Develop progress, changes, problems and potential difficulties to be solved, etc., and adjust the development process in time according to the actual situation.
What is software development
Software development is: demand, design, programming, and test!
Demand: Not only is user needs, it should be all the needs encountered in the development. For example, you first have to know that this project is for understanding
What is the problem? What should I enter in the test case ... In order to clearly know these needs, you often want to be with our customers, project managers.
Wait for communication.
Design: Before the encoding, there must be a plan to tell you what to do, how the structure is equal. You must do it according to this, otherwise it may
A mess.
Programming: If you are on the project's deadline, your program can't run or don't reach the customer's request, you can't get money.
Test: The purpose is to let you know, when it is completed. If you are smart, you should write test first, so you can know you in time.
Whether it is really done. Otherwise, you often don't know, what functions have been true to do, how far is it left from expected.
In software development, customers and developers have their own basic rights and obligations.
client:
• Define business priorities for each user's needs;
• Develop an overall plan, including how much investment, how long it takes, what is the purpose of achieving
• Each working week during the project development will make your investment to get the biggest benefit;
• Accurately master the project progress by repeatedly running the function test you specify;
• You can change your needs, functionality, or priority at any time while avoiding expensive reinvestment; can adjust the project plan in a variety of changes;
• Can be canceled at any time; when the project is canceled, the previous development work is not a bunch of garbage, and the function has been developed.
Work on or unfinished should be not difficult to take over.
Developer:
• I know what to do, and what to do;
• Work efficient;
• When there is a problem or difficult, you can get the answer or help from customers, colleagues, superiors;
• Evaluate work and re-evaluate according to changes in the surrounding situation;
• Actively bear your work, not negative acceptance assignments;
• Working system for 40 hours a week, do not work overtime.
This is software development, in addition to this, there are other problems that should be concerned!
Smart lightweight software development method
A software development method is a series of regulations, norms, and practices related to development. The development method of heavyweight is strictly defined by many regulations.
The processes and related documents are working. Smart lightweight development methods, the rules and documents are relatively small, the process is more flexible, and it is relatively easy to implement.
Programmers develop software in the way they like in software engineering concepts. The quality of the program is difficult to control, the debugger is very
It is also difficult to read the code written by the other party between programmers. In 1968, Edsger Dijkstra wrote a topic for cacm.
STATEMENT CONSIDERED HARMFUL's letter, the concept of software engineering is born. The programmers began to abandon the previous practice.
Use more systematic and stricter development methods. In order to develop and control other products as strict, people have been developed
Many rules and practices have invented a lot of software engineering methods, and software quality has been greatly improved. With more problems encountered,
Rules and processes are getting finer and complex.
Today, in the actual development process, many rules have been difficult to follow, many processes are complicated and difficult to understand, many projects
The production process is losing control. People try to make more comprehensive and better package, or hopes more complex, more powerful
Case Tools, but always can't succeed, and development specifications and processes become more complex and difficult to implement.
In order to catch progress, programmers often skip some specified processes, and few people can comply with those heavyweight development methods.
The reason for failure is very simple, and there is no universal medicine in this world. Therefore, some people put forward, carry out rules and processes in heavyweight development methods
Delete, reorganize, and optimize, which has produced a lot of lightweight processes that adapt to different needs. In these processes, the actual needs
The rule is retained, and unnecessary complicated regulations are abandoned. Moreover, compared with traditional development methods, lightweight processes are no longer like flow
Water production line, but more flexible.
Extreme Programming (XP) is such a smart lightweight software development method.
Why is it called "extreme" (limit)
"Extreme" means that contrast the traditional project development method, XP emphasizes the limit of each method and idea it listed.
It is best to do it; other XPs are not advocated, then ignore (such as the overall design of the previous period). A project that strictly implements XP,
The development process should be smooth, efficient and fast, can do a 40-hour work system for a week without delay project progress.
What is XP software development?
1 limit work environment
In order to maximize the basic rights and obligations of customers and developers in software development, XP requires the working environment
Do the best. Everyone who participates in project development will be a role (project manager, project supervisor, etc.) and fulfill the rights
And obligations. All people work in the same open development environment, it is best to work in the same big house, and refreshments
Supply; 40 hours a week, do not advocate overtime; every morning, everyone stands with a short meeting; there are some big whiteboard on the wall, all
The Story Card, the CRC card, etc., you can write paintings above when discussing problems; you can play computer travel together after get off work.
play…….
2 extreme demand
Customers should be one member of the project development team, rather than separated by developers; because of the project's plan to final acceptance, customers
It is very important to play straight. Developers with customers, turn various demands into a small demand module (User Story), example
Such as "The total number of calculation grades is to put the number of all classes of this grade." These modules will be combined together according to the actual situation or decomposed into smaller modules; they are recorded in some small cards (Story On the Card, the programmers were respectively
Small cycle development (Iteration, usually no more than 3 weeks); customers specify them according to the business value of each module
The priority; developers must do is to determine the development risk of each demand module, high risk (usually because of lack of similar experience)
The demand module will be prioritized, explore and develop; after developers and customers evaluate each module from different angles, they are
Arranged in different development cycles, customers will get as accurate development plans as possible; customers specify an acceptance test for each demand module
(function test).
Every time you release a developed software (after a development cycle), users can get a system that can start using, this system is comprehensive
Really realized all the needs of the plan. In some traditional development modes, no matter what function, users have to wait until all developments
Be will start using it.
3 extreme design
From a specific development perspective, the process of the inner layer of the XP is a Test Driven Development week based on test drive.
The processes such as plans and design are all deployed. There are many corresponding unit tests for each development cycle.
Unit test. Just start, because everything is not implemented, all unit tests have failed; with a small need
The completion of the module, and more and more unit tests are passed. In this way, customers and developers are easy to test, whether to perform
The commitment to the customer. XP promotes Simple Design, which use the easiest way to make each simple
The program written out can be tested through all related units. XP emphasizes to abandon the detailed design of the package (BIG
Design Up Front, because there are many contents in this design that you are now or recently. XP also strongly advocates design
Review, code review, reforming and optimization, all these processes are actually optimized
Cheng; constantly run unit testing and functional testing during these processes, ensuring that the reforming and optimization system still meets all the needs
begging.
4 limit programming
Since programming is very important, XP advocates two people to write the same program (pair programming, and the code ownership is attributed to the whole
Collective Code Ownership. The programmer must strictly abide by writing the program and reorganization optimization.
Programming specification. Anyone can modify the procedures written by other people, and then determine the new program through unit test.
5 limit test
Since the test is very important, XP advocates writing unit test before starting writing the program. Developers should always integrate development of well-developed modules to
To run together, you must run unit test after each integration; do any code review and modification
Row unit testing; found BUG, add the corresponding test (so the XP method does not require a bug database). In addition to unit testing,
There are also integrated testing, functional testing, load testing and system testing. All of these tests are one of the most important documents in the XP development process, and is also one of the contents of the ultimate delivery to the user.