人月神话

先来讲一讲“睡前”想法,也许会有所偏离主题,请见谅。初次面对“人月神话”这个标题的时候,就不禁从中感受到了一种差距,一种关于国内与国外(西方)计算机软件相关的文化差距。就最近所接触到的计算机相关知识来看,我觉文艺复兴的意义是非同凡响的,是深远的,最近接触到的许多关于计算机、软件程序相关的书籍,尽管还未曾读过,但名字已经给我留下了深刻的印象。例如,《人件》、《大教堂与集市》、《黑客与画家》、《人月神话》等等。也许我监视太过于片面,但我还是想说尽管国内程序开发人员、管理人员在技术层面上与国外同行差距并不是很大,甚至在某些方面更加优秀,然而,文化层面却是差了一大截,缺少了灵性,缺少了思维的敢于跳跃。追根溯源,我认为是西方的历史、文艺复兴、文化、哲学给西方的计算机领域注入了太多有意味的,有营养的东西。正如翻开《软件工程》这本厚重的书的第一页,看到序章的第一句话“文艺复兴以降”。

回顾正题,《人月神话》究竟是怎样的一本书呢。你可以把它当作你以后作为一名程序开发者、产品经理或者是任何与计算机相关开发有关的职位的职业手册,因为你可以从中了解到作为一名开发人员,你讲面临怎样的上司,面临怎样的工作境遇,并且你可以从中懂得作为一名开发人员的自律与抗争(抗争所面临的难题、危机);同时你也可以从中了解到作为一名产品经理你将如何面对团队、面对堆积如山的难题,以及你那“不听话”的手下。

然而,你又可以把它看作一本关于哲学的书籍,一本仅仅是用了大量计算机职场语言、管理语言描述的探讨哲学难题的书籍。在书中,无时无刻不充满着具有哲学意味的探讨,简明却引人入胜。对于我说,这本书就是后者。正如上面所讲的“睡前”想法一样,在软件工程这门课程中,说到了这本书《人月神话》,再看看每章的标题:焦油坑、人月神话、贵族专制、民主政治和系统设计…没有银弹…注定,这本书将不是一本因为计算机软件开发需求的快餐阅读产物,而是一本融合了思想的,从真正具有开发管理意义的书籍。看过之后,的确如此,它除去了大量晦涩难懂的,亦或是平淡无味的专业词汇,更像是一本用简明语言阐述在计算机软件开发过程中的文学、哲学问题。对于每章的开头,作者总是以某件贴近生活或者更贴近现象而非抽象的事例来抓住我的阅读胃口。

讲完了一些玄学的东西以后,让我们再来看看一些更加实质性的东西。《人月神话》所站立的角度,很显然是产品经理的方面,或者笼统的说应该是只要是相关软件开发管理的。但是针对程序开发者同样是有作用的,作为程序开发者你懂得如何规范自身开发行为,因为你已经站立在项目经理的角度思考过了,就如同中学老师所讲的“站在出题人的角度,解题才会得心应手”。以上就是我从外在角度来看待这本书的。

在从内容上来看,“焦油坑”预示着从大项目、编程系统产品开发是有多么棘手,它远远超过了所谓的针对一个项目的简简单单的规划。“他们相互纠缠在一起的时候,团队的行动就会变得越来越慢”以及,最重要的一点是,编程系统产品开发是独立小程序的九倍,从这点完全可以印证我上面所说的超过了一个简单的规划,因为很多东西在不经意间,就在就在纠缠这你的团队,你的进度。

而在“人月神话”又向我们表明,“人月”这一估算暗示了工作量与工作进度是可以互换的,然而这种互换有时却又是致命的,显然,15人月的项目,1人15月与5人3月是完完全全不可对等的。再来说一说“没有银弹”,这一章是我最喜欢的章节。作者把一种能将开发效率提高的方法与软件开发分别比作银弹和人狼,又让我心中想起了在前文所说的,一种与西方艺术、西方文化结合的描述。(请原谅我用大把的修辞,譬如“西方艺术”、“西方文化”来结合程序开发管理,因为在我看来这其中定然有着意料之外又在情理之中的联系)回归“没有银弹”,作者在此章预示了“银弹”在未来一段时间内是不可能出现的,尽管技术在不断的革新,但是管理的革新将会是困难的。看完这章以后,我最大的感受就是人不是机器,尽管科技不断革新,编程技术在不断革新,算法在不断革新,但这些终究只是机器方面。一个大型项目,是人机结合的,针对于计算机的、软件的管理是固定的,是有模式,是能够加以限制的。然而对于人来说,却是个“纠缠”的,“不可控”的。

焦油坑依旧存在。