您的位置:首页 > 其它

控制变化——《人月神话》书评

2014-11-17 19:35 197 查看
中国科学技术大学软件学院 黄志恒 原创作品转载请注明出处

前几天终于把《人月神话》看完了,想想作者写这本书的时候还是上世纪(C++还没有诞生),顿时觉得作者好厉害。吹捧作者和这本书就这一句吧,下面谈谈我对《人月神话》的理解,以及我对《人月神话》中探讨的主要问题的思考。

《人月神话》的核心问题是如何将大型软件工程项目合理高效的构建出来。书中指出,当软件项目的代码超过一定的量级之后,添加人手并不会使工程进度加快,反而会使工程进度变慢。而且还极有可能造成工程项目时间超标,项目经费超标,甚至导致软件项目流产。作者从自己的项目实际经验中总结出来了一些使大型软件项目的构建变得顺利可行的一些方法。简单的来讲就是层层分级,文档严谨。

层层分级是说大型软件项目要有一下几个层次的分级,顶层设计师,他们设计这套软件并保证这个软件的一致性。中层经理,他们保证将顶层设计师的设计传达到自己的分管部分中。基层实现人员,他们来编写软件代码。这一流程讲究的是层层递进,不垮层交流。

文档严谨是说在做这个大型软件项目的时候,要对实施的各个步骤都做到详细的文档。这样子做可以保证在编写代码时有章可循,可以保证在修改项目时各个部分能够相互沟通配合。

如果再抽象一点,我觉得作者的这些方法都是在控制变化。如果一个软件项目只有几千行代码,这本书根本没有什么意义。当软件项目代码超过了一定量级之后,随之而来的就是一些质的变化。这些变化有,代码层次变得杂乱无章,增加人手不在能加快软件项目,越是增加人手就越使得项目变得糟糕,每天浪费一点时间最后使得整个项目落后一年等等。而我们要做的就是控制这些变化。通过上述手段,使得项目在变得庞大的时候我们依然能够处理这些变化。然后使得代码层次清晰,项目进度得到控制,最后使得项目能够顺利完成。

在书中,作者提出解决大规模软件项目顺利构建问题的一个重要方法是编写大量的文档,通过文档来保证项目的一致性和清晰的结构层次。这导致软件项目要产生大量的文档,并且需要大量的人力来维护这些文档。虽然作者通过使用胶片等方法来简洁存储文档的方法,但是还是不可避免的产生大量的文档。结合现在的实际,我们在做软件时也要编写很多的文档,可能和大型软件项目的文档比起来是小巫见大巫。但是仍然有很多文档等着我们来编写。

不可否认,这些文档在一些项目中是必要的。没有这些文档,大型软件项目根本无法顺利构建。但是,现在软件行业有了新的趋势,特别是互联网时代的浪潮使得敏捷开发这种趋势进一步向前发展。我们再也不能用1年,2年这样的时间来开发一款软件了。现在的软件开发讲究的是一个时间,早一步推出产品就能早一步占领市场。高速迭代的开发要求我们把主要精力放在产品的开发上,而不是文档的撰写上。所以文档小而精是趋势。实现小而精的前提是目前大多数软件开发不在是一个浩大的工程,而是一个专注某一需求的小型或中型软件。如果要开发一个国家电网级的软件项目,详细文档也还是必须的。

书中也提到了时间的控制。不注重时间管理,今天拖半天,明天停一天最终会导致软件项目延期很长时间,有时会是一年。项目的延期必然会导致项目经费的超标。今天的敏捷开发很好的解决了这一问题,每天的站立会议会让每个人都清楚自己的进度与项目的进度。能够很好的避免时间的超标。

最后,作者在若干年后重新回顾这本《人月神话》中指出,面向对象的开发方法就是那颗银弹。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: