一人工程 · solus opus

← 全部作品

solo-engineerinfrastructureonboardingknowledge-transferhn-show

Onboarding 不必要:我就是 onboarding

solo engineer 没有 onboarding。simedw 一个人 iPhone app——所有代码他自己写,所有架构他自己知道,所有 commit message 他自己看。onboarding 是大公司知识转移工具,一人工程的自己 = onboarding。

solo engineer 没有 onboarding。

大公司做 onboarding:

  • 新员工培训:HR 主导 1 周培训(公司文化 / 安全 / 福利)
  • buddy 系统:每个新员工配 1 个 buddy(熟悉公司的老员工)
  • mentor 系统:每个新员工配 1 个 mentor(技术 leader)
  • 第一周不上班:新员工第一周不上班,只学公司流程
  • onboarding doc:100 页 onboarding doc(新员工必读)
  • 内部 wiki:Confluence / Notion 上 1000 页 wiki
  • 部门介绍:每个部门 1 小时介绍
  • codebase tour:mentor 带新员工走 codebase

一人工程做 onboarding:

  • 没有新员工
  • 没有 buddy
  • 没有 mentor
  • 没有 onboarding doc
  • 没有内部 wiki

simedw 的 onboarding 哲学

simedw 是 iPhone piano app。他没有 onboarding:

  • simedw 不需要新员工:simedw 自己 = 团队
  • simedw 不需要 buddy:simedw 自己 = buddy
  • simedw 不需要 mentor:simedw 自己 = mentor
  • simedw 不需要 onboarding doc:simedw 写代码时知道所有架构
  • simedw 不需要内部 wiki:simedw 脑子里就是 wiki

simedw 的"onboarding"在 git log + commit message + HN 评论里:

  • git log:所有 commit 时间 + 内容
  • commit message:每个 commit 的 why / what
  • HN 评论:simedw 自描述 simedw 的 progress
  • README:simedw 项目简介

如果 simedw 突然消失,新 maintainer 可以:

  • 读 git log(了解历史)
  • 读 commit message(了解每次改动)
  • 读 HN 评论(了解 simedw 思路)
  • 读 README(了解项目结构)

不需要 100 页 onboarding doc。

一人工程的 onboarding 工具

  • git log:所有 commit 时间 + 内容
  • commit message:每次改动的 why
  • README:项目简介 + 架构
  • HN / 博客:simedw 自描述
  • HN 评论:其他 developer 的反馈

不需要 Confluence / Notion wiki,因为:

  • 开发者 = 唯一的 maintainer
  • 开发者脑子里 = wiki
  • 不需要给新员工写 onboarding

onboarding 在大公司的政治

onboarding 不是工具——是知识转移工具 + 政治工具

  • HR:要用 onboarding 减少新员工流失
  • mentor:要用 onboarding 表现 leadership
  • buddy:要用 onboarding 学新人 + 表现 collaboration
  • CTO:要用 onboarding 加速新员工产出
  • PM:要用 onboarding 让新员工快速上手
  • 新员工:要用 onboarding 学公司

每个 stakeholder 都要 onboarding:

  • HR onboarding = "新员工不流失"
  • mentor onboarding = "我表现 leadership"
  • buddy onboarding = "我学新人"
  • CTO onboarding = "新员工快速产出"
  • PM onboarding = "新员工快速上手"
  • 新员工 onboarding = "我学公司"

没有 onboarding = 没有知识转移 = 新员工慢产出。

一人工程没有 stakeholder:

  • 开发者 = HR = mentor = buddy = CTO = PM = 新员工
  • 一个人 onboarding
  • 不需要 100 页 doc

onboarding doc 在大公司的细节

大公司 onboarding doc 通常 100 页:

  • 公司介绍:mission / vision / culture / history
  • 部门介绍:每个部门 1-2 页
  • 代码库介绍:架构 + 模块 + 工具链
  • 开发流程:git workflow + CI/CD + deploy
  • 工具介绍:Slack / Jira / Confluence / Notion / Linear
  • 福利介绍:health insurance / 401k / PTO
  • 法律介绍:NDA / IP assignment / GDPR

每个 onboarding doc:

  • 100 页
  • HR 维护
  • 每季度更新

一人工程没有 onboarding doc。一人工程有:

  • simedw 的 README:项目简介(1 页)
  • simedw 的 commit message:每次改动(git log)
  • simedw 的 HN 评论:simedw 思路

README + commit message + HN = 100 页 onboarding doc 的最小子集

buddy 系统在大公司的细节

大公司 buddy 系统——每个新员工配 1 个 buddy:

  • buddy 职责:回答新员工日常问题("在哪里吃饭" / "Slack 在哪" / "GitHub 仓库在哪")
  • buddy 时长:3 个月(之后新员工独立)
  • buddy 配对:HR 配对(基于团队 / 兴趣 / 性格)

