建立试点非常简单,只需要遵循下面的步骤就可以了:
-
组建一个团队。
-
确定你想要创建试点的项目。
-
完整地实现软件的一个小部分。
-
评定你下一步想做什么。
-
评估可以改进的方面并付诸行动。
-
重复步骤3到5直到达到目标。
接下来我们要介绍的试点项目的例子可以供你参考:
一个位于俄亥俄州的金融组织拥有为不同行业和客户服务的共同基金。大多数客户都通过在线的门户软件管理自己的 账户。其中一位来自共同基金部门的副总裁拥有一部智能手机,一直以来他都使用一些手机应用软件。他想知道是否能够让他的客户通过智能手 机软件,对自己的基金进行大部分的管理,这对于客户来说是十分有用的。他认为,这样一款软件能够使现有的客户进行更多交易。如果能够在竞争对手发布同样的软件前占得先机,就有可能吸引更多客户。
组建团队:
项目通过审批以后,这位副总裁的首要任务就是要在试点项目经理的帮助下组建团队。他们的第一个决定:团队的成员应该来自IT部门内部,而不是外面请来的承包商。接下来他们开 始评估谁适合参与该试点项目。他们认为,如果招募水平不高的工程师,他们会发现这些工程师的能力并不足以开发出增量式软件。尽管这比在使用瀑布式12个月 以后才发现要好多了,但是并不足以实现试点项目的目标;如果招募最好的工程师,虽然他们能够开发出增量式软件,但是并不足以说明经验型流程的好处,因为无 论在任何环境中这些优秀的工程师总是能够找到成功的方法。因此,为了能让试点项目具有普遍性,他们决定从IT组织中挑选满足以下条件的工程师:
-
懂得如何运用试点项目中的技术进行软件开发。
-
作为整体,拥有开发完整软件模块的所有必需技术。
-
对迭代式软件开发有一些了解。至少有一位工程师拥有经验型流程的软件开发经验,能够指导其他团队成员。
-
自愿参与项目。
-
充满热情。
确定想要创建试点的项目:
这位副总裁希望借此机会看看经验型软件开发流程是否能够帮助他们快速地开发软件。团队成员之间花了一天时间互相熟悉,然后他们开始讨论这款软件可能会是什么 样子的,并初步选择了一款用户界面的外观。接下来,他们对软件的安全性、性能、稳定性等需求进行了评估,然后记录下软件完成时可能会有的功能,以及他们觉得能够在3个月内完成的部分。
团队得出的结论是:如果要知道项目是否可行,他们就必须在一个迭代(一个月)之内找到以下问题的答案:
-
团队能够使用这种技术开发软件吗?
-
这款软件能够在绕开原有在线软件界面的前提下,有效地连接到各个功能上吗?
-
这款软件大体上应该是怎么样的?
完整地实现软件的一个小部分:
在确定软件应该是什么样子的以后,下一步就是计划如何让团队把设计变成现实。
团队决定他们应该暂时停下手上的工作,检查他们每天的工作进展得如何。他们会对已经完成的任务进行评估,也会讨论遇到的问题,然后他们再决定第二天要做的最有价值的工作是什么。
随着时间的推移,团队成员之间磨合得越来越好,就像拼图里的小片一样紧密地结合在一起。终于,他们将软件通过智能手机的系统连接到了门户软件,确定 了软件之间的通信协议,找到了如何调用门户的登录功能。副总裁和试点经理提醒他们,软件必须要具有良好的安全性和稳定性。于是,团队制定了相关测试对安全性和稳定性进行了评估,然后为满足这些需求对软件进行了修改。
评定下一步想做什么:
在第一个迭代结束时,团队已经完成了软件的部分功能。任何人都可以下载这款软件到他们的智能手机上,当他们运行软件(这个时候软件会连接到门户软件上)的 时候他们会看到跟门户软件相同的登录界面。到目前为止,这款软件运行稳定,并且满足了所有需求。由于良好的代码质量,团队能够稳定并安全地对软件进行加 强。尽管团队成员希望能够在登录界面开发出更多功能,但是他们仍然对现有的成果感到高兴,而副总裁也不例外。
评估可以改进的方面并付诸行动:
试点经理提议团队举行一次会议,讨论这次迭代进行得怎么样。他希望团队成员可以坦诚地表达他们的感受,以及提出怎样才能做得更好的意见。以下这些内容有可能在迭代中发生,需要团队进行讨论:
-
开发的功能太少了。
-
交付的功能与实际需求差距太大。
-
团队成员可能在迭代中感到不知所措。
-
团队成员之间完全无法一起工作。
根据讨论的结果,试点经理要求团队成员提出一些建议,在接下来的迭代中他们应该如何改变才能提高工作效率。
一个试点项目能够为你带来一样甚至是两样有价值的东西:第一样是对你的组织的迭代式或者增量式开发流程针的适用性评估,第二样是在这个过程中开发并从中获取价值的软件。
这项评估并不局限于经验型流程的可行性,因为其已经不言而喻了。问题的关键是,经验型流程在你的组织里是否可行?随着一个接一个的迭代,你可以观察到团队 工作得如何,他们的生产效率提高了多少,他们在一个迭代里可以创造多少价值。你还可以了解到你的组织及其开人员对迭代增量式开发的适应程度。我们能够了解 开发人员的技术水平,他们掌握的技术是否足以在一个迭代内开发出有价值的东西。我们还可以找出他们是否能够以团队的方式协同工作并创造价值,是否会被挑战压垮。