A balance between RUP and XP

Source: Internet
Author: User
Tags coding standards

A balance between RUP and XP

Author:Spiderman(Shenzhen)
From:Http://blog.csdn.net/testwin
Email: Testwin@sohu.com

 

People have experience and fear, and they will form a methodology to avoid such things. People studying heavy methodologies may have a long history of organizing thousands of development teams for development, such as the development of large-scale telecommunications systems and the development of military and aerospace systems ...... this type of project strictly emphasizes the process implementation specifications, and focuses on document specifications, reviews, and process measurements. XP creators may have been working on projects in small teams. There are only 3 or 5 members in the project team. The project will always be cancel because it does not meet the user value, and the Development Company will suffer losses, therefore, it focuses on communication and feedback with users, and emphasizes fast and flexible.

The background, characteristics, and applicable fields of each software method vary. So is it unreasonable for software projects to use the same software development method to develop projects of different types, sizes, and complexity.

Not long ago, I happened to have some exchanges with a Senior Software Engineering Consulting consultant in China. He is keen on Process Improvement of the RUP and advocates proper tailoring for different types of projects, in fact, this is also a flexible way to adapt and change as needed. I understand and agree with this, but I have always maintained a relatively cautious attitude towards RUP.

First of all, I think it is too idealistic and theoretical for RUP, which is a framework of process components, methods, and technology. You can apply it to any specific software project, users can define the scope of use of RUP. For various types of software projects, RUP does not provide its own specific reduction and implementation strategies, and there is always a sense of no evidence to follow. You can either say that it can solve any problem or that it is nothing. Secondly, in essence, RUP is a software method that emphasizes design and specification. From this perspective, there is no big difference from the traditional waterfall model, and its flexibility is relatively weak compared with agile methods. In some small software projects, especially unpredictable software project development, there are various urgent needs and time pressures. It is difficult to use the RUP. However, on the other hand, RUP emphasizes the collection, sorting and processing of knowledge, and emphasizes a good architecture in software development. Therefore, it is conducive to the accumulation and sharing of knowledge.

Compared with RUP, agile methods such as XP are more flexible and advocate early and continuous delivery of valuable software to meet user needs. Replaces detailed documents with communication, emphasizing the initiative, self-discipline, self-organization, and spontaneous management of the team. XP is also a code-centric method. Many things are unknown here, and knowledge only exists in two places: the developer's mind and the final code. For project managers, they will think that agile development methods weaken the concept of knowledge management. In fact, agile development focuses on the accumulation and accumulation of the most valuable knowledge.

How to flexibly cope with various project risks, how to maximize the user value, how to effectively control the project development process, and how to manage the knowledge in the project process, every software project manager needs to think deeply. The advocates of the RUP have always stressed the tailoring of the RUP. In fact, I think that it is not only about the tailoring of its own, but also about the integration of IT. Appropriate practices for agile development are integrated while the rational development framework is tailored. Do not think that RUP and XP are in conflict. Otherwise, they have different principles and different application fields. When the XP technology is integrated in the RUP, the correct amount of process is obtained, which not only satisfies the needs of all members of the project, but also solves all major project risk problems. XP is fully qualified for a small project team working in a highly trusted environment where users are part of the team. You need to do some other work for scenarios where the team is becoming increasingly dispersed, the Code volume is getting bigger, or the architecture is not well defined. In projects with contract style in user interaction, XP alone is not enough. RUP is a framework that allows you to expand xp with a more robust set of technologies, as necessary, starting from the RUP.

 

The best practices of RUP include:

1. iterative development
2. management requirements
3. Use a component-based architecture
4. Visual Modeling
5. Continuous Quality verification
6. Control Changes

 

12 XP practices include:

Planned Development:Determine the functions of the next version by combining the priority "story" and technical estimation.
Minor version:Software is often released to customers in small incremental versions.
Metaphor:Metaphor is a simple, shared "story" or description that describes how the system works.
Simple Design:By keeping the code simple, the design is simple. Constantly search for complex points in the Code and immediately remove them
Test-driven development: You can write test content to test the story. Programmers write test content to discover any problems in the code. Write the test content before writing the code.
Refactoring:This is a simplified technique used to remove duplicate content and complexity from the code.
Pair programming:Two members of the team use the same computer to develop all the code. One person writes code or drives, and the other person reviews the correctness and comprehensibility of the code at the same time
Collective code ownership:Anyone has all the code. This means that everyone can change any code at any time.
Continuous integration:Create and integrate the system multiple times a day, as long as any implementation task is completed
40 hours per week:Programmers cannot guarantee the highest efficiency when they are tired. It is absolutely not allowed to work overtime for two consecutive weeks.
Field customers:A real customer is working in the development environment full-time to help define the system, write test content, and answer questions.
Encoding standard:Programmers adopt consistent coding standards

The integration of RUP and XP is complementary to each other's characteristics and a balance between software development methods. Thinking about the balance between software and technology can be said to be the beginning of technological maturity.

Finally, I will clarify my understanding of software project development. During software project development, the characteristics of different software projects should be identified and analyzed, and appropriate development practices should be adopted to adapt to the software development process to ensure effective support for software development, in order to create "good enough" software. This is enough to balance the progress, cost, and quality to meet the customer's needs.

 

References:

Using RUP in small projects: Extreme Programming profiling Gary pollice

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.