3.4 企业软件交付的软件工厂方法
正如我们前面讨论的,今天的机构面对的商业环境正以前所未有的速度发生变化。与此同时,这些机构还要管理和降低整个机构的运营成本。这就直接意味着,他们不仅要最大限度地减少浪费和低效率,还要提高生产力。软件和系统行业正在从基于手工作业、侧重个人的流程,演变为成熟且可重复的流程,既能稳定获得高品质的输出,又具有灵活性,能够根据客户的个别需求差异进行调整。
为了定义企业软件的设计、开发和交付中的软件工厂方法,我们可以把工业行业的关键特点应用到这里,以便减少产品的上市时间、提高灵活性和敏捷性、降低成本,同时提高质量和最终用户的满意度。集成方法可以帮助软件交付机构实现业务敏捷性,更有效地进行协作,并交付更高质量的产品和服务。
3.4.1 协调业务与工程
企业软件交付的软件工厂方法不仅需要一个完善的多平台的流程,而且要有能够让工程和系统部署与业务战略相协调的工具。事实已经证明,这种多平台流程对于构建满足客户需求的应用软件至关重要。它们可以帮助确定业务需求和利益相关方的要求,然后推动这些业务目标转化成企业软件交付项目和解决方案,确保最终产品符合业务目标,并具有最低的成本和最高的质量。
高层和管理团队需要集中精力做出恰当的战略决策,执行“正确”的产品,并保留“正确”的资产在他们的基础设施中。要让企业变得更精简、更敏捷、利润更高,关键因素包括识别和优先考虑可能整合的领域、减少冗余和经常性费用、提高运营效率等。
要对机构进行微调,需要进行更好的企业决策并了解业务和技术的依赖关系。管理团队必须有一个容易搜索、覆盖整个企业的存储库,用于保存可以支持企业的分析、规划和执行的业务和技术资料。
3.4.2 流程和任务的自动化
企业软件交付生命周期的自动化,可以帮助减少错误、提高生产效率、改善产品质量。一套集成的工具组合可以帮助团队把具体的劳动密集型任务自动化,这与制造流程中执行重复性手工任务的自动化十分类似。自动化可以让从业者把重点放在创造更多的创新解决方案上,用业界领先的设计和开发环境来支持高品质、安全和可扩展产品的交付。那些投资于自动化和更高效的生产和交付的公司会在生产力、质量、上市时间和可扩展性等方面体会到一个相当大的飞跃。
3.4.3 在整个企业中利用资产
现代的架构设计和产品开发框架可能会带来复杂性,因为它们常常会在整体企业软件解决方案中引入第三方、自定义、现成或外包的组件。有几种方法可以应对这个问题:
面向服务的架构(SOA)框架可以促进整个企业中的重用。为了从SOA方法中获得重大的价值,应用程序均围绕共享的接口描述进行开发,并由标准化的软件组件组合而成[42]。
产品线工程(PLE)是一个通过开发同类产品组合来获得战略重用的方法,这些产品组合拥有共同的思路,但特性和功能会根据产品族中的每个解决方案的需求而有所变化[36]。
这些方法的基础都是一个覆盖所有可用共享资产的可搜索的索引。要真正从重用中获益,企业必须能够了解他们已经拥有哪些资产,然后利用这些资产来创建可重用的灵活组件,以有意义、可预测的方式来拓展结构框架。
3.4.4 支持精益流程和集成基础设施
如今的企业软件交付团队可以在地理上高度分散。因此,为了获得企业软件交付框架的好处,他们需要灵活敏捷的流程,能够跨越不同的平台、角色和地域进行实时协作和集成。可以利用定义好而又可以定制的流程以及最佳做法,帮助分布在全球各地的开发改善灵活性,通过全面质量管理来降低风险,并通过任务和过程自动化来提高开发人员的生产力。
3.4.5 运营测量和控制的自动化
为了帮助确保提供可预测的结果,必须对企业软件交付过程进行治理,以便实现持续测量和改进。这种治理的一个基本要素是产品开发过程的定义和规章化。这些流程和最佳做法是企业的资产,它们必须体现为一种可执行的形式,以便引导团队在整个自动化工作流程中遵守恰当的最佳做法。
在每一步中都应自动收集相关指标,包括企业系统交付并投入生产后。通过不断自动测量流程中的特定关键值,这些指标可以揭示现有流程的有效性,并找出需要改进的地方。在严格监管的行业,如军事、航空航天、医疗行业以及许多金融部门,自动测量和控制就显得尤为关键。
归根结底,投资回报率会证明在企业软件交付中引入这些动态工厂方法概念的意义。通过更高效的方法来获得的生产力,以及最终得到的软件和系统的质量改进都有可以量化的货币价值。