在软件开发管理领域的研讨会中时常会提到 “如何开始一个项目”。这些问题使我感到非常诧异,并促使我对此进行思考。至今为止,我从事软件开发和管理工作将近27个年头了。因此,如何开始一个项目这个问题,起先始我感到有些不可思议——每一个人都应该知道从哪里开始:你应该在项目的启动阶段开始。但是,这个问题并不像看起来这么简单。对灵活的软件项目管理来说,这是一个很大的问题。因为许多相关的课本和文章都假定读者是有经验的开发者,或者是开发经理。
我想到了一个可供选择的方法。独立于任何方法的软件开发可以通过构建一个“架构”开始。这种方式的开始点可以参看软件工程学院的CMMI的相关资料。这些资料可以在http://www.sei.cmu.edu/cmmi/ 找到。我知道这听起来似乎并不灵活,但是事实上并非如此。就象那些拙劣的执行项目管理知识体系的公司,那些绝对没有在商业运作上尝试CMMI的企业对CMMI的拙劣应用同样是非常的普遍。软件开发能力成熟集成度中从来没有标明如何在实践领域应用。在实际中应该采用灵活的方法。在同一个网站上对此有所描述。http://www.sei.cmu.edu/cmm/slides/agile.pdf就是一个开始点。
如果你有相关经验,你就可以对交付软件所有类型的方法进行描述(使用软件能力成熟度集成模型所涉及的阶段)。我并不建议你尝试软件能力成熟度集成模型,也不会建议任何没有将他们对CMMI的需求做过充分评估的企业使用软件能力成熟度集成模型。但是过程改进——持续的过程改进——对软件开发公司有着巨大的意义(以及几乎对所有的其他公司)。
我的第二个选择是沃克•罗伊斯的软件管理:统一架构。同样统一架构看起来也并不能称之为灵活,但是事实同样并非如此。,海斯密斯、考克博恩各自的理论也可以使用。
另外一个起始点是对你正在开发的软件属何种类进行提问并做出回答:实时过程控制,银行卡结算,还是企业资源计划?不同的软件产品有不同的背景,这需要在实际的开发过程中量体裁衣。通过定义这个领域,对软件交付过程的各个组成部分以及外部的和内部的驱动力有了充分的理解之后,“如何开始”这个问题就有可能得以解答。
另外要说的是:现在有几百本关于“软件管理” 的书,但是并不是所有的书都有用。实际上,从我的经验来说,根本就没有几本有实际的意义。这些书无法令人满意的主要原因是他们的方法都是标准化和理想化的。这意味着他们仅仅是管理软件开发过程的一系列规则。有时这些叙述规则的书看起来是又用的,但是管理软件开发项目并不仅是这样就够了。因此我推荐斯蒂夫•麦克奈尔所著的书。
作者简介:
格伦•爱尔曼是CH2M HILL通讯公司信息和网络服务部项目管理的副主席。在此之前格伦是Niwot Ridge顾问公司的首席顾问,在那里他专门主管企业应用集成项目。
在CH2M HILL,格伦为洛克环境科技网提供服务。这项工作包括为软件开发,服务器和网络运行,下层构造的安装和移除,以及通信和无线设备提供项目管理服务。格伦•爱尔曼的电子邮件地址是:<galleman@niwotridge.com>
|