采取什么样的方法来执行精益软件的交付呢?这里,我提出了一系列优先方法来适当转变您的组织,并讨论了支持 IBM Rational的技术。
关于我提出的一系列优先方法,有一个十分重要且值得注意的是,将执行的命令会随着不同的组织机构而变化。例如,每个开发团队为了提供透明度在所有的利益关系者之间需要建立拉力。
在您的组织中开始精益的第一个步骤是从您的最终用户和关键涉众中建立拉力。在组织级别上,意味着选择合适的项目组合来执行。在项目水平上,意味着确保您选择的特性匹配能够产生真正的价值。最后,意味着建立一个高水平的协作来确保上游团队成员不会生产一些下游团队成员不需要的中间工作产品。
选择正确的项目
不管您是为了业务目的而交付软件还是在一个IT开发团队工作,对您开发的软件进行战略联盟是有必要的。选择一个正确的软件项目,这个项目应该能够交付最多的价值、最大限度地减少成本,或者使消费者获得快乐就是最终的目的。这个战略联盟是良好管理实践的最初目标。IBM Rational Portfolio Manager®(请看图3)以某种方式通过帮助项目建议和批准过程的自动操作来支持这些实践,采用这种方式可以帮助以客观标准来寻找合适的项目组合,而且这种项目组合能够向涉众交付最大的价值。

图3:IBM Rational 项目组合管理
一旦选择了正确的项目,您就不得不为一个产品寻找合适的功能或者一种能够交付最大价值的解决方案。这就是软件工程师所谈到的需求管理。IBM Rational的方法是力求通过减少没有利用价值的文档来管理软件需求。可以有几种实现的途径。
首先,这些需求必须以非技术的方式编写,以至于消费者和非技术的涉众们能够理解。当消费者在他们并不理解的技术性需求规范上签署时,软件开发中会出现的一个非常普遍的问题,因为他们实际上被告知“如果您不同意,我们将不能进展。”为了保持项目的继续(或者至少支持错觉的轨迹),于是他们签署了。这就产生了一种不信任,更糟糕是,经常会交付一个并不能产生价值的结果。IBM Rational的方法之一是包含了从用户的角度编写的需求,而不是从系统的角度。这些以用户为中心的需求采取了用例的形式。这些用例推动项目的进展。它们被用来计划工作,衍生系统架构,以及有效快速地测试用例。
第二,我们需要确保技术需求能够以用例的形式连接回到到他们所驱动的价值。这被称作需求可追溯性。IBM Rational 的软件需求管理产品,IBM Rational RequisitePro®(请看图4)允许产品团队自动操作这种追溯。这种自动化操作使团队更容易发现过剩生产的情况,这种情况通常是逐步演进功能的形式。

图4:IBM Rational RequisitePro 中的一个追踪能力矩阵
一旦组织某种程度上执行了拉力,并通过使用用例正确选择项目和项目价值来提高他的顾客价值,就是时候确保价值流贯穿交付周期了。
正如先前所建议的那样,在软件交付过程中,流是通过迭代化开发软件而产生。IBM Rational Unified Process 规定了一个在内部组织能够执行迭代软件开发项目的框架。像上面所指出的那样,为了使在不同角色之间转换的可消费产品能够最大价值化,团队应该交付能够被下游角色很好利用的中间工作产品,也就是,数字化模型。统一建模语言(UML)为交互提供了一个标准的方法。RUP 规定了一种方法,通过这个方法能够为集成交付数字化资产。
IBM Rational 软件开发平台建在开放源代码的 Eclipse 集成开发环境之上。这个平台提供的技术可以使数字化资产更方便地从一个角色传递到下一个角色。
在图5中描述了利用迭代开发连接拉力与流的概念。从用户中拉动需求并以他们的角度来编写需求。那些被选择的需求是为了在单个的迭代中实现的,而这个迭代是基于交付价值被执行的。下游的拉力维持着这条“装配线”。当正确的需求及时地交付给了交付团队,而且这个团队构建了数字化资产而不是基于说明的文档,那么我们就能够获得真实的流。

图5:用迭代开发支持拉力和流
采取精益实践要求在您的顾客与涉众之间有不同方式的协作。为了使精益的概念制度化,尤其是流和拉力,涉众之间的密切协作是必不可少的。为了能够建立这种协作,组织应该执行一个支持价值开发的平台,而不是创造更多的管理费用和浪费。正如精益制造业通过在他们的制造过程中部署合适的设备来清除非价值活动的行为一样,软件项目团队需要等价的基础设施。IBM Rational 软件开发平台是集成的、使不同的团队成员可以自动获取关键项目信息的平台。比如,分析师没有明确地告诉测试员其中的一个需求已经变更——这个平台却可以提供这个标记。一个集成的交付平台能帮组您消除非价值增加的行为,如果您希望完成流,这就是这个游戏的名称。
对产品过程的可视化控制是精益的必要条件。IBM Rational 通过通过管理人员观察当前正在开发或者维护项目的技术和性能指标的方法提供了产品明晰的可见性。利用 IBM Rational Portfolio Manager®(请看图6),执行官、计划经理以及项目经理,通过快速访问实时数据可以减少手工生成状态报告的时间。

图6:IBM Rational 项目组合管理组合仪表盘展示了日程表、财政预算以及范围信息
如先前所讨论的那样,软件并没有真实的库存,但是构建就是软件的物理层表现,这就是我们拥有的最相近的事物。IBM Rational Build Forge®使完成软件构建和将这些构建部署到集成和测试环境的操作实现了自动化。这种自动化使顾客能够在一周内从十个到十五个,最后发展到三百多个构建。构建周期时间的减少意味着在开发早期就发现并处理了缺陷。这意味着消除了几种类型的浪费。