From declarations to principles, to practices, agile development has also been organized to begin agile certification activities.
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
A few days ago, I heard an introduction to the agile basic class. I have added the process to the agile development time. I think that fast can be linked with the process and that the process or tool is used to make the team faster.
In other words, the role of processes and tools cannot be ignored. If we ignore or even discard processes and tools, then we enter the quarary of dogmatism.
Speaking of agility, it is often asked about the relationship between the software Maturity Model (Capability Maturity Model for software) of CMM.
For ease of comparison, I can understand the idea of Agile Software Development as a "agile" model of software capabilities and a cam-capability agile model for software. In this way, agile development can be easily different from traditional software process management development and can be more easily compared.
1. CMM pays more attention to the process and thinks that the process can ensure the maturity of the software development capability. That is to say, the process can ensure that a software is more controllable at each stage and the results are more reliable, that is to say, it is easier to plan, finish the plan by time, And get high-quality results within the specified time.
CMM believes that although software development cannot be measured, it can be based on scientific methods. By quantifying the data, it is possible to accurately meet the software requirements, plans, development, efficiency, testing, and results, and manpower, cost, and other elements to be managed.
Cam pays more attention to the developer's individual and software itself, pays more attention to the changes in the customer's business and software requirements, so as to adapt to these changes more quickly, so as to achieve the final result of the software is more suitable for the business needs.
Cam also agrees with the various elements in the software development process, such as requirements, design, architecture, development, and testing. However, it emphasizes phased presentation, first running, and then restructuring, this allows users and various links to see the running system in the shortest time, so as to avoid direction deviations and communication errors and get these at the minimum cost, rather than over-Design and over-planning, excessive management brings high costs.
2. In terms of Natural Laws, the higher the maturity of a thing, the lower the agility of a thing. For example, a large ship has a high degree of maturity in terms of stability, security, capacity, and speed, but its agility is not as good as that of a boat. This is also the case for humans. individuals and teams, when they are stable and mature, will improve their ability to resist risks and other issues. Individual Members will become bureaucratic, and decision-making and execution will be stable but not suitable for changes.
Therefore, the maturity and agility of the software development process are two mutually exclusive options. You can improve the model through two aspects to suit a project or development team of a specific scale.
3. From the continuous exploration of software development and management science, we can see that in the theory and practice of CMM process management methods, the long-term development methods are constantly changed to short-cycle and spiral development, this is generally not mentioned in Agile's speech. aglie's speech always uses waterfall development as its target, so that people think that agile has solved the drawbacks of a long period of time.
Therefore, long and short cycles are not the focus of agile and CMM, but design and reconstruction become their important differences. That is, the agile method is implemented through continuous implementation-reconstruction, while the process method is implemented through design-implementation-reconstruction. Because of the design process, the maturity is naturally more mature than the Agile design, the iteration cycle is less, and the development progress may be faster.
4. Cam development does not regard documents as very important. Therefore, in addition to necessary documents, it describes the architecture, design,CodeThe design thinks it is okay, and the code is the design.
With the continuous upgrading of software development tools, the development language is more natural-language and graphical. Indeed, many documents that cannot be updated in time may cause worse consequences, so do not.
Conclusion:
Maturity or agility. Which one do you need? Maturity may include agility into a branch, or agility can resolve maturity beyond the process.
The two are integrated and can coexist, but a process is required.
However, after these methods form their respective interest chains, it is difficult to integrate them.