敏捷项目管理的开发架构设计方法论
2019-12-12
来源:东方瑞通华南PMP分享汇 伯牙思齐
无论是Zachman还是TOGAF更多的是上到战略下到运营的一体化的通盘考虑,其中不乏设计管控和过程文档的细节要求。随着移动互联网对传统行业的冲击,软件业越来越多的人认同小步快走不断试错的设计和开发理念。一个互联网公司针对设计过程的口号是“打造精品、广种薄收、快速试错”,由此可见以快速迭代模式为代表的敏捷开发的架构设计也是需要我们特别理解和关注的。
敏捷开发强调个体交互、客户合作和快速响应变化,不太强调面面俱到的文档、循规蹈矩的计划和过程控制。敏捷开发是通过尽早地、持续的交付有价值的软件来达成客户的满意度。软件的交付是采取迭代的方式,每次交付的间隔可以从几个星期到几个月。在整个项目开发期间,业务需求人员和开发人员必须天天都在一起工作。通过每天站立会、反思会和面对面的交谈等方式开展有效沟通。可以工作的软件是首选的进度度量标准。
迭代的需要来自于软件的不确定原则(UncertainlyPrinciple),不确定性主要来自动态的需求变化,我们需要迭代地迎接需求变更的挑战。著名的软件工程领域的专家和美国两院的院士布鲁克斯(Brooks)就有一个著名的论断,那就是软件开发中“NoSilverBullet(没有银弹)”,他还在美国的期刊上对迭代开发的实践和效果上提出了肯定意见。
一个实用的敏捷需求收集技巧是用纸、笔、简易便签(StickyNotes)等在墙上做出软件界面的原型以及相关的导航模型。比较通用的导航模型的展示方式是UML的状态图。对于需求或者架构设计,另一个快速并支持协作的技术是团队轮流编写(RotationWriting)。N个人围坐成一个圈,每人有一台笔记本电脑。每过五分钟或十分钟,他们依据最近的主题(需求或任务)写下一些注释。然后,他们停下来,将自己的电脑传递给邻座的人,这样每个人轮流操作一台电脑。每个人从审核不熟悉的材料开始,然后,从他们看到的新思路中获取灵感,并强化它。轮流编写工作一直持续到每个人都在每一台电脑上工作过。会议结束后,安排一个人汇总所有的文档,并且将这些思路通过PMP所说的亲和图分组与合并;然后,在第二次会议上,整个团队将共同审核和精炼这些思路。
在敏捷开发中弱化了架构设计环节,软件开发人员可以通过需求分析文档来开始代码编写。那如何保证软件开发的代码质量呢?敏捷开发强调“团队协作”精神,并发明了“松结对编程”的方法。该方法提供了一种有别于两个人同时编程的“结对编程”。具体实践包括:软件开发高手与开发新手一起估算开发任务,在发现由于自身开发能力造成的工作量预测的分歧后,可以约定某个时间点软件开发高手协助软件开发新手,以极短的时间解决新手遇到的困难。并每天执行代码审查,确保每一行代码的质量。由于软件开发高手相对于开发新手更懂业务和技术,在这种情况下软件开发高手就担当了我们传统开发中的架构设计职能。由此可见,敏捷开发的方案设计相对于传统的架构设计更偏向于设计的自组织,通过开发人员自我的不断修炼来达成的。敏捷开发更加针对现在比较流行的(移动)互联网软件,通过激励开发个体产生好的产品。
敏捷开发不主张过多的文档书写,但不是没有文档。有如下3中文档可以认为是在敏捷开发中是必需的,包括产品订单(ProductBacklog)、冲刺订单(SprintBacklog)和燃尽图(BurnDownChart)。
产品订单类似于传统开发项目中的需求和概要设计文档。产品订单中包括对软件功能性需求和非功能性需求的描述,并将需求拆解成一个个的订单项(BacklogItem)。产品订单是开放的,产品负责人可以随时根据用户需求的变化进行相应的更新。产品订单的每个订单项都包括初略的估算,通常以天为单位。这个估算可以帮助产品负责人判断进度并调整开发任务的优先级。
冲刺订单类似于传统开发项目中的详细设计文档。冲刺订单描述了在一个迭代或一次冲刺周期内开发团队如何实现一个特定订单项的详细信息。在这里原先产品订单中的订单项被分解为以小时为单位的冲刺订单项(SprintBacklogItem),每个冲刺订单项的预计完成周期不得超过16个小时。超过16个小时的冲刺订单项必须被进一步分解直到小于16个小时为止。值得一提的是,冲刺订单上的任务不会被硬性分配,而是由团队成员主动认领的,这是敏捷开发中提倡团队自我管理的一种体现。
燃尽图类似于传统开发项目中的项目进度表。燃尽图的横坐标为冲刺周期的天数,纵坐标为剩余小时数。若冲刺周期为22个工作日(一个自然月),开发团队的规模为7人,那么理想情况下冲刺周期第n天的剩余小时数为(22-n)天x7人x8小时/天。开发团队成员通过对比实际剩余小时数和理想剩余小时数会对项目的进度有一个直观的了解。
敏捷开发的一个重要分支体系是Scrum,Scrum旨在寻求充分发挥面向对象和构件技术的开发方法,是对迭代式面向对象方法的改进,名称来自英式橄榄球比赛中的场景,在比赛中每个队员都应时刻保持对场上全局的判断,然后通过集体行动,奋力实现同一目标——胜利)。
免责声明:
1、IT项目管理界发布的所有资讯与文章是出于为业界传递更多信息之目的,并不意味着赞同其观点或证实其描述。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请浏览者仅作参考,并请自行核实相关内容。
2、本站部分内容转载于其他网站和媒体,版权归原作者或原发布媒体所有。如文章涉及版权等问题,请联系本站,我们将在两个工作日内进行删除或修改处理。敬请谅解!
-
延伸阅读:
-