Project Management Dafa Archive-mind mapping, prototyping tools, interface testing, design patterns, versioning, unit testing, continuous integration, code review, Bug tracking
The beautiful Life of the Sun Vulcan (http://blog.csdn.net/opengl_es)
This article follows "Attribution-non-commercial use-consistent" authoring public agreement
Reprint Please keep this sentence: Sun Vulcan's Beautiful Life-this blog focuses on Agile development and mobile and IoT device research: IOS, Android, HTML5, Arduino, Pcduino , Otherwise, the article from this blog refused to reprint or re-reproduced, thank you for your cooperation.
Project Management Dafa Archive:
1. Mind Mapping
If you are thinking about things, and are not so clear and clear, then use the mind map, it can be with your mind, it is natural to remember the process of your thinking.
In fact, the use of mind map, does not need to be deliberately built into what, on the contrary, it is the record, the whole show you a self-confusion of the orderly combination of thinking.
On the other hand, mind mapping should be like notes, recorded in peacetime, the final automatic sorting out the diagram reflects a period of time in your thinking process.
It is complementary to the way above. And we are now thinking about the problem, now record, so that thinking can be based on the continuation of the current, the middle of the selection of words may become difficult, just remember what to express.
2. Prototyping Tools
Choose a form of existence, that is, a ghost, or possessed.
In fact, thinking will always be based on the body to carry and carry out, then the mind map to organize things, must choose a way to express it.
3. Interface Test
With foreign objects, you have to understand the foreign objects, determine what is available, and what is not, so that you can plan your route.
And the definition of the interface is divided into three cases: one is the negotiation, one is the client definition (at this time the business logic center of gravity on the client, the small project), the third is the service-side definition, of course, the client needs to fully comment on the requirements and the overall structure.
In short, out of either side of the interface protocol, must be imperfect, can only be part of the summary design, in the course of use, will be a certain amount of modification and improvement, the formation of detailed design.
is the first analysis to make detailed design plans, or to walk while watching, while doing the side of the development, this depends on the actual personnel capacity and project needs.
4. Design mode
Put the above things together and plan your route.
23 Design patterns, in fact, as long as the understanding of class inheritance, polymorphism, composition, encapsulation, and flexibility to look at this architecture from the perspective of inheritance and derivation, then 23 design patterns are not difficult to understand,
And each design pattern is really to solve a class of problems arise, focus on understanding what solves the problem is more easy to grasp and flexible use of records.
"The supreme state of the lone nine swords is not to take a sword", the highest level of design pattern use may be not limited by the design pattern itself, at any time according to their own situation to apply the sexual special combination of objects.
5. Version Management
In fact, the version management system should be in the Configuration Management section at an earlier stage to complete the deployment, this is the CMMI process, it is not only the responsibility of the code version management, as well as documentation, there are some document tools are supported version comparison.
The reason why it is mentioned here is that it is mainly for the latter two, as far as the code is concerned.
Or now the children do development, there is no such habit, but I think it is a coping with the current environment of self-protection mentality, in contrast, feel now the child's casual, indifferent and so the mentality is more suitable for survival, but we have grown under these red flags of a generation of people, excessive responsibility and restraint of self-control, It is easy to be tired by the current environment, easily defeated by cancer.
Return to the point, the design mode part of the entire project to complete the architectural design and framework, then the next step is the implementation of each function module, each completed together, it is necessary to conduct unit testing to ensure that the implementation of this part of the code is complete, usable, and then submitted to the development repository,
First to achieve the most basic code security backup role;
Second, the code is shared with other members of the team;
Third, the next stage of development is based on this.
Of course, there might be a scenario where half-way stops are developed, which is, of course, a good solution for Git's local repository management of code versioning. Sharing on the team, whether through SVN or git server sharing, is possible, compared to git.
When all the module modules that need to be completed by a version iteration have already been unit tested, the integration test is fully implemented and robust, and then submitted to the review code base, which generates the version number and is referred to the supervisor for review.
It is to be explained here that
First, integration testing is not only done at the end of all unit modules, but in each unit module is completed and integrated into the system (of course, we are accustomed to directly in the project to develop, has been integrated in the first time), at any time to test, The goal of the test is to have all the parts associated with this cell path (because you want to get to this module, you have to rely on the transaction of other modules to complete).
Second, the code review for unit testing is the most grounded gas. Each tripled version of the Code Review Library (Redmine) must be a valid unit test in the development repository and verify that the development module functionality is available, and that the integration into the project for relevance testing is also available, without introducing new issues to the case before submission.
The more cumbersome version management features of Svn,git and the way files are built based on the file system rather than the server, are more suitable for two-level versions such as code management and code auditing.
Of course, the use of local Git + SVN solution is also feasible, then ask the developer, do not easily submit to the SVN, but the final development to confirm that there is no problem before committing.
There is a risk of a native outage in between. In this regard, it is also necessary to provide a development version server to achieve the effect of a 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 tests described above.
In the unit testing process described above, there is a continuous integration of the test process, but also has a test-driven concept, because the test case is not written out, but actually according to the pre-test to analyze the actual unit module problems and improve.
Then using the Unit Test framework in this section to assist in testing can simplify a lot of trouble and provide a valid expected predecessor to the part under test.
But in general, even a good unit testing framework, which needs to be managed properly by the developer's sober development process, can be fully effective, otherwise the unit test framework becomes an irresponsible shield rather than a lazy creator.
7. Continuous Integration
No, no more!
Unit testing completed, the development of functional modules to achieve the function, but to join the project, one is not to add, the second is added to the match not up.
This is the development of God horse things?! But that has always happened. Because there is no sense of responsibility, and this time, is an era of no sense of responsibility, like "to the staff 100 million" can not be achieved, it is not the same, this is the characteristics of the times, and this feature ensures that they can survive, because this mentality makes them less anxious, And our generation's heavy responsibility has become our burden, even deadly. Do not believe, you look at the present cancererer, there are a few are able to take up, put down, over it, see thoroughly, say do it, finish can be irresponsible of such people?! Not really. Then an important feature of the cancer era is that the new generation no longer has so much pressure to self, they are born to adapt to this era, of course, responsibility ... That is another matter, it is also very important thing, is related to the social progress. But overall, this generation of mentality, can guarantee the continuation of life, we also want to be like those who claim to be the top of the extinction of the population negative growth of the nation?!
So to be tolerant, to understand, to be better able to approach and mingle with this generation, to understand what they are saying and understand what they are doing, after all the rest of our lives are spent in the society they hold, understanding and understanding is important.
Anyway, all of them have continuous integration because of many years of non-continuous integration! The reason for the non-continuous integration is that the development of mechanization, CMMI should be the culprit. But CMMI did not say that Ah, ask a question, the introduction of the domestic technology is to apply the technology, more how to use this technology to control. This stems from the initiative, and then in-depth no discussion.
In a word, continuous integration is not something that should be present, because development is a continuous process, why does it happen?!
Back to the development of nature, nothing has happened.
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 an SVN or Git repository and can also be associated with a messaging system.
This part needs further research and application, follow-up experience.
9. Bug Tracking
Continuous integration is guaranteed by perfect unit testing, which is code-level, functional-level, but not business-level, interactive-level, user-experience-level.
And in the rapid iterative process, often only consider the development of the main line, and ignore a variety of fault-tolerant processing, security checks.
I think, Bug tracking, should be in the continuous integration process and system testing, to find the problem of feedback, which is a black box test results tracking, the problem itself may not be the source of the problem.
And at this point should be measured should not have the program anomalies, crashes and other problems, and in fact there is a large existence, it is necessary to return unit testing to quickly identify problems and solve.
And sometimes a problem, the aspect involved, does not refer to a unit.
This requires that the Bug be logged and the entire resolution process is tracked. Compared to this factory-style production process, more prone to bug,10 times of human input, resulting in only 5 times times the effect.
And the big task of modular split, into a small system, so small system management costs relatively low, communication costs are low, return to human nature, by people to ensure the availability of software, rather than the system.
Of course, the system can be large-scale, but the premise is that you have to turn people into institutionalized people, and institutionalized people, after leaving the post, its work adaptability is very poor, because he is doing repetitive manual labor, not mental.
Bug tracking, it is necessary to clearly understand the description of the bug, addressed to the ground, and can be in the same place to feedback problem resolution process and results. As for the other, feel that does not have any role, excessive management, can only
Let the perfunctory become a kind of atmosphere.
In contrast, people are dynamic, fully motivate and play the role of human activity, and then with these tools to manage, can be more powerful.
Management, is always for the sake of clear, clear, orderly, but not for the management of the implementation of any means, in addition to motivate and play the role of Human initiative.
Copyright NOTICE: This article for Bo Master original article, without Bo Master permission not reproduced. Reprint Contact QQ 30952589, add friends please indicate.
Project Management Dafa Archive-mind mapping, prototyping tools, interface testing, design patterns, versioning, unit testing, continuous integration, code review, Bug tracking