12 practical methods and my XP experiences

Source: Internet
Author: User

XP, as a fairly young software development methodology, should be widely used at present. As a software R & D engineer, I highly agree with the XP philosophy, which is full of considerations for project success.
Key ideas, and these ideas are not only technical, but a large part of them are management and communication. XP integrates many best practices that make the entire project more interesting.
It also includes the positive attitude and sense of responsibility unique to XP developers. Here I want to describe my personal experience in XP practice ......

Next I will write my feelings about 12 of the best practices in XP:

  1. On-site customer
    Customer ). The customer's requirements are not static, and they are always abstract in the requirement collection stage. Even the customer does not know what they want. They just provide a profile and want us
    Both parties work together to build ideal products. However, it is impossible for us, including our customers, to predict that our current demand is truly a constant demand. There are always tens of millions of reasons that will lead to changes in demand.
    It means that changes in demand are inevitable, and they are not simply controlled by humans. Now the question is, can we meet or adapt to changes in demand? Now XP has put forward several best practices to welcome
    One of them is on-site
    Customer, with the continuous participation of customers in the entire project, we can ensure that everything we do is what the customer really wants, and we will not waste time and effort on unnecessary functions. This is on time
    A key practice of delivery and delivery. Note that this best practice requires customers not to participate in the Project 8 hours a day, but to provide timely comments to customers when they need to answer certain questions.
    Feedback!
  2. Small release (small
    Releases ). As mentioned above, if the customer needs to give feedback in a timely manner, a good way to get feedback in a timely manner is to provide a preview version of the customer's software. After all, it is difficult for no physical customer to propose to me
    Their views on the projects they are working on. XP requires a small release version. This is exactly what it is intended to achieve a lot of small versions through rapid small iterative development, and then give these small versions to the user experience, collect feedback, and then based on the user's
    Feedback continues the iterative development of the next minor version. This is a virtuous circle, ensuring that the project is not on the road, that the customer is not biased towards what we are doing, and that the quality of the project is also guaranteed, because they are directly involved in the test
    We also have our customers.
  3. Simple Design
    Design ). The above is from the perspective of demand. Now let's take a look at the development process. We all know that design is good, and things are always simpler and better, so why not choose simple
    ? Through simple design, we can quickly understand and develop. However, simple design is often not very useful. We will soon find that the previous design is no longer flexible and will soon be unable to meet our needs.
    . Here is the time to reflect the essence of XP, XP has the limit word, that is to say, no matter what you do, to achieve the limit. Simple design is no exception, but also requires constant iteration.
    The reconstruction of another simple design to continuously change the design and design quality will allow you to make the same high-quality design as the super design master without knowing it. (Of course, if you are really bad
    I cannot help you with XP)
  4. Planning Policy (Planning
    Game ). Since simple design helps rapid development, continuous planning will certainly help all aspects of the project. It is hard to say that the architecture built by the architect will not change in the future.
    There may be major changes, so the architecture and overall project planning are not static. This is the core of XP. XP tells you how to meet changes and how to make the best products in today's rapid changes to truly satisfy customers
    .
  5. System metaphor ). To be honest, I have just started to really understand XP, so I am not familiar with this practice, so I will not talk about it here, so as not to corrupt the XP reputation! Pai_^
  6. Refactoring ). I think few people have heard of refactoring in this age? Many aspects mentioned above are based on this idea. Since the design is good,
    So can we quickly implement iterative design with small steps? Can we continuously improve the existing code to make them more robust? Most of the current projects become stiff after maintenance for a period of time, and the code is getting better and better.
    Difficult to maintain, sometimes I have to write some code that I think is ugly to maintain the new or modified functions, and such an action causes difficulties in the next maintenance, code is in a vicious circle, so that the project
    The maintenance cost is getting higher and higher, and finally have to give up maintenance and re-develop. XP puts forward an iterative reconstruction scheme, which enables us to refactor each time and then modify the code on the basis of the restructured code. This makes every
    At the same time, you don't need to spend too much effort to maintain the code, but at the same time, it improves the simplicity and robustness of the Code.
  7. Pair Programming (pair? Programming ). Since the design and code reviews are good, why not review them at any time? After review, we can use
    Many people think about problems in their heads and find solutions. Undoubtedly, this is much better than simply using one head. After all, people have a lot of power. Some educators have done experiments, it proves that students have learned
    More profound, more thorough understanding, and more active thinking. Why not software development? I am not totally in favor of "pairing", but I am in favor of asking questions, no matter what kind of questions, no matter what kind of same
    As long as you have doubts, you can ask everyone to look at their ideas. This will eventually lead you to the best solution for the moment.
  8. Collective Ownership
    Ownership ). This concept of collective ownership has actually been mentioned in the previous practice. If you have any questions, you can ask if others are involved in the answer to the possibility they think.
    When someone else has a problem, do you also need to take the initiative to come up with your own opinions? This mode of putting multiple brains together is the concept of collective ownership in xp. Here there is no personal honor, only a group
    Common goals with the group. Note that XP is a feature. XP is people-oriented, and XP firmly believes that the role of people is more important than simply relying on technology. After all
    To achieve the final success. As an XP developer, it also means your personal experience and style.
  9. Code Specification
    Standards ). Code in XP is considered a very important tool for communication between developers. After all, the software reflects the developer's mind. The developer's mind is changed to a line of code written in
    Preface, this is an art. However, there must also be appreciation of art. If everyone cannot understand the art of others, how can they communicate? Collective ownership allows each of us to improve others' code.
    If there is no unified coding specification, it will not be easy.
  10. 40 hours a week (40-Hour Week ). XP does not advocate working overtime, which can only be a precursor to problems in some links. In each fast iteration, XP clearly defines what to do for the next iteration. XP has high controllability.
  11. Test ). Testing is the core part of XP and an important part of XP. It is precisely for this reason that I put the two tests at the end, not because they
    Not important. On the contrary, they are too important! The fundamental purpose of testing is to ensure the quality and tell us that nothing is done in white. It is indeed feasible. Automated Testing in XP (usually simple and effective unit testing)
    It has multiple purposes. One of the most important purposes is to give our developers confidence. Just imagine that when we run the automated test after every system change, we can see that a line of street lights are shining so smoothly.
    Things! XP advocates testing first and then coding. Each test case can reflect the most specific requirement, and testing is also part of the design. The secret here is that it can be realized only when it is actually used.
  12. Continuous Integration
    Integration ). This is another test method to ensure quality. Through repeated and rapid integration, we can detect risks in the software as early as possible, and continuous integration can also be provided to multiple small versions.
    (Small
    Releases) for customer feedback. This concept is similar to Microsoft's daily compilation, but XP does not stipulate that it must be executed once a day. Instead, XP advocates integrating
    In short, when there are major changes, the feedback is provided in a timely manner, which can fully reflect the limit in XP eXtreme Programming!

Well, the above is my personal conclusion after I have fully understood XP and can be used as a reference, I personally appreciate XP's innovative concept and its practical application in projects. Although
Kent
Beck does not advocate tailoring the best practices in XP (he advocates that XP be used to reach its limits just like its concept, and everything is used to the fullest extent ), however, I personally agree that each organization
Consider removing or weakening some of the practices to really use XP, rather than staying in the phenomenon where everyone is commenting but no one dares to do it.

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.