《人月神话》—以人为本

《人月神话》—以人为本

“中国科学技术大学软件学院”王雪静

“原创作品版权所有转载请注明出处”

   《人月神话》几乎是每个软件从业人员的必读书籍,对软件工程有着重大的意义。它的大部分文章在讲述软件工程管理方面的问题,只有较少的部分设计技术问题,虽然这和作者在IBM OS/360的角色有关,但是,对于项目的成功来说,软件项目人员的组织和管理是至关重要的,团队质量是项目成功的巨大因素。

    项目进度落后是软件项目开发中一个经常遇到的问题,《人月神话》详细的分析了在遇到这个问题时许多项目组的解决方法,得出结论:向进度落后的软件项目中添加人手只会使进度更加落后。添加人手的时候,因为这些人之前没有参与这些项目,所以必须要重新进行沟通,沟通的时间又会浪费很多时间,与此同时必须重新进行任务分配,很多任务可能就重复做,重复做产生的进度灾难不言而喻。在项目进度落后的情况下也可能会削减任务,造成的后果可能就是软件产品达不到质量。所以在项目开始时对进度进行合理的安排,排除理想主义是非常重要的。很多进度落后是因为在系统测试环节没有安排充足的时间,系统测试几乎是在项目的最后环节了,为了避免这样的问题,在早期进度策划中就应该为系统测试安排充足的时间。

     当一个软件项目规模很大或者非常紧急,并且需要很多的人力的时候,这个项目必须由很多人来设计,并与此同时在概念上与单个使用人员保持一致。如何组织设计队伍来获得概念完整性?这是《人月神话》关注的主要问题。概念完整性在人月神话中是由架构师来保证的。保持概念完整性,使得项目实际工作被划分成体系结构,设计实现和物理实现,表面看来这可能增加了完成时间,但是这可以使概念完整性得到很大的提高。团队之间的相互交流是决定项目成败的主要因素之一,《人月神话》中用古巴比伦塔形象的展示了缺少交流的团队造成的后果,团队交流可以有很多种方式,如何找到最有效的交流方法要在实践中进行。交流过程中文档是必不可少的,文档使各项计划和决策在整个团队范围内得以交流,对于后续的开发也有十分重要的作用。很多程序员不愿意为设计来书写文档,为设计来书写文档对变更计划组织架构至关重要,在后续变更的过程中,灵活的架构可以使解决变更的有效方案。

    编码只是软件项目任务中的一个部分,虽然很重要,但是绝对不是编码完成了就代表整个任务完成了。编码的效率与使用的语言和操作系统有很大的关系,随着项目规模的增加编码的工作量是成指数倍增长的,所以适当的选择高级语言对编码工作量有决定性的作用。程序的规模预算不仅仅是代码量,还有所占的内存,程序所占的内存空间也是主要开销,但是在内存的花销是物有所值的。数据的表现形式是编程的根本,有经验的程序员可以可以使整个项目的编程效率有质的飞跃。高级语言和交互式编程的广泛应用表明,高级语言不仅提高了生产率还改进了调试,交互式编程提高了生产率。每个软件项目都会有自己的一个标准库,代码模块的重用可以节省很多人力,实际上,类的容易重用和通过继承不但是面向对象技术的一个非常吸引人的地方,它对于开发过程中的编码部分的效率的提高也有决定性的作用。《人月神话》一文中向我们阐述了自上而下的设计的重要性,今天看来这种说法是非常有根据的,现在几乎所有的大型软件项目都采用自上而下的设计,好的自上而下的设计从很多方面避免了BUG,所以才能在软件开发中得到广泛的应用。

    项目的延迟是日积月累的结果,在一个小的延迟出现之后,所有的人都不重视,一天天的积累像滚雪球一样越来越大,漏洞越来越多,所以使项目不能完成或者在制定时间拖延很久才能完成。《人月神话》强调了里程碑的意义,好的里程碑对团队是一项服务,它比老板核实更为重要。里程碑的制定需要仔细分析软件开发的各个阶段,而不是一味的为了制定而制定,让里程碑为项目进度服务是里程碑的目的所在。

    创造力来自于个人,而不是组织架构或者开发过程,项目经理面临的主要问题就是如何设计架构和流程,来提高而不是压制主动性和创造力。《人月神话》阐述的是以人为本的思想。人是整个软件项目中最重要的角色,而不是技术,一个卓越的解决方案是软件项目自始至终追求的,图形界面的使用贯彻了这一思想,图形界面可以使操作更加方便,这也是计算机能够进入千家万户使用的一个原因。《人月神话》还对瀑布模型和增量模型的利弊进行了分析,瀑布模型过于理想化软件的开发过程,它假设项目只经历了一次过程,这显然是错误的。瀑布模型把测试都放在最后,没有在早期检查缺陷,这可能是致命的,进早的解决缺陷,不使开发进度拖延是开发过程中必须遵循的一个原则。增量模型的实例微软开发的操作系统取得的成功证明了增量模型的健壮性。增量模型是把开发过程逐渐的精细,动态的增量添加模块使得系统扩展更加方便。

    《人月神话》之所以是一本传奇经典书籍在于它以实践经验对理论进行分析,提出了明确的解决方案,而不是夸夸其谈。从人的角度出发阐述在软件开发过程遇到的问题,分析人的心理,对于技术方面没有过多的涉及。《人月神话》的作者Brooks博士有着在IBM公司OS/360的项目管理经验,他分析了问题的本质,而不是表面所暴露的问题。读完此书让我更加热爱计算机,对软件开发更感兴趣,同时也对自己在项目中遇到的问题产生了思考。我相信,读者读完此书,会对自己所从事的软件开发行业的前景更加明朗。

 

posted @ 2013-12-21 10:53  telescope1214  阅读(260)  评论(1)    收藏  举报