[Declaration] If you need to copy, spread this article, please attach this statement. Thank you! Original source: http://morningspace.51.net/, MOYINGZZ@etang.com [cmm] [M] How long have you used CMM management in the project? What is the impression of CMM? Is there any change in its understanding from the beginning of the beginning? [L] I am not very familiar with the CMM's entire system, and our company is working in the CMM specification, so there is no time to participate. In general, our company is managed by CMM in several projects that have just started, and the project of my hand has not officially started. I estimate that CMM management will be used after formal start. So I have never used CMM to manage projects. The impression of CMM is the project process documentation, and a project can have 40,50 documents, and this management mode should be very useful for a relatively large project, but it seems to be used for small projects, but I I want to practice from a small project. [M] In the previous conversation, you have mentioned "The overall participation of everyone in CMM", from the actual perspective, how do you understand this? In the case of different sizes of the company, how is this "emphasis"? [L] Perhaps no involvement in CMM involves "the overall participation of everyone in CMM", this is just a point of my personal opinion. Because the project's documentation is pursued in the CMM, the project document is a relatively large workload. After a company, our company may have more than 50 files, such a large document workload, if one of them can do not realistic, and the maintenance of documents is also a lot of workload. Therefore, it is necessary to hand over some of the programming, detailed design and other work to each programmer, so everyone will participate. Moreover, for the system, each person must have everyone's idea, so it is necessary to brainstorm, and everyone will participate in discussions. Regardless of the size of the company, such as Microsoft, the overall architecture programmer cannot participate, but the programmer will participate in the small module. I am in the design and detailed design, premise everyone deeply understand the needs, then each person is responsible for the design of a part of the module and the work of Coding, documentation. [M] Can it think so, in a small-scale TEAM, programmers should actively participate in the design of the design of the framework structure. Whether this approach is not suitable for large software development companies (such as Microsoft)? Whether it is mentioned in CMM. [L] My idea, there is no specific to this issue in CMM or companies. It is true that our company is generally a strong project, so everyone has their own opinions in the project process, their own envisions, and project managers or so-called system analysts may not consider perfect. So my idea is that everyone will discuss issues such as system frameworks to study the overall system, so they can be brainless. For the difficulties in the project, the key places, everyone has a relatively clear understanding, but also to unite. I think even in Microsoft, they will also participate more or less, they will also ask their recommendations. Ok, this problem is left to discuss, practice. [M] Why may the CMM management mode may not be suitable for small items? In the implementation of CMM, some people mentioned the issue of cutting. What do you see about this. [L] What is actually answering this problem! Because I don't know what CMM, I think companies can't take all the way in implementing CMM. If all, you will not be able to fit your business and also cause waste.
I think our company's CMM execution is to learn some CMM's ideas. According to the rules of CMM, the process develops some rules that are suitable for company's own CMM, and the company is doing things in accordance with the established rules. Then let the CMM evaluation agency are verified to see if the company's things are done according to the rules of CMM. This is my personal feeling, because I have not participated in the CMM training, the development of the company process, so I am not very clear, I can only answer your questions according to some of the idea. [M] Then, from the perspective of a company's ordinary staff, this "localize" CMM system is the implementation effect in the company's internal implementation? [L] It should be said that localize's system is in line with the actual situation of the company, which is done according to the actual needs of the company. The effect should be better than the effect of the copying effect. However, CMM is a very effortful and time, and the company has just implemented, so everyone will inevitably have a bad place, or to conflict. However, I believe that over time, as everyone's consciousness is improved, it should be more and better. [M] For a system, there will always be a possibility in which it is in the truly implementation process. For example, some of your companies launched in project management. For this, what do you think. [L] I think the system is dead, people are alive. We may not need to perform full according to the system, but the key points should be guaranteed. The system that may be developed for a particular project is not fully suitable, so we have to take the appropriate part and use it flexibly. For example, a very complex system can be controlled from management, resources, quality, etc. according to the process of company. But if the system itself is small, such as a project I just touched, the function is simple. If you completely follow the company's entire process, I am estimated that the effect will not be very good, and maybe labor will hurt the money, but also the expected results. Therefore, the implementation of the system is flexible, some key content, and other edge corners, I think it can be done, and the company is sometimes doing. Some items are not done in accordance with CMM, because it is too wasteful. [M] Can SQA mentioned earlier, SCM explain? [L] SQA is the meaning of software quality assurance in CMM, and SCM is the meaning of software configuration management in CMM. Software configuration management means that there are 3 libraries in the software development process: baseline libraries, production libraries, product libraries. The baseline library is established in the early stage of software development, such as demand, project progress, plan, etc., after the software development is based on it. It is not to say that the changes are not allowed, but if you change, you need to go to change the process, you need to apply, then review, and the audit is passed to allow addition to enter the baseline library. The production library is the library existing during the project development. The product library is after the project development. It is probably some documents, code, etc. in the library. Of course, you can use Clear Case as a medium, or you can use Source Safe, which is dependent on the specific situation of the company. [Document] [M] What attitude is you organized by the organization, writing, and maintenance of programmers? Will this affect Coding? Especially when the pressure from the customers and the market is very serious. This is a very real problem. [L] In fact, we all mentioned more than once, most of the time in the process of doing projects is used to organize documents, and the time in the life cycle of the true code is very small, one The real project is definitely not the end sign with Coding, because there is also maintenance or second or even three phases after the project, so the accumulation of documents is critical to the project.
As one of the project results, we can't just let the people who write this code know that there is no different gambling, and after a period of time, no one can guarantee the code you have written in the code. We must let all people know what features should be implemented, what logic is included, what kind of ideas are, so that project transfer work can do better. What is the reason why customers and market stress is very serious, it is impossible to cause programmers to write documents. Conversely, if the document is written, there will be a lot of time in the Coding phase, because the idea, the algorithm has been very embodied in the documentation. If the pressure of true customers and the market is very serious, at least at the end of the project, the document should be completed. If it is just a project manager writes document, then his ideas, design, is hard to reflect in programmers. So I recommend that the programmer should participate in the outline, the details of the documentation. In fact, Motorola is a good example, they will not take a lot of time because of a programmer or project manager, it takes a lot of time to take a lot of time to familiarize with this system. On the contrary they can start from the document, very good understanding of the whole project. Our company has an example of failure. In the e-commerce system made to HP, we may have changed 5-6 individuals to now, but the most basic summary design is not available, so now Maintenance is quite hard, almost no one is willing to touch this project, a little change, to study the code for half a day. The lesson of blood. [M] How to grasp the accuracy and completeness of the project documentation? [L] The accurate and complete definition of project documents may be vague, and it is also difficult to judge, but I think the most basic should be: The project should write all the contents involved in the project, and the project may be I can't get the implementation of the implementation, the code is changed, but the document must be changed, otherwise it will lose the original meaning of the document. So I think the project manager does it take a week or even a day to modify the document every week or even a day. [M] During the project documentation, document writers need to express exactly correct ideas and maintain the consistency of documentation and code in phases. This puts a certain requirement for document writers. In your company, how to ensure that when the pressure of our customers and the market is very serious. What do you think of this or experience? Do you think the programmer needs an extra quality? [L] It is a way to write a document is a way to sort out the way. The so-called complete may not need to have an face, but the focus process, the key ideas, etc. need to be described. In fact, for the writing of documents, don't feel a very complicated thing, the meaning of the document is that it records the completion of the project, which is convenient for maintenance of future projects. When our customers and market are very serious, our energy may focus on the real code of the project, focusing on the completion of the project. However, after the end of the project, the project document must be completed. Nowadays, the domestic situation is that most of the programmer is undergraduate, so the quality of the programmer itself determines that he can take a Coding task, so the project manager should give them some additional work. [M] What types of documents contain specific inclusion? What are the readers for each document? [L] Documentation includes: demand analysis manual, summary design manual, detailed design manual (many data flow graphs as an attachment to documents), etc., now there is no very complete document list. [M] In your company, there is no similar program design to explain such a document. If there is, for such documents, if the writer will make the reader to understand.
Is there such a problem in actual? [L] In fact, I think I want to design a design manual, and the detailed design manual does not know whether it belongs to programming documents, but I think it should be. It is actually like this document that there is a big difference in the understanding of the reader. Our company has been discussing how to develop a practical specification, making it a detailed, clear, our current template, sometimes not suitable for some projects. But it still can't still find a way to avoid it for a long time. In the real work, I think there is an unclear, but I have not encountered it, maybe I have been following the acceptance from the demand phase, so I understand the system very well, so I may not have a bad understanding. Bar. And the company's form is that everyone is responsible for writing a summary design and detailed design, so this document is very clear for this person, but no one is grasking on the overall document, although we have to design and detailed design. However, since the time is not allowed in most cases, the project manager has been finished after writing. [M] The meaning or role of the document is except for the completion of the record project, is there any other? [L] Perhaps the meaning of document is important to the "RepeATable", "RepeATable", "RepeATable", just a few days ago, I have received new words from the project management manager, and I think everyone can discuss it. Perhaps our document can help us summarize the lessons, record the sparks of our sudden thought, and encounter the same project to provide experience. [M] In your experience, do you really understand the maintenance of your writing documents for future projects? [L] The experience is too deep. We do the HP bridge system to HP, from the beginning to the present, but the document is still the first edition, so you need to add new features, if it is a never People who have not contacted this project are doing, assuming that the change in code is 200 lines, but he first takes about a day to read the previous code. This is the result of no documentation. Like Motorola, anyone in their project group will not have an impact on the project team, because their documentation is very good. [Version Control] [M] Whether to use version control measures during your development process? [L] Our company's projects, regardless of the version controls. In particular, after the CMM standard is executed, the project starts, and there are many directory, resource files, etc. in the version control database. In fact, the use of version control is to avoid two people to operate a document while encountering corrected places to roll back, returning to the previous correct version. And in case the program is changed by several people, you can record the name, time of the changing people, to facilitate finding responsibilities. In fact, when the team is developed, version control is a must. And even if a person is developed, it is recommended to use version control. For example, you have changed something, but it is discovered that the changes are wrong. If you want to use Ctrl Z but you can't recover, you can use the version control "revocation check out" Get the previous version of the code. [M] When you implement the version control, there is no damage or efficiency caused by the personal version control awareness, and the loss or efficiency caused by improper use of the version control tool. [L] It should be said that there is still a lot of problems when implementing version control, and some people are not very clear about version control, think that the version control is not necessary. In the Dot Net development environment, we have appeared some questions, and the colleagues just changed, and the Check Out was found to be still the original, that is, his new changed code was lost.
But if you change to another machine, you find that the code is changed, so that you have tossing a day in the morning, and later I don't know why, but I have not found similar situations. [M] What is your personal implementation of the version control? [L] In fact, for the experience of version control, it is not a little less skill or small experience. Individual understanding is also a relatively low level, and personal skills are only limited to ordinary applications. During the group collaborative development, I think the version control is necessary. After all, the group developers may involve a few people. If there is no version of control measures, more than two people may operate simultaneously. The same file, this will conflict with each other and cause the code to be confusing. If there is a version control measure, you can guarantee that a file can only be used by one person at a time. When you encounter a modified error, you can restore the last modified version, avoiding problems that don't know where to modify and cannot be recovered. Another question is if a file has an error, you can find the last modified person, and he wants to be denied. [M] If in the process of version control, due to improper operation, or human negligence, is there any remedies? [L] It should be said that during the version control, different people are different for the operational power of the project file. Project Manager can add / delete / modify / destory, and project members can only add / delete / modify. Because I didn't encounter improper problems, I can only introduce you to you with a little understanding. Version control tools will be recorded for each operation you make, saved as history, because the project member only has DELETE power, so if you accidentally delete it, you should be able to find it through history, but if the project After the manager, the manager may not find the file Destory. However, if the project member wants to modify a file, he must establish a copy of the project locally, then modify local, so even if the file is deleted, the local copy of other item members can still get a version of the code, But this version is the latest worthy of doubt, because the project member may not have Get Last Version. So if the operation is not proper, or if it is negligent, it should be able to make up for a part, but is it all compensated, and it is necessary to try the specific situation. Therefore, another task of the project manager is important project information such as backup code, databases, etc. every day. This reduces the loss of accidents to minimal. [Others] [M] What do you have for the code specification and the writing of the comment? [L] In the project I just finished, some programmers used to write Notes. For SQL Server not very familiar, there is a pile of TmpStr1, TmpStr2, etc., and the variable specific window is defined when writing code. Which control content is on the body, you must find the variable assignment to see the specific content corresponding to the variable. And never add a comment, the entire page contains different functions, and use a Connection link, there is an error, and the debugging can not find the reason, very difficult. So I will ask them to add comments, can be said to be forcing them. Due to the comparison of the duration, it is not requested to correct the code for the page. When we developed a CMM standard, our company organized a programming specification, and the project was given to the programmer.