diff --git a/docs/.vitepress/config.js b/docs/.vitepress/config.js index 328a124..55fae75 100644 --- a/docs/.vitepress/config.js +++ b/docs/.vitepress/config.js @@ -225,6 +225,7 @@ export default { { text: "杂谈", items: [ + {text: "软件工程圣经《人月神话》到底讲了什么", link: "/杂谈/软件工程圣经《人月神话》到底讲了什么"}, {text: "项目master心得体会", link: "/杂谈/项目master心得体会"}, {text: "分享一下我Mac使用的软件", link: "/杂谈/分享一下我Mac使用的软件"}, {text: "Stable Diffusion信息备忘录", link: "/杂谈/Stable Diffusion信息备忘录"}, diff --git "a/docs/\346\235\202\350\260\210/\350\275\257\344\273\266\345\267\245\347\250\213\345\234\243\347\273\217\343\200\212\344\272\272\346\234\210\347\245\236\350\257\235\343\200\213\345\210\260\345\272\225\350\256\262\344\272\206\344\273\200\344\271\210.md" "b/docs/\346\235\202\350\260\210/\350\275\257\344\273\266\345\267\245\347\250\213\345\234\243\347\273\217\343\200\212\344\272\272\346\234\210\347\245\236\350\257\235\343\200\213\345\210\260\345\272\225\350\256\262\344\272\206\344\273\200\344\271\210.md" new file mode 100644 index 0000000..af96e2f --- /dev/null +++ "b/docs/\346\235\202\350\260\210/\350\275\257\344\273\266\345\267\245\347\250\213\345\234\243\347\273\217\343\200\212\344\272\272\346\234\210\347\245\236\350\257\235\343\200\213\345\210\260\345\272\225\350\256\262\344\272\206\344\273\200\344\271\210.md" @@ -0,0 +1,35 @@ +# 软件工程圣经《人月神话》到底讲了什么? + +《人月神话》(The Mythical Man-Month)是由计算机科学家弗雷德里克·布鲁克斯于1975年出版的书籍,它是计算机科学和软件工程领域的经典著作之一。该书探讨了软件项目管理和开发过程中的各种挑战和问题,强调了人力资源管理、沟通和复杂性等方面的重要性。我总结了以下《人月神话》中的主要内容: + +image-20241127201336261 + +**1. 核心观点**: + +弗雷德里克·布鲁克斯强调,软件开发过程中的进度不能仅仅通过增加人力资源来推动,这是因为新加入的成员需要时间来学习和适应项目,同时也会引入更多的沟通成本。这一观点被称为“人月神话”。 + +**2. 布鲁克斯法则**: + +布鲁克斯法则指出,如果一个软件项目已经延期,那么增加人员将导致进一步的延期。这是因为新成员需要时间来学习代码、了解设计,而现有成员必须花费更多的时间来培训和协调。 + +**3. 管理的复杂性**: + +布鲁克斯解释了软件开发中的复杂性,特别是在大型项目中。他提到了“二次系统效应”,即开发人员在设计第二个系统时倾向于过度设计,从而导致系统变得复杂、不稳定且难以实现。 + +**4. 沟通的挑战**: + +书中强调了沟通在软件开发中的关键作用。布鲁克斯认为,随着团队规模的增加,信息的传递和理解变得更加困难。他引入了“外科手术队”概念,强调团队成员之间的紧密合作和沟通,以实现高效的软件开发。 + +**5. 进度监控和控制**: + +布鲁克斯强调了项目进度的监控和控制的重要性。他提倡使用进度报告、问题跟踪和风险管理等工具,以便及时发现并解决问题,确保项目按计划推进。 + +**6. 软件工程方法学**: + +书中讨论了不同的软件开发方法学,包括瀑布模型、原型模型等。布鲁克斯对这些方法的优点和局限性进行了分析,并提出了在不同情况下选择合适方法的建议。 + +**7. 经验教训和建议**: + +布鲁克斯分享了他在IBM OS/360操作系统项目中的经验教训,例如如何处理人员变动、如何应对延期等问题。他提供了一些关于软件开发实践的建议,包括保持简单、避免过度设计等。 + +通过对这些内容的深入探讨,弗雷德里克·布鲁克斯在《人月神话》中提供了关于软件项目管理和开发的深刻见解,为开发人员和管理人员提供了宝贵的经验和思考。 \ No newline at end of file