执行摘要
精益,敏捷和DevOps原理在许多重要方面改善了软件交付。 随着不断发展的市场迫使软件组织提高质量和生产率,对这些概念的兴趣从未如此高。 但是,尽管它们在个体和集体方面都有相当大的优势,但它们在解决现代软件组织所面临的各种问题方面仍存在不足。 为了缩小差距,必须将这些原则编织在一起,以使您能够充分利用人员,流程和技术的潜能。 最快,最有效的方法是创建一个集成的软件生命周期。 从计划,开发和测试到部署和维护,集成完成与软件交付相关的所有任务所需的所有工具,将使信息在从业人员之间自由流动,并遍及整个团队。 这使扩展的团队更加有效,并提供了急需的项目可见性。 满足这一缺失要求的软件组织可以在质量,速度和可追溯性方面获得实质性的收获。
不同的路线,相同的目的地
过度简化的风险在于,精益原则植根于运营中。 他们从汽车工业中广泛采用,专注于提高质量,加快周期时间,消除浪费和缺陷,增强团队能力并促进持续学习的过程。
敏捷方法具有这些目标,但更关注个人及其交互。 敏捷鼓励采用灵活,分散的软件交付方法,使团队成员通过不断的反馈和协作来应对不断变化的环境。
DevOps原则通过在整个项目生命周期中更加重视开发(“ Dev”)和运营(“ Ops”)团队之间的沟通与协作来进一步发展。 他们还强调了集成和自动化在尽快交付更好的软件方面的重要性。
显然,这三者之间有很多重叠之处。 他们也有一定的讽刺意味。 从理论上讲,它们中的每一个都通过提供一组清晰的原则来提高性能来努力简化和简化软件交付。 但实际上,今天的事情比以往更加复杂。
工具,人才,时间和其他复杂性
要了解软件交付如何变得越来越复杂,只需查看团队承受的各种技术和经济压力。
最近的过去使团队必须支持的技术,工具和部署范例数量激增。 用户不再对按年度发布的繁琐的客户端-服务器应用程序感到满意。 他们需要灵活的基于云的应用程序或移动应用程序,这些应用程序随处可见并定期得到增强。
周期时间也越来越短; 半年一次,季度甚至每月一次的发行周期的美好过去可能很快就会成为遥远的记忆。 例如,Netflix每天部署数百次新软件,当然不是全部应用程序,而是通常是API的新版本。 这种模式-更快交付更多模块化应用程序-显然是行业发展的方向。
然后是新的更复杂的存在性。 例如,问问自己:什么是银行? 这是一幢街上有柜员的建筑物吗? 它是一款可让您存入支票并管理资金的应用程序吗? 苹果现在是银行吗? 是Google吗? 如今,几乎每个行业都面临某种程度的软件驱动中断。 什么是旅馆? 什么是出租车? 什么是电视? 什么是大学? 不久前,这些问题很容易回答。 今天,不是很多。 事实是,软件具有空前的力量来加速组织的成功或灭亡。
您是否感到压力?
您的转型计划缺少的链接
为了应对其中的一些复杂性并应对它们所面临的挑战,组织已采用一种或多种转型计划,例如精益软件,DevOps或敏捷方法。 但是,尽管在培训人员,投入新工具和采用新方法方面进行了投资,但这些组织仍然发现他们并未获得这些举措所承诺的所有回报。
缺少的是软件开发和交付的生命周期视图,即项目的成功取决于整个扩展团队的一致努力。 麻烦的是,生命周期中每个学科的软件开发工具的激增实际上创造了一种环境,在这些环境中,工具本身将同事彼此分隔开来,并阻止了项目的整体生命周期视图。 每个工具在启用其服务的学科和方法方面都做得非常出色。 借助现代的需求确定和管理工具,可以使业务分析师和产品经理更加有效。 测试人员具有测试和缺陷跟踪工具。 敏捷计划工具可帮助团队管理其工作。 但是,这些学科中的每一个所创建的以及这些工具管理的工件都是要共享的,而不是锁定在各个工具中。 不幸的是,由于这些工具没有集成在一起,因此在其中创建的工件仍然存在。 精益,敏捷或DevOps对此有何看法?
整合就是答案
软件生命周期集成是下一代软件组织的新兴学科。 它集成了用于项目和项目组合管理的不同的应用程序生命周期管理工具; 测试和缺陷管理; 问题跟踪; 需求管理; 敏捷计划; 服务台支持和其他人员,形成一个有凝聚力的整体。 伪像从一个实践者流向另一个实践者。 收集生命周期数据以创建全面的跨学科报告。
最后,每个学科创建的工件会自动从其工具孤岛中解放出来。 创建电子邮件的人从使用电子邮件,批量导出到电子表格以及无休止的会议以共享信息中解放出来。 这正是支持转型计划所需要的。
- 精益精益。 当工件在各个工具之间轻松流动时,关键项目信息将不再分散或锁定在封闭的孤岛中。 而是,它自动在系统中移动,在需要时为从业人员提供所需的数据。 这有助于消除拖累交付流程的浪费和重复性任务。 花在非增值工作上的时间少得多,这反过来又有助于减少周期时间和项目成本。
- 更大的敏捷性。 当在工作中进行协作而不是在电子邮件或断开连接的工具中进行协作时,团队成员可以基于实时数据在上下文中快速提供反馈。 报告和分析是随着时间的推移从所有工件的整体视图中出现的,因此组织中的从业人员可以以最合适的方式应对任何情况。
- 更多连接的DevOps。 在集成的生命周期中,开发和运营之间的协作连接变得自动化。 例如,实时,高效地进行开发,质量保证和运营之间的交接。 故障单会实时流入规划和开发活动。 可追溯性和合规性成为该过程的自动化副产品,而不是其他手动过程。
真正转型的基础架构
无论基于精益,敏捷或DevOps原则,任何旨在改善软件交付的计划都将涉及人员,流程和工具的组合。 通过集成您的生命周期,您可以统一解决所有三个方面,并提供一个平台,使真正的变革得以发生。 在未来几年中,客户对更好的应用程序,更多功能和更快的周期时间的需求只会增加。 您不能浪费时间在瓶颈和障碍上。 您不能在不必要的工作上浪费金钱。 您不可能有任何错误。 软件生命周期集成将使您的团队比现在更有效地协作。 它将最大程度地提高您在人才和工具方面的投资,并极大地改善软件交付能力的分析。 它将为整个过程带来新的可见性,并实现合规性和可追溯性的自动化。 这样可以极大地提高软件组织的质量和生产率。
