1. Surgical architecture:
2. in large-scale software development, conceptual consistency must be well reflected, rather than democracy. Otherwise, more energy will be wasted in useless discussions, the System Architect should be such a role. He is not directly involved in coding, but must complete the architecture design and coordination interface. The ingenuity of programmers should be applied to the implementation of specific modules.
3. Judge the needs of a software. Consider two aspects: ease of use and functional diversity of the software.
4. The entire creative activity is divided into three stages: architecture design, design implementation, and physical implementation.
5. 1/3 plan
1/6 Encoding
1/4 component Testing
1/4 System Test
Typical Waterfall Model
6. The specifications document shows the consistency of the entire concept.
7. For a widely used program, the total maintenance cost is usually 40% or more of the development cost. Surprisingly, this cost is heavily affected by the number of users. The more users, the more errors are found.
During code maintenance, there is often a chance to introduce new bugs. Fixing the original bugs will produce new ones, and adding new functions will also generate new bugs. (This is two steps forward and one step backward). As the user's needs change and the hardware of the device changes, software maintenance becomes a step forward and a step backward. System software development is a process of reducing chaos (reducing entropy), so it is in a sub-steady state. Software maintenance is a process of increasing chaos (increasing entropy). Even the most skilled software maintenance work only slows down the process of system degradation to non-steady state.
8. in software development, tools become very important. To do well, you must first sharpen your tools. In the programmer team, it is best to use the same tool.