读《人月神话》有感

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/RobertChenGuangzhi/article/details/52368423

由于有一些重要的事情,我最近好久没在CSDN上面写博文了。最近,终于忙完了那个重要的事情,中间抓住了几天的空闲时间,得以静下心来认认真真的读了Frederick P.Brooks. Jr.的《人月神话》,封面如下:
人月神话

这是一本很经典的书,在我9年前读硕士研究生的时候即已知道。3,4年前的时候我读过该书的英文原版,有一种囫囵吞枣的感觉。现在发现师弟的座位上面有一本中文版,特地读一读,再感受下这本书的经典之处。

这本书的作者具有丰富的软件开发经验和软件项目管理经验,是对他自己一线软件开发经验的总结。虽然作者声称自己没从事过大型的软件管理,但他在涉及到这一点时也征求了相关人员的意见。这是一本关于软件项目管理和一些开发注意事项的书。书中有作者对软件开发进度、沟通交流、组织架构、软件管理、软件工具、开发文档、领导方法等等方面的独到而深刻的见解,这本30多年首次初步的书籍,其中的许多观点在现在仍然有用。例如,书中提出的没有银弹(No Silver Bullet)。读了之后不得不为作者深刻而独到的分析折服,显然作者是一个非常专业的软件从业人员。

读了该书后,当然会对软件从业人员,例如,软件项目经理、软件项目技术主管、程序员等有很大的帮助,避免走入人员神话的陷阱—增加人员并不能简单地加快项目的开发速度。因为它会增加项目的中断时间、新人的培训时间、及沟通交流的时间。我最佩服的是作者对新出现的OO编程方面及OO编程语言的分析:

面向对象在整个开发周期中都得到了应用,但真正的收益只有在后续的开发、扩展和维护活动中才能体现出来。

我学OO编程语言的时候,仅仅认为它比较时髦,比较新就开始学它,而没有深入地思考它背后的优缺点和应用领域。所以,有时候我们学东西的时候要深入思考,才能让我们对领域中事情有个清晰的认识。软件工程属于工程学的范畴,却比任何其他工程都复杂。比如,汽车工程,一辆设计好的汽车卖出去后,后期的维护的工作量是很少的,功能的增加是违反交通法的;而软件工程不同,后期的维护占了很大一部分工作量。更进一步,软件的通用不强,不同的领域有不同的需求,甚至同一领域产生的需求也不同,这就造成了软件开发方面的复杂性。这在本书的《没有银弹》章节中阐述的很清楚。虽然本书对软件工程领域的细节没怎么讲解,但却对软件开发的管理、陷阱等方面做详尽独到的阐述,是一本经典的书籍。

软件工程方面的书籍很多,但我认为,本书所起的作用是最大的。

猜你喜欢

转载自blog.csdn.net/RobertChenGuangzhi/article/details/52368423