[Reprinted] comparison between cmme and agile development modes

Source: Internet
Author: User
Comparison between CMMs and agile development modes: April 9, 2012 by flysky

I have participated in the development of two versions of a new product project. I have adopted the agile approach of cmme and project. I will summarize the two models.

CMMS uses the traditional waterfall model for development.The development process is project initiation-> Requirement Analysis-> outline design-> detailed design-> code-> unit test-> integration test-> system test-> external test/start test. In this process, many documents are submitted. In the early stage, it is estimated thatCodeScale, developers need to submit the summary Design Manual, detailed design manual, unit test cases, integration test cases, system test cases, QA needs to calculate the case coverage rate based on the data, unit testing and integration testing are completed by developers. After joint debugging (the developer's hardest time, this cycle lasts about two months), several rounds of large-scale system tests are conducted by testers, after the tr5 phase is passed, the version participates in external testing until it is commercially available in the future.

Most of the requirements for external release have been identified in the early stage of cmme development. However, if the customer wants to add new requirements in the later stage, depending on the workload, complexity, and impact on the version, determine whether the requirement is delivered in the current version or in its subversion or next version. In general, this method is basically used for large-scale commercial products. However, when testers participate in the test late, the bug outbreak occurs. In addition, the increase in demand in the later stage has a great impact on the software architecture. The corresponding process may be tailored based on the project situation, and some projects do not implement the complete cmme process.

agile development mode, using agile project-level development:

total development team: 7 scrum teams, each with an average of 10-12 developers, excluding the test team;

Each scrun team consists of 13 developers, 3 testers, and 1 Team Leader.

Agile mode: iterative development (three Monday iteration cycles), peer programming, sprint planning meetings: estimate workload before each iteration, clarify requirements, and estimate the workload of story (collectively estimated by the Development Team), status wall (you can add a burn-out chart to check whether the team performs according to the expected plan, and the team's productivity is visible), iterative Acceptance Test (product owner, QA) continuous integration (daily build version passed smoke test), iterative review meeting, daily standing meeting-15 minutes.

JIRA -------- Tracking bugs

Excel ----- manage the backlog of the entire product

One main line and multiple branches: synchronization main line and merge branch ------- SVN (Version Management Tool)


Agile declaration:

Individuals and interactionsOver processes and tools

Working SoftwareOver comprehensive documentation

Customer collaborationOver contract negotiation

Responding to changeOver following a plan

The agile development process allows testing to be involved in every iteration cycle in advance. The bug is resolved in the early stage. Of course, it does not rule out the introduction of new problems in subsequent iterations, the stress of developers is decomposed into various iterations. Because the demand implementation is constantly increased to the version, there is no need to re-perform large-scale testing for the entire version due to the increasing demand in the later stage of the project.

For large and complex systems, in the case of limited manpower and time, whether using cmme or agile, it is inevitable that the project will die, and the development model is not the best, only the most suitable project model needs to be explored continuously.

Digress:
I often discuss agile development process knowledge with others, and we often argue about the use of agile development process and cmme high-level topics. Can they be used in combination? Or are they just moving in the opposite direction? With this question, let's discuss it together.

"This question can be said to be a conventional discussion, but I have a question about the basic difference in the 5th level. This question may cause anxiety. Cmmi1.2 emphasizes the change to control the results in the Organization, and then shifts its focus to the individual. In the sense of agile development, it is not just to make every project have the flexibility to respond to a variety of environments, but also to make them do their best in this environment. We have not paid special attention to standardizing behavior in all projects so that the results can be predicted to be "reliable ".

However, I do not know whether the difference I try my best to explain is a basic difference between agile development and cmme, it is just a result of how the Organization interprets and executes the cmme 5th level. Of course, the trust of agile development teams in process models and Process Practice assets seems to be less than that of the cmme team-although agile teams have no way to regulate these things even if they are low-cost, but there is no assumption that this is the way the Organization is going. In fact, the agile development supporter is biased towards this idea and quickly establishes the gradually decreasing results in any form of process model that can be met. Is that equivalent to saying that agile development supporters believe that the effects of execution are so common for special reasons that it is useless to try to establish a predictive model in an organization ?"


Cmme level 4th:

QPM (quantitative project management): focuses on individual projects that understand process behavior changes, they believe that these changes affect their success and how they are handled-or at least affect product development or achievement. The organization unit (EPG) must monitor the results.

OPP (Organizational Process Practice): focus on integration models. Projects can use models to standardize the areas they want to achieve success, such as quality, schedule, budget, maintenance, and anything else. The trick is to control QPM Behaviors Based on these models during project execution. Typically, these models may be constantly built based on repeated results in similar projects, although there may be no such requirement. The model should be improved for use at the level of individual projects first, so the historical data (for example, incremental) based on a project is used in the cmme model) or there is no difference in the historical data of 20 projects, although this may be different for users.


Cmme level 5th:

Car (Cause Analysis and Solution): focuses on the main causes of problems, faults, management problems, or all other problems that need to be solved. Project, EPG, or anyone else can apply it as a solution to the problem. EPG monitoring results in OPP, or gain other experience. (Is similar behavior not recommended at the incremental start point or end point in Agile development? I don't know if the terms I know are correct)

Oid (organizational innovation and promotion): completely non-project features. Focus on organizational improvements based on individual, car, model usage, and external factors. Will you collect and use all the lessons learned? After you enter the Enterprise, will you seek new or better business methods (Agile development may be just an example )? What else should I do in the organization to prove, analyze (occupation), and use (see model and process control in level 4th for the structure) these improvements.


I personally think that the high-level and agile development of CMMs should work together. Agility can help cmme to easily achieve short-term changes at a high level, and it plays an important role in the development of things. My experience is basically from the 5th level, and some are from the 4th level. Many organizations pass the 3rd level with the idea that "everyone must do this", but they disagree with the same idea at level 4 and 5. As I have mentioned before, agile development is a perfect example of how to improve product development by using level 4 and 5 of cmme.

 

Summary:

Features of cmme: companies that use cmme have their own process standards and product standards, and have dedicated personnel to ensure the quality of processes and products, in addition, you can improve the company's processes to achieve realistic production. Cmme is the industrial production of software. The company has spent time and resources to develop and improve standards. The final result is to produce products more efficiently and with high quality. Generally, large companies are suitable for using the cmme model to produce software.


Features of agile development: quick development, lack of documentation, throwing away after completion, and building projects without lessons learned and metric data, you can also use a demand as software. In general, small companies often do this. First, the project is basically taken from the official website, and only a few people are expected to meet the requirement on software quality and efficiency. The second is to take the money when the project is handed in, regardless of the upgrade. Third, more than a dozen people have million guns, and they cannot use the cmme system. Each process domain cannot be divided into one person.

http://flysky.fm1062.com/post/20120408-2.aspx

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.