Software Development Process (cmme/RUP/XP/MSF)

Source: Internet
Author: User
Document directory
  •  

I often see and hear that you are arguing about agile processes, which software development processes are better or which processes are not good, and each of them has a reason and a lot of fun to argue about ...... in fact, there is no perfect process, and there is no better process. The key is what kind of process is suitable for you (the organization), and the process that suits you is a good process. More importantly, a suitable process requires time accumulation and continuous practice to tailor, supplement, and improve the defined process to establish a software development process that best suits you.

Referencing Alistair Cockburn, "different projects require different methodologies. The best process of a project is the least process that the project can afford .", This shows that there are usually several ways to coexist for an organization, while different types of projects adopt different methods. Choosing an appropriate life cycle model is crucial to the success of any software project. A large number of projects are severely delayed and products are delayed. The root cause is often due to incorrect use of the lifecycle model, which includes misunderstandings caused by the waterfall model with obvious defects, although the waterfall model proposed in the 1970s S has been taught as a classic by our software engineering education for many years, the practical Waterfall Model often leads the software process astray. The difference is that the new process methodology, whether light, heavy, XP, RUP, or TSP, all advocate the adoption of an iterative and evolutionary life cycle model that significantly reduces risks, emphasize iteration. However, over-emphasizing iteration may result in ignoring demand analysis and definition, ignoring design, and making continuous changes later, greatly increasing the cost of software development (rework, defect correction, etc, increases enterprise costs.

For example, more and more people are discussing and advocating agile processes and extreme programming (XP, although agile processes and extreme programming are suitable for Web development, free Web Services, and Beta versions forever, there are also many ideas worthy of application, such as continuous integration, refactoring, and stress testing, but there are also other problems, such as teaming programming, planning game, and code collective ownership. Extreme Programming is only suitable for small teams and open-source communities, but not for large software companies. In terms of the overall software development process, it is more suitable for the adoption of unified process (RUP) microsoft software development framework (MSF), while absorbing agile ideas in some aspects and details. An American friend told me that XP may flash into a flash. Whether he is right or not, when software is a mature industry, it is certainly not allowed to be completely like "XP.

Due to limited space and time, we can compare and analyze the popular process models here, so that you can have a clear picture of the advantages and disadvantages of different software processes.

Project

CMM/cmme

RUP

MSF

XP

Cycle

Spiral Model.

Evolutionary iteration cycle and process framework

Combination of Waterfall Model and spiral model

Evolutionary iteration cycle. Software Development Methodology

Core

Process Improvement

Architecture and iteration

Milestones and iterations

Code-centric.

Range

Projects with strict requirements but few changes.

Suitable for different types of projects

Suitable for different types of projects

Small projects, small releases, and small teams with tight schedule and unstable demands

Organization

Personal (PSP), Team (TSP), and Organization, collaboration and training between groups

Cross-team collaboration

Emphasizing the product vision and six basic roles

Team-based, with the same abilities as small teams and team members

Technology

Traditional structured methods

Object-Oriented Technology

Integrated Technology

Object-Oriented Technology

Management

Focuses on process definition, measurement, and improvement. Speak with numbers and documents.

From the perspective of organization, focus on process modeling and deployment.

Business modeling, deployment, and process management.

Focuses on specific process execution and development technologies and plan design.

Activity

Define activities through process Domains

The entire team focuses on quality throughout the process

Project management, risk management, and readiness Management

People-oriented, such as 40 hours of work per week, Pair Programming

Practice

Key Practices at various levels. Pay attention to critical infrastructure.

It meets the requirements of level 2-3 kPa of CMM, but basically does not involve Level 4-5 kPa of CMM.

Code Review, version management methods, document management, recruitment, retest, and risk management.

The integration of coding and design activities weakens the architecture. Use Cases, unit tests, iterative development, and layered architecture.

Others

High versatility, but complicated and cost-effective.

The risk-driven approach is emphasized to ensure the continuous delivery of available products, minimize unnecessary process artifacts, and minimize measurements and documents to achieve elasticity and adaptability.

Provides a series of guidelines for planning the enterprise's infrastructure and technical facilities, process the business operation process, and encourage reusability.

Embrace changes and emphasize humanization, simplicity, and communication. Minimize documents. Individuals and interactions are better than processes and tools.

In summary, there is no general or static software process model suitable for software development and maintenance of all projects. In the process of software organization, there are different corporate cultures and business environments, different levels and scales, different architectures and product types, and different resources and capabilities, you must select and use different process models and methods based on different projects and periods. Constantly absorbing existing ideas in the process, constantly exploring and practicing, and gradually forming a self-defined process suitable for you.

Self-defined software processes that have been tested and accumulated are the best processes.

From: Soft training (www.qingsoft.net) original link: http://www.qingsoft.net/bbs/html/article/873.jhtml

Related Article

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.