Agile - Planning with GitHub Projects

前言

结合工具,聊聊软件开发的流程管理

阶段管理

对于产品开发的管理,分为以下几个阶段:

  1. Opportunities Backlog - 机会待办
  2. Program Overview - 项目概览
  3. Feature Overview - 功能概览
  4. Other Backlogs - 其他待办

工作流程

Work Flow 1. 需求识别,真实需求,放入Backlog 2. 当backlog中的任务决定开始做之后,Program Overview 里创建对应的task

  • 一个task可能包括多个feature
  • 可能跨多个team
  • 也可能涉及不同的role
  1. 将上面的task分解归属到不同的team和role,即feature Overview里创建对应的task(可以设置子task,父task 做关联)
  2. Other Backlogs 放置其他辅助工作或者探索性工作,又或者tech debt

这种分配方式,每一级的 project 都和上一级有所重复。这方便特定团队的工作的同时,也可以让更大范围的团队知晓每一项的进度

Opportunities Backlog/ Others Backlog

Agile Planning

关心的问题:

  • 哪个团队适合负责?
  • 能实现哪些目标?
  • 当前进展如何?

在 Github,这个阶段的 project 名字叫 Planning & Tracking Pitches

Task 流转,表面进展high level, 比较粗的粒度

Draft -> Ready to pitch -> Under review -> Done

使用者:所有关心整个产品进展的人

重度使用者: 管理者/产品经理

Program Overview

当上面的backlog被接受后pitched(如Under review)

Agile Planning

关心的问题:

  • 进度如何?
  • 风险如何?
  • 负责人是谁?(team/ic)
  • 下一阶段是什么?

从 Github 分享的截图中可以看到,他们使用不同的栏(Field)来回答使用者的问题。

比如 Trending 这一栏,让使用者知道进度和是否有延迟交付的风险,而 Target Changelog 可以让使用者知道这个事项最终会在哪一版发布。

他们也会用不同的视图,比如 Next/Later 就可以看到下一步的计划 - 这里使用kanban是更直观的表达(增加view)

使用者:所有关心整个产品进展的人

重度使用者: 管理者/产品经理

Feature Overview

Aglie Dev

现在规划阶段已经完成了,接下来,就要转到 Feature Overview 阶段

  • 不同的team 单独的project
  • 不同的feature,单独的project(考虑epic级别放入不同的project,比较省力)

关心的问题:

  • 为了完成某个功能,一共需要做哪些工作?
  • 当前被分配了什么工作?
  • 工作的先后顺序是什么?
  • 我可以开始做哪些工作?
  • 团队成员之间的工作分配是否合理?

类似于敏捷kanban,可以按照迭代来划分

使用者:所有关心整个feature实现进展的人

重度使用者: 产品经理/研发团队

总结

  • 每一个project 关联人和team,feature,便于统计分析任务分布和迭代用时
  • 也可以增加changelog 记录需求的变动频率
  • 更多的updates 记录执行过程的重要信息

缺点是,有不同的projects记录相同的任务的繁琐,可以通过简化的方式来进行

如:

  • 在program overview 记录链接doc,如PRD/UI prototype等,high level描述 task
  • 在feature overview 按照user story维度拆feature task,分工task可以作为feature task的子任务进行

best practices 都是根据team自身情况不断调整的,没有银弹

多年的经验总结,在工具中,如何设计项目管理模式:

  1. 确定使用者是谁
  2. 确定使用者关心的问题是什么
  3. 在不确定的情况下,先尝试,迭代改进

参考

From disarray to delight: planning with GitHub Projects - Universe 2022