敏捷开发方法又叫做什么
以前,我分享过一篇文章,名为“探寻软件项目失败的根源”,文中详述了我在房地产信息平台建设过程中遇到的种种难题。那些难题涵盖了需求不明确、需求蔓延、多团队协同挑战、时间紧迫、人员变动频繁、需求变更频繁、沟通不顺畅以及信息传递失真等诸多方面。
在软件开发的旅程中,我们时常会遇到各种挑战。作为产品经理,必须精通各种技能,如同掌握各种武艺。虽然没有机会修炼乾坤大挪移这样的绝世武功,但掌握敏捷软件开发这样的实用技能也是极好的。
在软件工程领域,存在多种软件开发模型,如瀑布模型、快速原型模型等。但在我眼中,敏捷软件开发模型是最具实用价值的。
式软件开发的特点是什么呢?我接触到的多数软件项目都有着一个共同的特点——速度至上。客户往往希望项目能够迅速立项,立马就能拿出成果。
面对公司和客户的高要求,我们有没有应对之策呢?答案是从生产生活中提炼出的高效开发模式——敏捷软件开发。
敏捷开发的核心在于以用户需求进化为导向,采用迭代、循序渐进的方式进行软件开发。在敏捷开发过程中,软件项目分成多个子项目,每个子项目都经过测试,具备可视化、可集成和可运行的特征。通过拆分大型项目为多个相互关联但又独立运行的小项目,从而实现快速开发的目标。
那么,敏捷开发是如何实现的呢?
我们将大型系统拆分为子项目,摒弃传统的先调研、分析需求的流程。以前我们可能会先搞各种调研报告和需求说明书,然后再进行概要设计等一系列流程。这样的周期太长,一旦进度出现问题,就会影响到整个项目流程的各个阶段。
而敏捷方法则是将大系统拆分为一个个子项目和子模块,降低模块间的耦合性,增加其内聚性。这样可以将团队划分为多个小组,并行作业。当一个模块的需求发生变化时,对其他模块的影响也会降到最低,从而有效降低开发难度。
在之前提到的房地产信息平台建设中,我们将系统拆分为自行成交、经纪成交、用户权限管理等模块,再进行需求讨论。需求确定后,各模块分为各个对象,对象间通过公有变量传递信息,尽量减少与外部对象的关联。
为了降低沟通成本,我们团队直接与客户现场沟通,随时交流。这种面对面沟通的方式能第一时间获取需求、解决问题,提高开发效率并保证开发质量。更重要的是,这种方式更容易赢得客户的信任,让客户随时了解项目状态。
在房地产项目中,我们在客户现场办公,定期讨论需求和设计。遇到小问题,团队成员会直接找客户确认。整个项目周期内,需求变化控制得很好。
利用模型与客户沟通,更直观地获取需求,而不是通过大量文档。实际上,大多数人并不喜欢花时间阅读大量文字和参数,而模型则更为直观和立体。这里说的模型不仅包括原型设计、ER图等,还包括用例图、类图等多种图形表达产品的不同维度。