The Mythical Man-Month

耳闻良久,终于有时间遍历了一遍这本30多年前的软件工程的著作/随笔集(初版1975,再版1982,1995 20周年版加入了同样经典的 No Silver Bullet 一节)。惊讶于其中绝大多数的论点仍能适用于现今的开发方式(要知道当时基本还是汇编/批处理时代),同时惊异于其中指出的某些已被公认的错误仍会时常被重犯。

本书最著名的观点就是 人力/工时 的不可交换性,特别是在项目末期。培训和额外的交流(还有之后重新划分工作)的成本会远远超过新加入的人手带来的收益。
还有同样著名的第二系统效应这一概念。设计者设计的第二个系统往往会趋向于过度设计。
其它的一些同样富有启发性的提议包括:
1. 精干团队的组织构造;对于大型系统,大型团队的必要性;
2. 对说明书/规格书/文档的极端重视,这对简化交流非常必要;
3. 提高交流效率并能适应变化的组织构造;
4. 设计新系统时值得参考的实践方法;
5. 确实的计划,精确/易衡量的milestone对于计划的必要性。

同时,30年来,软件工程的基础虽然没有多少质变,但是一定程度的量变还是会使书中的某些提议弱化:
1. 首先这是汇编时代,而低级语言到高级语言在开发工具上是一个层级的跨越,所以对于今天有些工程时间/比重方面的估计值已经有些不再适用了;
2. 其次今天多数软件已经不需要太在意程序本身的存储空间方面的问题(但身边仍能见到做的太过的例子);
3. 还有就是书中一般倾向于古典的瀑布式开发模型,现今已经有不少更流行的开发模型了。

虽然书中的一些观点随着时间的流逝有一定程度的弱化,但作为软件工程管理来说这本书至少可以做为一份检查清单——你可以在清晰的检讨之后决定某一提议不适用于现在的情况,但不应该不加思考直接置之不理。

Advertisements
This entry was posted in Book, Computer and Internet, Science. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s