Project management archive and Project Management Archive
Archive project management methods-Mind Map, prototype tools, interface testing, design mode, Version Management, unit testing, continuous integration, code review, Bug Tracking
Beautiful Life of the sun and fire god (http://blog.csdn.net/opengl_es)
This article follows the "signature-non-commercial use-consistency" creation public agreement
Reprinted please keep this sentence: Sun huoshen's beautiful life-this blog focuses on Agile development and mobile and IOT device research: iOS, Android, Html5, Arduino, pcDuino, otherwise, this blog post is rejected or reprinted. Thank you for your cooperation.
Archive project management methods:
1. Mind Map
If you are thinking about things without being so clear and clear, use mind map. It can naturally remember the process of your thinking as you think.
Actually, you don't need to build a mind map. On the contrary, it is a record that shows you an orderly combination of your own mind disorder.
On the other hand, the mind map should be recorded in ordinary times like the notes, and the automatically organized chart reflects your thinking process for a period of time.
They complement each other. However, we want to solve the problem and record it so that our thinking can continue based on the current situation. It may be difficult to select the word description in the middle. Just remember what to express.
2. prototype tools
Select an existing form, that is, the upper body of the ghost, or the attachment.
In fact, thinking will always be carried and executed based on the body. Therefore, we must select a way to express the things produced by mind map.
3. Interface Test
With the help of external things, you must first understand the external things, determine which are available and which are unavailable, in order to plan the route.
The interface definition is divided into three situations: one is mutual negotiation, the other is the client definition (at this time, the business logic focuses on the client, small projects), and the third is the server definition, of course, you also need the client to fully comment on the requirements and overall architecture.
In short, the interface protocol developed out of any party must be imperfect and can only be part of the Outline Design. during use, it will be modified and improved in a certain amount, form a detailed design.
Whether to analyze and develop a detailed design scheme first, or do it while walking and looking at it. This depends on the actual personnel capabilities and project needs.
4. Design Mode
Combine the above items to plan the route.
In fact, as long as we understand the inheritance, polymorphism, combination, and encapsulation of classes, and can flexibly look at this system structure from the inheritance and derivation perspectives, so it is not difficult to understand the 23 design patterns,
In addition, each design pattern is designed to solve a type of problem. It is easier to master and use it flexibly than to write a record.
"The highest realm of an exclusive sword is not to take the sword". The highest realm of use of the design model may be that it is not limited by the design model itself, and can use the object's special combination at any time according to its own situation.
5. Version Management
In fact, the version management system should be deployed in the Configuration Management Section at an earlier stage. This is a cmme process. It not only handles code version management, but also documents, some documentation tools support version comparison.
The reason for putting it here is mainly for the latter two, in terms of code.
Or now the children do not have the habit of developing, but I think it is a self-protection mentality to cope with the current environment. In contrast, I feel that the current Child's casual and indifferent mentality is more suitable for survival. Instead, we are the first generation of people who have grown up under the red flag, with a heavy sense of responsibility and constraints, instead, it is easy to get tired of the current environment and be easily defeated by Cancer.
Back to the question, the design mode partially completes the architecture design and framework construction of the entire project. The next step is the coding implementation of each functional module, it is necessary to conduct unit tests to ensure that this part of code is complete and available, and then submit it to the development version library,
First, it achieves the most basic function of Secure Code backup;
Second, the code is shared with other members of the team;
Third, the development in the next stage is based on this.
Of course, there may also be a problem where the development may be terminated halfway through this process. In this case, of course, it is a good solution for Git local version library management to perform version control on the code. Sharing in the team is feasible, whether through SVN or Git server sharing, and Git is more reliable.
When all the unit modules to be completed by a version iteration have passed the unit test, perform the integration test. All functions are implemented and robust, and then submitted to the review code base to generate the version number, submitted to the supervisor for review.
It should be noted that,
1. Integration testing is not only carried out when all the unit modules are completed at the end, but also completed and integrated into the system in each unit module (of course, we are all used to developing directly in the project and have integrated it for the first time.) We can test it at any time, the purpose of the test is to associate all the components in this unit path (because you must rely on the transactions of other modules to complete the process to reach this unit module ).
2. Code review is the most grounded for unit tests. Each accepted version of the code review Library (the version library regulated by Redmine) must be an effective unit test in the development version library and verify that the function of the developed unit module is available, it can also be integrated into the project for relevance testing. It is submitted only when new problems are not introduced.
Compared with heavy SVN, Git's distributed version management features and file system-based rather than server-based build methods are more suitable for second-level version management such as code management and code review.
Of course, the local Git + SVN solution is also feasible, so developers are required not to submit the changes to SVN easily, but to submit them after the final development confirmation.
There is a risk of local downtime. In this way, it is also necessary to provide a development version server to achieve redundant backup.
6. Unit Test
Whether Android uses JUnit in Eclipse or iOS uses OCUnit or XCTest in XCode, it may be more targeted than the unit test method described above.
In the unit test process described above, there is a continuous integration test process and a test-driven concept. Although the test cases are not written, however, the problems in the actual unit module are analyzed and improved according to the pre-test.
Using the unit test framework in this Section to assist in testing can simplify a lot of trouble and provide effective pre-expectations for the tested part.
But in general, even a good unit test framework requires developers to properly control the development process to fully utilize its performance. Otherwise, the unit test framework will become an irresponsible shield, rather than the aid of lazy inventions.
7. Continuous Integration
No, not much!
After the unit test is completed, the function modules of the development are implemented. However, when a project is added, the modules cannot be added, and the other components cannot be used together.
What is the development of Shenma stuff ?! However, this situation has always occurred. Because there is no sense of responsibility, and this era is an era of no sense of responsibility, just as "sending 0.1 billion to employees" cannot be achieved, it can be said the same, this is a characteristic of this era, this feature ensures that they can survive, because this mentality makes them less anxious, and our generation's excessive sense of responsibility has indeed become a burden and even fatal. Believe it or not, look at the current Cancererer. How many of them are people who can afford, put, think, read, and do what they say. Can they be irresponsible ?! No. Therefore, the important feature of the Cancer era is that the new generation does not have to put so much pressure on themselves. They are born to adapt to this era, and of course they are responsible... It is another and important thing, and it is about social progress. However, in general, the mentality of this generation can ensure the continuation of life. Do we also need a negative population that is truly extinct like those who claim to be superior ?!
So we can be more tolerant and understandable in order to get closer to and get closer to this generation of people and understand what they are talking about and what they are doing, after all, we spend the rest of our life in the society they maintain. Understanding and understanding are important.
Let's get down to the point. All of them have continuous integration, because they have not been integrated for many years! The reason for the lack of continuous integration is that cmme should be the culprit in mechanized development. However, I didn't say so either. I would like to ask which technologies in China are introduced to apply this technology and how to use this technology to control it. This is due to initiative and will not be discussed further.
In short, continuous integration is something that shouldn't have happened, because development is a continuous process. Why is there something that doesn't happen ?!
Back to natural development, nothing left.
8. Code Review
Redmine has a one-click installation package Bitnami that allows you to quickly build a code review system.
It can be associated with the SVN or Git version library, or the mail system.
This part needs to be further studied and applied.
9. Bug Tracking
Continuous integration is guaranteed by a complete unit test. This is code-level and functional-level, but it is never business-level, interactive-level, or user experience-level.
In addition, in the process of rapid iteration, only the main development line is often taken into account, and various fault tolerance Processing and security verification are ignored.
I think Bug Tracking should be the feedback on problems found during continuous integration and system testing. This is a result tracking of black box testing, the problem itself may not be the source of the problem.
In addition, the problems such as program exceptions and crashes should not be detected at this time, but they actually exist greatly. This requires regression to unit testing to quickly discover and solve the problems.
In addition, sometimes a problem involves not a unit.
This requires logging bugs and tracking the entire solution process. Compared with this disruptive production process, it is easier to have bugs, with 10 times of manpower investment, and only 5 times of results.
The modular splitting of large tasks becomes a small system. In this way, the management cost for small systems is relatively low, the communication cost is also low, and the human nature is returned to ensure the availability of software, not a system.
Of course, the system can be scaled, but the premise is that you must first turn people into systematic people, and then become systematic people. after leaving their posts, their work adaptability is very poor, because he does repetitive physical work, not mental work.
It is necessary to track bugs, clearly understand the description of bugs, specifically handle bugs, and provide feedback on the problem solving process and results in the same place. As for others, I don't feel that it can be used. Excessive management can only
Make perfunctory A ethos.
In contrast, people are active, fully motivating and giving full play to their initiative, and managing them with these tools can be even more powerful.
Management is always to be clear, clear, and orderly, rather than to implement any means for management, except to motivate and give full play to people's initiative.
Copyright Disclaimer: This article is an original article by the blogger and cannot be reproduced without the permission of the blogger. Reprinted and contacted QQ 30952589. Add a friend to indicate your intention.