文/Payson Hall 译/赵克琛
在当今快节奏的工作环境中,软件开发人员正面临着一种痛苦的两难境地:他们需要应付加速软件开发进程的持续压力,这种对速度的要求会导致沟通失败;同时还要面对由此带来的项目和系统开发的困难。由于业务需求不会在短期内改变,所以快速开发项目经理必须加倍努力地进行有效和高效的沟通。
在某些情况下,快速开发表示一系列的特殊软件工程实践,其目的在于正确选择采用缩小范围和增加资源以减少开发时间的方法,此类方法包括极限编程(XP),应用程序快速开发(RAD)和快速原型法等。在另外的情况下,快速开发是用来推销缩短软件开发周期的工具、新方法或研讨会的流行用语。无论你认同哪种定义,当项目团队走捷径并且试图决定何处让步以期完成紧张的计划时,进度压力会导致灾难发生。
“当我听到快速开发的时候,我立即想到,开发团队希望通过忽略掉关键步骤的方法来简化项目法则。”戴夫·弗格森如是说,他是美国加州El Dorado Hills地区的DST Output公司电子产品开发及实施部门的副总裁。他们公司的开发工作着重强调于软件工程和项目管理。
在被问及分享一些快速开发的名言时,丹麦独立项目管理咨询师本特·埃泽森引用了罗马皇帝奥古斯塔斯的话:“Festina lente”。此句拉丁文的意思是“从容赶急”。关键是避免恐慌和由此引起的混乱。这需要在项目开始时花时间建立健康的习惯。
紧张的时间限制会遏制沟通。英国伦敦Sapient Corp公司的技术总监格雷厄姆·奥克斯建议:“快速开发的沟通问题与其他方法一样存在,但是犯错误的空间更少,而且有很大的机会使事情在一个星期内失去控制。”
奥克斯指出,项目团队受到压力时会不合时宜地牺牲流程和交付物来换取速度。他说:“按需要适当地调整流程,但不要因为时间原因而单纯抛弃评审和其他质量保证流程。因为缺陷同样浪费时间。”
谨慎地交接
在用户、获取需求的分析师、设计师和解释实现需求的开发人员之间的交接过程中,信息会频繁地丢失。“获取需求时要全面,并且要保证用户参与到设计评审里。”马代尔·霍尔说,他是美国加州萨克拉门托市Catalysis集团公司的咨询项目经理。
专业的开发流程受益于客户与开发人员之间的良好沟通。美国北卡来罗纳州达拉漠市Pugh-Killeen Associates公司的软件顾问肯·皮尤指出:“要使用极限编程法的话,客户必须在开发现场,这样在需要的时候,客户会解释需求的细节。如果技术问题与实现一个特殊需求相关,客户和开发人员会一起权衡以找到一个解决方案。”
很不幸的是,许多项目发起人并不理解这项规则和成功执行这些过程所需的资源许诺。使用极限编程来构建系统代价不菲,但如果执行得当,它可以缩短开发时间。邀请一些知识渊博的客户成为开发团队的组成部分以促进沟通的做法会使大部分项目预算超支,但结果是可以预测的。
美国科罗拉多州恩格尔伍德市govONE Solutions公司的产品交付部门总监雷恩·汤普森认为:“许多快速开发方法通过隔离开发团队来提高速度。但问题在于“成功”的定义。如果成功是指在规定的时间内交付系统产品,那许多团队或许是成功的。如果成功是指交付一个可用的系统产品,那些成功可能变成最多是瑕瑜互现。”
汤普森建议,在团队上下建立公共的视角是异常重要的。“在长期的项目里,有必要保持成员的士气高昂。在快速项目里,这有两个目的:其一,当团队在恶劣环境下长时间工作时维持他们的士气;其二,有效地确保团队向着公认的项目结尾前进。团队认识到这些视角有助于他们理解他们的角色和分歧所在。”
应用程序快速开发法在需求不明确
项目经理胜任力免费测评PMQ上线啦!快来测测你排多少名吧~
http://www.leadge.com/pmqhd/index.html