为交付进行降本增效与利用AI提升软件开发:QCon纽约大会的启示

优化团队以实现快速流程 - 在后敏捷时代的生存

在2023年QCon纽约大会上,"优化团队以实现快速流程 - 在后敏捷时代的生存"专题由两场演讲组成,探讨了如何用工程和对话式软件交付替代敏捷流程,并利用人工智能提升交付效率。

Bryan Finster:敏捷康复 - 工程化改进交付

Bryan Finster在演讲中指出,软件交付中最大的问题是针对未理解的问题应用解决方案。他强调,若想采用敏捷实践,首先应思考使用敏捷的原因以及需要解决的具体问题。Finster团队的主要问题是不确定性,他们需要通过工程化解决方案来提供更好的价值。

解决方案

  1. 领域驱动设计:通过分解系统为子域、定义接口并分析依赖关系,简化交付流程。
  2. 逆向康威操作:调整组织结构以匹配目标架构,将系统部分分配给产品团队,并建立小型平台团队。
  3. 定义实践

    • 系统部分应独立部署,通过API进行协调。
    • 设定90%的测试覆盖率,但Finster指出这导致了许多无意义的测试,建议避免此类错误。
  4. 持续交付(CD):Finster创建了实践依赖图,强调CD不仅是自动化,更关乎行为。
  5. 最小可行流程:从无流程开始,仅添加有价值的部分,如团队工作细化、配对编程和同步代码审查。他们取消了回顾会,改为每日检查和改进。

测试改进

  • 不建议强制代码覆盖率,Finster指出其团队虽有90%覆盖率,但测试质量低下,存在不稳定的单元测试和滞后于开发的测试。
  • 采用行为驱动开发(BDD),将需求定义为验收测试,解决了需求不明确的问题。
  • 目标是完成小规模工作,每项任务可在两天内完成。

成果

  • 团队变得可靠,因所有工作都较小。
  • 工程师重新热爱开发。

经验教训

  • 仅使用有意义的敏捷实践。
  • 能通过工程解决的问题,优先使用工程方法。
  • 人才存在,关键在于提供正确的问题。
  • 认真对待持续交付,从持续集成开始。

Lee Rehwinkel 和 Katharine Chajka:利用人工智能识别和解决交付中的低效

Chajka展示了价值流图,指出组织中仅8%的时间用于实际编码。她认为,即使AI将编码时间降至零,对整体软件交付时间的影响也微乎其微,因为大部分时间消耗在规划、设计、测试和发布任务上。

AI在价值流管理中的作用

  • 识别瓶颈:AI可帮助识别工作流中的瓶颈并采取措施优化交付流程。
  • 简化沟通:Rehwinkel强调AI可以消除技术术语,使价值流管理更易于理解,促进跨团队沟通。

AI价值流代理示例

  • 使用ChatGPT分析流程指标,识别趋势并生成详细分析。
  • 通过第二次ChatGPT处理,生成易于理解的执行摘要。
  • AI还可作为“真相检查器”,确保结论与数据一致。

挑战

  • ChatGPT响应链耗时较长,影响用户体验。
  • AI模型容易被“越狱”,用户可通过操纵查询改变模型角色。
阅读 26
0 条评论