CMM can not improve the quality of software: Zou Dabin Source: Computer World Journal http://www.csai.cn 005 on September 20, Dr. Ivar Jacobson believes that if bad software process maturity level through the CMM / CMMI is more High, will only make software companies produce unqualified software more efficient, rather than enable companies to develop better software. Software outsourcing is a hot topic at the time. It is regarded as a gold mite by many software companies in my country, and CMM is considered to be a knocking brick that enters this market. In order to get the qualified CMM certification certificate, many companies even don't hesitate. Invested millions of huge. In fact, getting CMM certification does not mean enterprises abroad, providing a qualified software, a famous software expert, has a number of inventions such as component technology, use case technology, and GRADY BOOCH, JAMES RUMBAUGH, called UML's father Dr. Ivar Jacobson repeatedly reminded China's software companies during recent visit to China, beware of falling into CMM traps. CMM / CMMI's disadvantages CMM / CMMI originated from the US Department of Defense. In order to change the situation in which a large number of unqualified software frequently purchased in the procurement process, the US Department of Defense needs a method of assessing software quality, which is required to make CMM / CMMI certification. However, did CMM / CMMI really solve this problem? CMM / CMMI is considered to be the most mature, most effectively improving software engineering levels, used to assess and improve process, which is a framework that describes key factors to be improved during software development. A way to improve in progress. It provides a foundation for software process improvement, developing software from a relatively random, immature process to a very mature, regular, manageable process. However, CMM / CMMI also has some shortcomings that are not overlooked. For example, CMM / CMMI's assessment costs, a CMM2 assessment may reach millions of huge, and it takes a long time, the process is very complicated, and the effect is not ideal. Many companies' certification flow in the form. After the assessment is completed, only a lot of documents is left, and the real software development process is still me. Moreover, cmm / cmmi only tells us what should be done, but not specifically tells how to do it. For example, it is required to improve the management management, then how do you do demand management? CMM / CMMI did not provide an answer. The most important thing is that many software companies have fallen into a misunderstanding, thinking that the software can solve the problem with high software quality through the CMM / CMMI assessment, and ignore the software process that truly improve the software quality. In fact, it is probably possible: Software maturity is the software developed by CMM 1 or Level 2, and some enterprises have passed CMM Level 5 certification, and cannot guarantee it. Good software. The worst situation is that if the uncomfortable software process, the higher the maturity level of CMM / CMMI, the process of producing the software company will become more efficient, rather than enable the company to develop better software. Ivar Jacobson believes that a good software process must first be based on components. On this basis, it is also in line with iterative development, use case drive development and architecture-centric three best practices. The reasonable software process is the basics of software quality, which is this, Ivar Jacobson has a very image of an example. This is a story of a farmer and his cow. On the way to drink water in the dairy (called "Niu Road") has a crop, the cattle will eat a lot of crops. After the farmer saw this situation, it was realized that the process of drinking water must be improved, so he laid asphalt on this road. As a result, the farmer got a good "Niu Road", the cattle came faster, but did not really solve the problem of cattle.
It should have a better way to find a new road for cow. Software companies use the CMM framework for software quality control process, just like this farmer is a bovine road. For software companies, if you start from a wrong software process, even if you have improved it on this, you will always be "Niu Road". Here, it should be considered to choose a better way, which is the process of developing good software when you start from the beginning. Then, on this software process, the process is measured, and the process of improving this software is the improvement of CMM / CMMI requirements. Dr. Ivar Jacobson believes that from a poor software process, I will improve the software development, it will actually make software development worse, because you causing the software development process, so that you will retrofit it in the future. It is more difficult. The correct way is to have a good software process, it is not easy, but it is worth doing. Ivar Jacobson said, "It is very easy to make a good software process, but it is difficult to turn a measurable software process into a good software process." That is to say, it is beneficial to make mesemountable only if a good software process will become a good software process. The process of improving a CMMI has become a true process that can develop a good software, which is almost impossible. So what is a good software process? Ivar Jacobson recommends discriminating from the following aspects: First, bad processes pay attention to document, and good process focuses on on executable programs or systems; second, bad processes delay the time of exposing risks, and good The process will expose yourself under the risk at the beginning, and solve it in time; third, the bad process can verify the quality of this project in the final process, and the quality of the process is every moment. Verify; fourth, bad processes have a very complex tracking relational matrix, from demand to code require a very complex matrix, but a good process, it is a seamless link; fifth, in the face of change, The bad software is very fragile, and good software will be very strong. Ivar Jacobson reminds the software developers to do smart farmers, first get a correct software process; then, consider metering it, define it. Because the nature of software project management is not to describe and metrically, how is the process, but the first payment of software, can you develop qualified software well? The focus is obtained, and this result is obtained through the software process, that is, the software product delivered. Viewpoint collision agile development attempt to end the software crisis Nowadays, traditional software engineering ideas in software development are the traditional software engineering idea of the absolute mainstream is to be born with the emergence of "software crisis" speech in the 1960s. The so-called software crisis refers to a series of serious problems encountered during the development and maintenance process of computer software. It contains two aspects: one is how to develop software to meet growing, increasingly complex demand; the second is how to maintain quantity Software products that continue to expand. Indeed, the birth of traditional software engineering ideas, organizes software development activities in accordance with the principles and methods of engineering, and is once considered to be a major way to get rid of the software crisis. However, today, today, people have no weakness for the "fear" of the software crisis. In contrast, with the acute expansion of the software system, it is often unable to clean up: the estimate of software development costs and progress is often inaccurate, development costs Being out of budget, actual progress is not rare than the predetermined plan; the user has often happened to "completed" system unsatisfactory; the quality of software products often can't rely on, BUG is a lot, patch one; etc. .