一人工程 · solus opus

← 全部作品

solo-engineerinfrastructuresprintscrumhn-show

Sprint 不必要:想工作就工作

solo engineer 没有 sprint。simedw 一个人 iPhone app——他决定今天做什么,他决定做多久,他决定何时停。sprint 是大公司节奏控制工具,一人工程的想工作 = sprint planning。

solo engineer 没有 sprint。

大公司做 sprint:

  • 2 周一次 sprint:每 2 周一个 sprint(sprint 0 / sprint 1 / sprint 2 / ...)
  • sprint planning:sprint 开始前 1-2 小时,PM + 工程师一起定 sprint 目标 + 任务
  • sprint review:sprint 结束后 1 小时,PM + 工程师 demo + 回顾
  • sprint retrospective:sprint review 后 1 小时,团队反思 + 改进
  • sprint board:Jira / Linear / Asana / Trello 上拖卡片
  • story point:每个任务 1-13 点(Fibonacci)估算
  • velocity:每个 sprint 完成 story point 数(衡量团队速度)
  • burndown chart:sprint 进度图

一人工程做 sprint:

  • 没有 2 周节奏
  • 没有 sprint planning
  • 没有 sprint review
  • 没有 sprint retrospective
  • 没有 sprint board

simedw 的 sprint 哲学

simedw 是 iPhone piano app。他没有 sprint:

  • simedw 决定节奏:simedw 想今天做就做,想明天做就明天做
  • simedw 决定 duration:simedw 想写 1 小时就 1 小时,想写 4 小时就 4 小时
  • simedw 决定 task:simedw 脑子里的 14 次实验 + Core ML + iOS
  • simedw 不写 story point:simedw 不估算(如果估算了 = 自己骗自己)

simedw 的"节奏":

  • 当天状态好:写 4 小时 + commit + 测
  • 当天状态差:休息 / 写 30 分钟 / commit
  • 当天灵感来:写 6 小时 + commit 5 个实验
  • 当天没灵感:休息 / 散步 / 看 HN

不需要 2 周固定节奏,因为 simedw 状态每天不一样。

一人工程的节奏工具

  • git log:什么时候做了什么都记录
  • commit 时间:每天 commit 时间反映工作节奏
  • 脑子:今天做什么自己知道
  • HN / paper / 散步:灵感来源

不需要 sprint,因为:

  • simedw 自己决定节奏
  • simedw 自己决定 task
  • simedw 不需要 2 周 deadline

sprint 在大公司的政治

sprint 不是工具——是节奏控制工具 + 政治工具

  • scrum master:要用 sprint 协调 5-10 个工程师
  • PM:要用 sprint 拆解任务到 2 周
  • CTO:要用 sprint 知道团队进度
  • VP:要用 sprint 知道项目健康度
  • 销售:要用 sprint 知道 enterprise feature 何时交付
  • HR:要用 sprint velocity 评估团队绩效

每个 stakeholder 都要 sprint:

  • scrum master sprint = "我协调团队"
  • PM sprint = "我拆解任务"
  • CTO sprint = "我知道进度"
  • VP sprint = "我知道项目健康"
  • 销售 sprint = "我知道 feature 何时交付"
  • HR sprint = "我评估团队"

没有 sprint = 没有节奏 = 团队混乱。

一人工程没有 stakeholder:

  • 开发者 = scrum master = PM = CTO = VP = 销售 = HR
  • 一个人节奏
  • 不需要 sprint

story point 在大公司的必要性

大公司有 story point——每个任务 1-13 点估算:

  • 1 点:trivial bug fix / 1-2 小时
  • 3 点:small feature / 半天
  • 5 点:medium feature / 1-2 天
  • 8 点:large feature / 3-5 天
  • 13 点:epic / 1-2 周

每个 story point:

  • 工程师估算
  • sprint planning 时讨论
  • 团队 consensus

一人工程没有 story point。一人工程有:

  • simedw 自己估算:simedw 写代码时知道要多久
  • 不需要讨论:simedw 自己决定
  • 不需要 Fibonacci:simedw 直接写

不需要 story point,因为 simedw 写代码时自己知道复杂度。

velocity 在大公司的必要性

大公司有 velocity——每个 sprint 完成 story point 数:

  • sprint 1:完成 30 story point
  • sprint 2:完成 32 story point
  • sprint 3:完成 28 story point
  • average velocity:30 story point / sprint

每个 velocity:

  • 团队稳定后计算
  • 用来预测未来 sprint 能完成多少
  • HR 评估团队绩效

一人工程没有 velocity。一人工程有:

  • simedw 自己节奏:commit 频率反映节奏
  • 不需要预测:simedw 每天看 HN + 写代码
  • 不需要 HR 评估:simedw 自己评估自己

