敏捷提升软件研发管理.doc
敏捷提升软件研发管理 敏捷开发模式开辟了软件开发方法的新空间,这给中国软件企业带来了新开发模式机遇的同时,也同样带来了前所未有的挑战。 世界五大软件开发教父之一的 Matin Fowler 认为,当前只有敏捷的软件开发模式才能够使 IT 跟上业务变化的脚步,只有敏捷的开发模式才能使软件实现快速交付的同时又能成为一个高质量、低成本的软件。 敏捷开发作为一个新的软件开发模式的新名词,其中蕴涵着无限的商机,同时,也是对中国软件企业的一次严峻的考验。对于起步远远滞后于西方的中国软件业而言,各种提高软件开发速度及降低软件开发成本的方式和措施都是值得探讨与借鉴的。笔者认为敏捷开发模式对于中国的软件企业正是一个行之有效的开发方式。 问题缠绕软件开发 软件开发过程中问题多多,这不是新发现。早在上世纪 60 年代,北约 (NATO)就提出了软件危机这一概念。在《人月神话》一书中,软件开发则被喻为让众多史前巨兽痛苦挣扎,却无力摆脱的焦油坑。随着需求和应用 的日趋深入与复杂化,软件开发的难度和遇到的问题以几何级数形式增长,焦油坑也由此变得更深、更大。 复杂程度高、开发周期长、结果无保证,这是软件开发的通病。针对这些问题,人们创造了 N 种方法,并由此产生了软件工程学。而在实际工作过程中,软件开发的多变性和不可控制性,仍可轻易摧垮项目开始时项目组苦心经营的开发体系和方法,无论是业界公认的需求、变更、人员流动,还是各种看起来并不起眼的小事件。 以人为本的敏捷开发 敏捷开发 (Agile Software Development)是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,就如同项目管理中将工作任务及工作目标层层分解一样,把软件项目的构建切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。简言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。 通过上面的定义可以看出,敏捷开发其实借鉴了大量软件工程中的方法。是传统软件开发意义上的改善,而非创新。例如在传统的软件开发中,把设计和构建这两个过程分开进行,设计完成之后,再按照设计构建。 实际上,由于需求在不断变化,因此在软 件开发的过程中,很难把设计和编程完全区分开来。而在敏捷开发中,先搭建一个比较粗的主构建框架,只对用户目前感兴趣的部分详细开发,并很快交付使用