小团队的敏捷开发-第三章
尽管水晶项目管理体系并不要求读者掌握或者运用某些特定的策略或方法,但倘若在启动阶段能熟识一套有效的方法体系则是件有利的事情,以下几个是具有广泛意义且广为现代敏捷开发团队所采用的策略与方法。
以下是常用的策略:
策略一:360度全方位考察——项目承包活动的一部分
策略二:早期胜利——一个项目管理的策略
策略一:灵活程序框架——一个体系机构/项目管理的策略
策略一:360度全方位考察。
启动一个新项目必须从以下几个方面进行取样
1.商业价值
2.用户需求
3.领域模型
4.技术计划
5.项目计划
6.团队结构
7.方法体系或工作惯例
策略二:早期胜利。
胜利是一种能够使得团队更加团结以及成员更加自信的力量。当一个团队急需这样的力量的时候,我们可以在下面启动的初期帮助团队获得这样的成功。对于一个软件启动项目而言,编写一组可运行的、经测试的代码就是一种小小的胜利。
策略三:灵活程序框架
一个灵活的程序框架是指执行小型端对端功能的一小部分系统运行。它无需要利用系统的最终架构,但应将这些架构的主要部分连接起来。这样架构以及系统功能便能同时改进。
策略四:增量重建
团队利用增量开发对系统的基础结构、系统架构以及系统的最终功能性进行修改。
策略五:信息传播器
信息传播器是一种信息公告,这种公告通常放置在成员工作或路过时能看得见的地方。有了它,人们无需向他人询问便可获得他们所要关心的读者方面的信息。这意味着更多的交流,更少的干扰。
一个好的信息传播器应该是:
1.大而明显,容易被兴趣的观察者发现
2.明晰易懂
3.定期进行更换,以保证其具有查阅的价值
4.容易及时进行更新
以下是一些常用的方法:
方法一:方法体系建成法,从以往的经验中收集信息,并且利用这些信息制定出项目启动期的工作惯例。
方法二:反思研讨会,一种为反思改进特设的研讨会形式。
方法三:闪电式计划,强调的是它“合作的本质”,一种快速的、有效的在团队内进行日常信息传递的方法。
方法四:特尔菲估计,它是最初对整体项目进行估计的一种方法。
方法五:每日起立会议,是一种快速、有效的在团队内进行日常信息传递的方法。
方法六:实质性的交互设计,一种快速的、以应用为中心的设计方法。
方法七:流程微观模型,一种学习方法。
方法八:肩并肩编程,一种比结对编程稍微宽松,可供选择的编程方法。
方法九:燃烧图表,一种实用的项目计划以及项目进度报告方法,特别适用于信息传播器。
方法一:方法体系建成法
建立启动方法体系的两个步骤:
1.项目采访
2.方法体系建成研讨会 (从第一个步骤得来的信息可服务于第二个步骤)
方法二:反思研讨会
团队应当周期性地将工作暂停下来一个小时——当然是在每次交付完成之后——对他们的工作惯例进行反思。
主要为以下三个方面:
1.我们应该坚持什么
2.我们在哪些方面碰到了问题
3.在下一个工作周期中我们想要尝试什么
方法三:闪电式计划
计划会议是执行发起人、专家用户以及开发人员能够聚集在一起进行项目规划以及制定项目开发周期的难得机会。
方法四:利用专门排列技术的特尔菲估计
在项目开展的流程中,我周期性地对项目的进展与我们的估计结果进行对比。长期来说,项目的进展基本与原计划是保持一致的,只是在前期进展要慢于计划一些而后期要快于计划一些。
方法五:每日起立会议
每日起立会议是一种交换工作情况、进展以及问题信息的简短会议。此种会议的关键在于“简短”。举行这种会议不是为了讨论问题,而是为了确定问题。每个人必须需要回答以下三个问题:
1.我昨天都做了什么?
2.我今天计划做什么?
3.我有什么收获?
方法六:实质性交互设计
主要包括以下方面
1.实质性交互设计(研讨会)
2.设计用户界面(UI)
3.可用性调查(设计期间)
4.对系统个性的质量评价测试
方法七:流程微观模型
任何一种新的工作流程都是陌生而又复杂的。流程持续的时间越长,新团队的成员就要花上越多的时间来理解流程各个不同部分是如何相互适应的。我们可以使用“流程微观模型”这一方法,通过缩短流程的时间来加快我们对流程的了解。
方法八:肩并肩编程
在进行肩并肩变成时,两名工作人员必须坐的很近才容易看到对方的屏幕,但他们还必须同时进行各个的工作。这是在编程环境下对渗透式交流的一种应用。
方法九:燃烧图表
近年来燃烧图表成为了一种普遍为人们接受的项目进展表示方法。它非常简单却令人难以置信。他们向人们展示项目中应用的策略、取得的进展与原先的预测的相比结果,以及为人们讨论如何继续开展工作提供了条件,包括是否应该缩短或者延长时间表这一难点讨论。