敏捷开发中的文档价值探讨

自2001年敏捷宣言发布以来,关于敏捷开发的核心原则一直是业界讨论的热点。其中,关于前期文档化方法的价值、所需文档的数量以及交付的工件等问题,一直存在着健康而有益的辩论。敏捷宣言指出,尽管文档(右侧)有其价值,但更重视的是工作软件(左侧)。那么,文档的价值何在,又需要多少文档才足够呢?

这个问题的答案实际上与文档本身关系不大。真正的问题在于,为了有效地沟通功能和技术设计,需要向团队内外的利益相关者提供多少信息。这些利益相关者包括业务、基础设施、运营、安全、风险、架构、合规和质量保证等。

那么,应该如何与这些利益相关者共享设计信息呢?生产代码是系统构建方式的最准确表示。对于开发者来说,代码是现成的,易于理解。然而,随着团队数量的增加,代码库的复杂性增加,遗留问题累积,目标受众从开发者转变为技术性较低的利益相关者,使用代码作为沟通工具变得重复、缓慢,并且需要开发者不断地在代码和利益相关者之间“解释”。这种开销占用了开发者的生产力,并影响了开发速度。

例如,一位售前解决方案架构师提到:“最近需要了解一个现有的B2B网络集成是如何实现的,以便能与新客户达成一致。没有文档,答案藏在代码中,需要开发者去调查。这需要在待办事项列表中添加一个用户故事,将其优先安排到下一个冲刺中,最后几乎在两周后得到了所需的信息。”

随着产品开发团队数量和代码行数的增加,这种效应会加剧。随着更多利益相关者的加入,直接沟通的难度越来越大(可以观看有关此主题的)。

为了避免这种情况,需要一定程度的文档来弥合代码和利益相关者之间的差距。简洁的基线功能和设计文档,描述应用程序的现有状态是关键。可以通过历史版本回顾过去的状态,通过战术待办事项列表驱动的过渡到基线,或者通过战略路线图来更好地表达未来的状态,这些路线图可以创建、修改或弃用服务或功能。

与其争论是否需要文档,不如将精力投入到如何更有效地进行文档化上。生产更准确文档的工具和技术正在成熟。值得一看的例子包括Swagger、Gherkin、Mermaid和Plant UML。

组织因素的考虑:

可能会影响产生的文档水平的各种因素,例如:

  • 软件的复杂性
  • 开发类型 - 是在构建一次性解决方案、产品还是平台
  • 团队和利益相关者的地理分布
  • 参与开发的团队数量
  • 每个团队的人数
  • 利益相关者的数量
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485