不需要 velocity,因为 simedw 不预测未来 sprint。

burndown chart 在大公司的必要性

大公司有 burndown chart——sprint 进度图:

  • X 轴:sprint 天数(10 天 sprint)
  • Y 轴:剩余 story point
  • 理想线:直线下降
  • 实际线:实际剩余 story point

每个 burndown chart:

  • sprint planning 时画理想线
  • 每天更新实际线
  • sprint review 时 review 偏差

一人工程没有 burndown chart。一人工程有:

  • simedw 自己看 git log:今天 commit 多少 = 今天进度
  • 不需要画图:simedw 脑子里知道进度
  • 不需要 sprint review:simedw 自己 review

不需要 burndown chart,因为 simedw 自己知道进度。

sprint planning 在大公司的必要性

大公司有 sprint planning——sprint 开始前 1-2 小时:

  • PM:展示 sprint backlog(这 2 周要做的任务)
  • scrum master:协调讨论
  • 工程师:认领任务 + 估算 story point
  • VP:偶尔参与(关键 sprint)

每个 sprint planning:

  • 1-2 小时 meeting
  • 5-10 个工程师
  • 30-50 个任务

一人工程没有 sprint planning。一人工程有:

  • simedw 自己规划:simedw 早上想今天做什么
  • 不需要 meeting:simedw 自己跟自己开会浪费时间
  • 不需要 backlog:simedw 脑子里就是 backlog

不需要 Jira。

sprint review 在大公司的必要性

大公司有 sprint review——sprint 结束后 1 小时:

  • 工程师:demo 这 sprint 做的 feature
  • PM:收集 stakeholder 反馈
  • stakeholder:参与(产品 / 销售 / 客户支持)

每个 sprint review:

  • 1 小时 meeting
  • 5-10 个 demo
  • stakeholder 反馈

一人工程没有 sprint review。一人工程有:

  • simedw 自己 review:simedw 看 14 次实验结果
  • 不需要 demo:simedw 自己看 commit message
  • 不需要 stakeholder:simedw 自己就是 stakeholder

不需要 demo。

sprint retrospective 在大公司的必要性

大公司有 sprint retrospective——sprint review 后 1 小时:

  • 团队反思:这 sprint 哪里做得好 / 哪里做得不好
  • 改进项:下 sprint 改进的具体行动
  • safe space:团队 open 地讨论问题

每个 retrospective:

  • 1 小时 meeting
  • 全团队参与
  • "start / stop / continue" 框架

一人工程没有 retrospective。一人工程有:

  • simedw 自己反思:simedw 看 14 次实验结果 + 自己问"下次怎么改进"
  • 不需要 meeting:simedw 自己反思
  • 不需要 safe space:simedw 自己 = safe space

不需要 retrospective,因为 simedw 自己反思。

一人工程的 sprint 哲学

大公司 sprint 是因为他们有:

  • 10 个工程师(需要协调节奏)
  • 1 个 scrum master(专门协调)
  • 1 个 PM(拆解任务)
  • 5 个 stakeholder(需要进度)

一人工程没有这些。一人工程有:

  • 0 个工程师(自己就是工程师)
  • 0 个 scrum master(自己就是 scrum master)
  • 0 个 PM(自己就是 PM)
  • 0 个 stakeholder(自己就是 stakeholder)

sprint 在一人工程里 = 自己想工作就工作

我就是 sprint

大公司 sprint 是多角色参与的

  • 10 个工程师执行
  • 1 个 scrum master 协调
  • 1 个 PM 拆解
  • 1 个 CTO review

一人工程 sprint 是一个人做的

  • simedw 自己执行
  • simedw 自己协调
  • simedw 自己拆解
  • simedw 自己 review

没有 scrum master,没有 PM,没有 CTO。

公开 vs 私有 sprint

大公司 sprint 是半公开

  • sprint board 公开(Jira / Linear 团队内部)
  • velocity 公开(团队内部)
  • burndown chart 公开(团队内部)

一人工程 sprint 是完全公开

  • git log 公开(GitHub 公开)
  • commit 时间公开
  • 14 次实验公开

simedw 的"velocity" 通过 git log 公开——所有 commit 时间戳 + message = simedw 的 sprint board。

一人工程 + 想工作就工作

simedw 不做 sprint。 simedw 不做 story point。 simedw 不做 velocity。 simedw 不做 burndown chart。 simedw 想工作就工作。

sprint 在一人工程里不是节奏,是simedw 的状态


solo engineer 没有 sprint。 solo engineer 的 sprint = 想工作就工作。

solus opus.