The book of People's Month myth
Chapter I. Tar Pits
The prehistoric tar pits swallowed tens of thousands of giant beasts, and today's large-scale software projects have led countless development teams into a dilemma. Software programs vary in size and objectives, and the requirements for an open process are vastly different, giving the profession a great deal of pleasure and a source of distress for the industry. The ugly and unfathomable tar pits devour many strong dinosaurs and flexible birds, making their companions frightened. The tar pits of software projects mentioned in this chapter also make many inwardly development teams helpless, which is worth pondering over the entire software industry.
Chapter II Myth of Man-moon
Software development projects often measure workloads in terms of people's months, a measure that implies that manpower and time can be interchangeable. The idea of a "strong man" is a false myth of wishful thinking, the Brooks rule: adding staff to lagging software projects can make progress slower. Since the first edition of this book, the law has been widely read in the software industry. Fine cooking takes time, and the topic of this chapter is extended with Proverbs: blindly increasing the number of people to software projects for quick, often haste.
Chapter III Surgery Team
While a good programmer is often more productive than a mediocre programmer, a good member may not be able to form a good team without proper configuration. The teams of large software development projects need to work as well as the surgical team and coordinate with each other. The establishment of a surgical team as a clear division of labor, Cooperative and orderly development team, is an important guarantee of efficient software development.
The fourth chapter on the Senate, democratic system and systematic design
Conceptual integrity is the most important factor in system design, especially for large software systems, conceptual integrity is the necessary guarantee for the successful completion of the project, in order to obtain the conceptual integrity, the architecture design is responsible for the streamlined architecture design team, the implementation revolves around the core concept, and the architecture design and concrete implementation are both separate and complementary. In the analogy of building engineering, the concept integrity is also the guarantee of the success of the software project. This chapter is the interior of Reims Cathedral, and the Reims in Paris is one of the most prestigious Gothic church buildings in the history of architecture. Since the designer Jean d ' Ordais developed the blueprint, the successor of eight architects understood and complied with the principle of this initial design, maintaining the integrity of the overall design concept, and ultimately Reims become an unparalleled art boutique.
The second system effect of the fifth chapter
When the first system is successfully completed, people tend to make aggressive mistakes when developing a second system. The second system often becomes the victim of excessive design or superfluous. To avoid such errors, it is necessary to carefully examine the changes in the technological environment during the second system development, to communicate and communicate extensively, to listen to all aspects of the proposals and to establish rigorous estimates and plans. Over-design errors often arise when the designer begins to make a system-improvement design in an ambitious manner. The planning of software projects must be carefully and rationally estimated in order to lay a solid foundation for the smooth progress of the project and avoid unnecessary complication risks.
The sixth chapter communicates smoothly
Architectural design is usually done by the core design team, and communicating the design concept to the entire development team is a necessary requirement to implement the conceptual integrity. Taking the development experience of System 360 as an example, to implement the concept integrity, we need to maintain good communication and communication in the team, adopt the formal definition and other techniques to ensure that the concept is precisely defined and communicated. The independent Test team is a good guarantee of the quality of the system. Communication between teams is smooth and orderly, so that the concept of integrity can be properly implemented everywhere.
Seventh Chapter Babel Why failure
If the lack of good and effective communication and collaboration between members is difficult to effectively cooperate, the goals of the team project can not be achieved. Clear work documents, clear organizational structure and reasonable distribution of responsibilities are the guarantee of the ultimate success of large software projects. This chapter is a picture of the "Construction of Babel" painted by the 16th century Austrian brother painter Breughel, the Kunsthistorisches Museum in Vienna. In Christian lore, humans have found that bricks and bitumen are used instead of natural stones and plaster to build houses, and they intend to build a tower to the heavens. The construction of the tower is magnificent and the construction site is flourishing. God prevented the project by making the languages of the tribes of mankind not pass. In software development, perhaps the existing technology can be invincible, but if the entire team can not communicate effectively, the project is likely to choke.
Eighth chapter in control
Accurate estimates of the time and resources required for the development of large software systems products allow us to be confident in the progress and prospects of the project. The development efficiency of software code is related to the required interaction between code modules. Complex interface interaction requires more testing and commissioning time, and simply increasing the number of people does not help to improve the efficiency of development. This chapter explains that effective management and decision making are key to winning.
Nineth chapter in the sleeves of the universe
Maximize the utilization of resources, reduce unnecessary resource usage, reasonable planning, so that the software system in the case of limited resources to ensure good performance, so as to achieve good scalability and robustness, which can reflect the software developers exquisite design skills. The ingenious data structure often can frugal the resource cost greatly, and improve the performance of the system operation.
The tenth chapter of document Advance
Documentation is essential during the development of software projects, and the documentation provides a concept for the entire team to communicate and collaborate within the team, as well as progress verification. This chapter describes some of the most important types of documents in a software system project. These key documents should be updated in a timely manner and will always be an effective guide to project progress. A huge number of documents in a software project are feast, and it is wise to grasp the key categories of documents in order not to be lost in the vast information, to be able to quickly understand the project and then accurately plan the next work.
The 11th chapter is ready to abandon
Changes are timeless, user needs and expectations change, developer's understanding of user needs changes, and applicable technology is changing, so the best solution strategy can change. Software development teams should have the flexibility to configure manpower and resources to accommodate problems in the development process. The complexity of the program, the uncertainty of the user's requirement, the development of the software and hardware technology environment have led to the maintenance work not always able to get the reward. In the project design and planning, it is necessary to take into account a variety of uncertain factors, flexibility to adapt to the changing environment, otherwise it is likely to lead to tragic consequences.
12th Tony Zhang Work tool
The technology and tools selected by the software development project are essential to ensure that the project is satisfactorily completed on schedule. Appropriate development tools, evaluation technology can have a multiplier effect, cut in the project's practical tools and technology is the project team's important wealth. This chapter provides important principles and recommendations for selecting technologies and tools for software development projects in the current year. Handy tool, is one of the necessary conditions for the artistic master to create the first workmanship, so-called "work desire good, its prerequisite".
Chapter 13th overall and Local
Perfected's general insight does not show that you really understand a software system, you should have a detailed and systematic understanding of each local technology. A good top-down design not only guarantees conceptual integrity, but also eliminates many pitfalls early. Early introduction of tests in software projects, the sooner the errors are discovered, the less costly it is to fix the errors. Good software project management, should accurately grasp the overall situation, rigorous audit details.
The 14th chapter of the Insidious scourge
Delays in project progress often come from the accumulation of imperceptible drops. The manager of the software project should try to establish the phased target which can be quantified quantitatively, periodically carry out the periodic acceptance of the rigorous and normative project, understand the progress of the project, and timely adjust the plan, resources and manpower. Techniques such as critical path mapping can help you observe the progress of your project. The small evil that lurks in it seems trivial, and someday it may ruin something that looks indestructible.
The other side of the 15th chapter
While users use software systems directly, in many applications, it is not possible for users to quickly master all of their functions with direct interaction with the software. Therefore, the user's instructions and other documents are the software presented to the user on the other side, it can directly affect the user's software satisfaction and usability evaluation. The purpose of the document determines its form and content. In this chapter, the authors use Stonehenge as a metaphor for document scarcity, which makes it difficult for software products to be accepted by users, so using documents is important in software projects.
The 16th chapter has no silver bullet--the inevitable and accidental of software engineering
This article was originally published in 1985 IFIP the tenth session of the World Computer Conference, at this time from the first edition of the "People's Month myth" has been released for ten years, while the changes in the field of computer technology is exciting, but the author here, due to software complexity, consistency, variability and invisibility, the software crisis to solve the silver bullet does not exist. The author reviews some of the new technologies that have placed great hopes on the industry in the early the 1980s, and discusses their advantages and shortcomings in overcoming software crises. The authors predict that in the last 10 years, there is no single software engineering progression that can increase software productivity in order of magnitude. This chapter is about whether there is a magic weapon to wipe out the wolves once and for all-silver bullets.
The 17th chapter discusses "No Silver bullet"
Compared to the first edition of "People's Month Myth", published in 1986, "No Silver Bomb" (the 16th chapter) published a heated debate, this chapter combined with the late the 1980s to the early 90 between the software reuse, object-oriented program development and other new technology development, responded to the "No silver bomb" a variety of major objections , that the major breakthroughs that people expect are unlikely to come in the near future because of the few features of the software that the "no silver bullet" article summarizes.
The 18th man-month myth of the proposal: Yes Yes Yes
In the process of reviewing and updating the human-month myth, the author discovers that the opinions asserted in the first edition are rarely criticized, confirmed or falsified by software engineering research and practice, so in this chapter the author refines the summary of the 15 chapters in the first edition, and emphasizes, revises and reflects on the development of software technology in recent years.
19th Chapter 20 years of human-month mythology
After the 20 anniversary of the first edition of the People's Month myth, there has been a great change in the field of computer technology, and the Myth of Man and the moon has far-reaching influence, and many of the views in the first edition are still often talked about and quoted, some of which are still mantras by software developers. Based on the current development of software engineering, the author re-combs the core viewpoints in the first edition, emphasizes the concept integrity, re-evaluates the second system effect, reflects on the limitations of waterfall model, and unifies the view of the first edition, the author comments on the development of graphic desktop system, information hiding, object-oriented high-level language and other technologies. and important achievements in the field of software engineering in recent years.
People's Month myth reading