每个 buddy:

  • 每周回答 5-10 个问题
  • 帮新员工介绍团队
  • 帮新员工熟悉工具

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

  • simedw 自己就是 buddy:simedw 问自己 + 自己答
  • simedw 不需要 HR 配对:simedw 自己决定
  • simedw 不需要 3 个月:simedw 没有 buddy 时长

不需要 buddy,因为 simedw 自己 = buddy。

mentor 系统在大公司的细节

大公司 mentor 系统——每个新员工配 1 个 mentor:

  • mentor 职责:技术指导 + 职业建议 + 长期关系
  • mentor 时长:6-12 个月(长期)
  • mentor 配对:VP 配对(基于技术方向)

每个 mentor:

  • 每周 1-on-1 30 分钟
  • 给新员工 code review
  • 帮新员工规划职业

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

  • simedw 自己就是 mentor:simedw 指导自己
  • simedw 不需要 VP 配对:simedw 自己决定
  • simedw 不需要 1-on-1:simedw 自己跟自己开会浪费时间

不需要 mentor,因为 simedw 自己 = mentor。

第一周不上班在大公司的细节

大公司新员工第一周不上班:

  • 周一:HR 介绍(公司文化 / 福利)
  • 周二:IT 介绍(电脑 / Slack / Jira / GitHub)
  • 周三:部门介绍(团队 / mentor / buddy)
  • 周四:代码库介绍(架构 / 工具链)
  • 周五:mentor 1-on-1

新员工第一周不写代码,只学。

一人工程没有第一周。一人工程有:

  • simedw 周一:写代码
  • simedw 周二:写代码
  • simedw 周三:写代码
  • simedw 周四:写代码
  • simedw 周五:写代码

simedw 第一周就开始写代码,因为 simedw 自己知道所有架构。

内部 wiki 在大公司的细节

大公司内部 wiki——Confluence / Notion 上 1000 页 wiki:

  • 架构文档:每个服务 5-10 页
  • API 文档:每个 API 5-10 页
  • 流程文档:每个流程 5-10 页
  • 决策记录:每个 ADR 5-10 页
  • runbook:每个 runbook 5-10 页
  • postmortem:每个 postmortem 5-10 页

每个 wiki:

  • 1000 页
  • 全员可读
  • 维护成本高

一人工程没有内部 wiki。一人工程有:

  • simedw 的 commit message:每个 commit 5-10 行
  • simedw 的 README:1 页
  • simedw 的 git log:所有 commit 历史

commit message + README + git log = 1000 页 wiki 的最小子集

codebase tour 在大公司的细节

大公司 codebase tour——mentor 带新员工走 codebase:

  • 架构介绍:每个服务做什么
  • 代码 walk-through:关键文件 walk-through
  • 调试演练:mentor 演示调试
  • 开发演练:mentor 演示 commit + PR

每个 codebase tour:

  • 2-3 天
  • mentor 全程陪同

一人工程没有 codebase tour。一人工程有:

  • simedw 自己知道 codebase:simedw 写代码时知道每个文件
  • simedw 不需要 walk-through:simedw 自己 walk
  • simedw 不需要 mentor 演示:simedw 自己演示

一人工程的 onboarding 哲学

大公司 onboarding 是因为他们有:

  • 100 个新员工 / 季度(需要培训)
  • 100 个 mentor(需要指导)
  • 100 个 buddy(需要配对)
  • 10 个 HR(需要协调)
  • 1000 页 wiki(需要维护)

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

  • 0 个新员工(没有新人)
  • 0 个 mentor(自己就是 mentor)
  • 0 个 buddy(自己就是 buddy)
  • 0 个 HR(自己就是 HR)
  • 1 页 README(不需要 wiki)

onboarding 在一人工程里 = git log + commit message + README

我就是 onboarding

大公司 onboarding 是多角色协作的

  • HR 主导
  • mentor 技术指导
  • buddy 日常帮助
  • VP 配对

一人工程 onboarding 是git log 自动记录的

  • commit 时间戳 = 新员工什么时候参与项目(= 项目历史)
  • commit message = 每次改动的 why
  • README = 项目简介
  • HN 评论 = simedw 思路

不需要 HR,不需要 mentor,不需要 buddy,不需要 VP。

公开 vs 私有 onboarding

大公司 onboarding 是半公开

  • onboarding doc 公开(公司内部)
  • 内部 wiki 公开(公司内部)
  • 部门介绍公开(部门内部)

一人工程 onboarding 是完全公开

  • git log 公开(GitHub 公开)
  • README 公开(GitHub 公开)
  • HN 评论公开(HN 公开)

simedw 的 onboarding 通过 GitHub + HN 公开——任何人都可以读 simedw 的 commit message 了解 simedw 的思路。

一人工程 + 我就是 onboarding

simedw 不做 onboarding doc。 simedw 不做 buddy 系统。 simedw 不做 mentor 系统。 simedw 不做内部 wiki。 simedw 写代码 + commit + 写 commit message。

onboarding 在一人工程里不是流程,是git log + commit message + README


solo engineer 没有 onboarding。 solo engineer 的 onboarding = git log + commit message + README。

solus opus.