<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/">
  <channel>
    <title>Remote Work · 仁才德</title>
    <link>https://jared.lynskey.co.nz/zh-cn/tags/remote-work/</link>
    <description>关于软件工程与研发团队领导力的短文——绩效评估、招聘与团队扩张、CI/CD、DevOps 监控、智能体 AI。写于首尔。</description>
    <generator>Hugo</generator>
    <language>zh-CN</language>
    <copyright>© 2026 仁才德</copyright>
    <lastBuildDate>Wed, 28 Oct 2026 00:00:00 +1300</lastBuildDate>
    <atom:link href="https://jared.lynskey.co.nz/zh-cn/tags/remote-work/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>用 GitHub Issues 做决策和项目管理：Alan 的方法，附模板</title>
      <link>https://jared.lynskey.co.nz/zh-cn/posts/2024/2024-01-04-githubforprojectmanagement/</link>
      <guid isPermaLink="true">https://jared.lynskey.co.nz/zh-cn/posts/2024/2024-01-04-githubforprojectmanagement/</guid>
      <pubDate>Tue, 09 Apr 2024 00:30:03 +0000</pubDate>
      <dc:creator>Jared Lynskey</dc:creator>
      <category>GitHub</category>
      <category>GitHub Issues</category>
      <category>Project Management</category>
      <category>Decision Making</category>
      <category>Async Communication</category>
      <category>Remote Work</category>
      <category>Team</category>
      <description>法国公司 Alan 怎么用书面的 GitHub issue 取代大部分会议：什么样的决策值得开 issue、LOCI 角色分工、写作规矩、一份可以直接放进 .github/ISSUE_TEMPLATE 的 issue 模板，以及什么时候该在上面再加一个 GitHub Project。</description>
      <content:encoded><![CDATA[<p>法国健康保险公司 Alan 写过<a href="https://alan.com/en/healthybusiness/media/a/asynchronous-decisions"  target="_blank" rel="noreferrer">一篇讲他们如何做决策的文章</a>，我反反复复看了好几遍。一句话概括：他们不订会议室，而是开一个 GitHub issue，把争论摆到文字里打。如今我自己也开始带团队了，这次是认认真真做了笔记。下面是我对他们这套系统的消化，夹带一些我自己的看法。</p>

<h2 class="relative group">Alan 为什么放弃了开会
    <div id="alan-为什么放弃了开会" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#alan-%e4%b8%ba%e4%bb%80%e4%b9%88%e6%94%be%e5%bc%83%e4%ba%86%e5%bc%80%e4%bc%9a" aria-label="锚点">#</a>
    </span>
    
</h2>
<p>他们的起点你一定不陌生：没人做准备，会议迟迟开不起来，嗓门最大的人不管对错总能拍板。一小时后，你比进会议室之前更糊涂，开始琢磨抽屉里还有没有止痛药。</p>
<p>Alan 一开始也想修好会议这台机器——最长 15 分钟、议程明确、必须产出决策。没用。讨论照样跑题，说过什么没人记得，缺席的和远程的同事干脆被排除在外。于是他们干脆把整件事搬进了文字里。</p>
<p>他们列举的好处我基本都认。写作逼你停下来真正思考，讨论因此更细致、论证更扎实；一切都有记录，不用靠七零八落的记忆；也不再是一场口才竞赛。而且论坛对全公司公开，谁都能参与讨论——不再只属于碰巧坐在会议室里的那几个人。</p>

<h2 class="relative group">把 GitHub 当公司论坛用
    <div id="把-github-当公司论坛用" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e6%8a%8a-github-%e5%bd%93%e5%85%ac%e5%8f%b8%e8%ae%ba%e5%9d%9b%e7%94%a8" aria-label="锚点">#</a>
    </span>
    
</h2>
<p>这个&quot;论坛&quot;就是 GitHub。一个本为代码评审而生的平台，被 Alan 理直气壮地挪作他用。搭建过程简单得有点不好意思：</p>
<ol>
<li>注册一个 GitHub 账号。</li>
<li>建一个没有代码的私有仓库（他们的叫&quot;Topics&quot;）。</li>
<li>建一套标签体系，给对话分类。</li>
<li>用 Issues 标签页：open 的是进行中的讨论，closed 的是已定的决策。</li>
</ol>
<p>他们的 issue 已经超过 17,000 个。这意味着 17,000 场没必要开的会，而最让我心动的是：每一个决策为什么这么定，都留下了可搜索的历史。想推翻一个老决定？先去读读上次是哪些论据赢了。</p>

<h2 class="relative group">什么时候开 issue
    <div id="什么时候开-issue" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e4%bb%80%e4%b9%88%e6%97%b6%e5%80%99%e5%bc%80-issue" aria-label="锚点">#</a>
    </span>
    
</h2>
<p>不是每个决策都配得上一个 issue。他们的过滤器是四个问题：谁会受影响？可逆性如何？急不急？做决定前还需要更多背景吗？</p>
<p><figure><span class="mc-img"><img
    class="my-0 rounded-md"
    loading="lazy"
    decoding="async"
    fetchpriority="auto"
    alt="image"
    width="1390"
    height="1213"
    src="https://jared.lynskey.co.nz/img/posts/2024/2024-01-04-githubforprojectmanagement/decisionchart_hu_9ca1837f8ecdf619.webp"
    srcset="https://jared.lynskey.co.nz/img/posts/2024/2024-01-04-githubforprojectmanagement/decisionchart_hu_9ca1837f8ecdf619.webp 800w, https://jared.lynskey.co.nz/img/posts/2024/2024-01-04-githubforprojectmanagement/decisionchart_hu_8ecbad24825e93ec.webp 1280w"
    sizes="(min-width: 768px) 50vw, 65vw"
    data-zoom-src="https://jared.lynskey.co.nz/img/posts/2024/2024-01-04-githubforprojectmanagement/decisionchart_hu_c84e7ceb7d35c8e2.webp"></span></figure>
</p>
<p>大体上，影响大、难回头的决策进论坛，其余留在 Slack。他们也用&quot;单向门/双向门&quot;的说法：单向决策（撤销代价太大，他们举的例子是涨价）走完整的书面流程；双向决策（撤销便宜，最坏不过损失点精力）就不必兴师动众。</p>

<h2 class="relative group">LOCI：谁干什么
    <div id="loci谁干什么" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#loci%e8%b0%81%e5%b9%b2%e4%bb%80%e4%b9%88" aria-label="锚点">#</a>
    </span>
    
</h2>
<p>每场讨论都按 LOCI 模型分配角色——Lead、Owner、Consulted、Informed。</p>
<p>Lead 对决策的成败负责，确保决策背后的来龙去脉在团队里讲清楚。他会在讨论开头说明自己想介入到什么程度，之后信任 Owner、为团队的产出兜底，只在强烈反对时才出声。每场讨论只有一个 Lead。</p>
<p>Owner 拍最终的板，推着项目往目标走。他要保证每个参与者知情并按时发言，调查问题、收集答案、跟进进展，负责开 issue 也负责关 issue，最后做出决定并公之于众。碰到自己迈不过去的坎，就去找 Lead。每个决策也只有一个 Owner。</p>
<p>Consulted 是那些意见真正影响权衡的人。他们必须按时发言——哪怕只是一句&quot;我没有补充&quot;——如果认为决策错得离谱，就要拉响警报，最坏的情况上报给 Lead。Alan 把这个群体控制在六人左右，再多，进度就要付出代价。</p>
<p>Informed 通常在决策定了之后才被告知。沟通是单向的，不需要他们做任何事。通知谁，由 Owner 根据影响范围来定。</p>

<h2 class="relative group">一个 issue 的解剖图
    <div id="一个-issue-的解剖图" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e4%b8%80%e4%b8%aa-issue-%e7%9a%84%e8%a7%a3%e5%89%96%e5%9b%be" aria-label="锚点">#</a>
    </span>
    
</h2>
<p>每个 issue 都用同一套模板。这既能磨利思路，也悄悄教会了初级同事怎么拆解问题：</p>
<ul>
<li>范围——讨论的&quot;为什么&quot;，其中最被低估的一行是&quot;这个 issue 不讨论……&quot;</li>
<li>背景和材料——链接到之前的讨论和文档</li>
<li>LOCI——谁是 Lead、Owner、Consulted、Informed</li>
<li>截止时间——发言截止日、issue 关闭日、必须拿出方案的日期</li>
<li>方案提议——推荐一个方案，或列几个供选择</li>
<li>提问——把具体的问题抛给具体的人，去证实或推翻具体的假设，免得 issue 变成一只&quot;漂流瓶&quot;</li>
</ul>
<p><figure><span class="mc-img"><img
    class="my-0 rounded-md"
    loading="lazy"
    decoding="async"
    fetchpriority="auto"
    alt="image"
    width="1390"
    height="715"
    src="https://jared.lynskey.co.nz/img/posts/2024/2024-01-04-githubforprojectmanagement/gitpreview_hu_154de40eb6124f02.webp"
    srcset="https://jared.lynskey.co.nz/img/posts/2024/2024-01-04-githubforprojectmanagement/gitpreview_hu_154de40eb6124f02.webp 800w, https://jared.lynskey.co.nz/img/posts/2024/2024-01-04-githubforprojectmanagement/gitpreview_hu_ab103b11817c0ef0.webp 1280w"
    sizes="(min-width: 768px) 50vw, 65vw"
    data-zoom-src="https://jared.lynskey.co.nz/img/posts/2024/2024-01-04-githubforprojectmanagement/gitpreview_hu_aada79d3a582942a.webp"></span></figure>
</p>

<h2 class="relative group">让讨论不拖沓的写作规矩
    <div id="让讨论不拖沓的写作规矩" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e8%ae%a9%e8%ae%a8%e8%ae%ba%e4%b8%8d%e6%8b%96%e6%b2%93%e7%9a%84%e5%86%99%e4%bd%9c%e8%a7%84%e7%9f%a9" aria-label="锚点">#</a>
    </span>
    
</h2>
<p>文字辩论拖起来一点不比口头的差，所以他们有规矩。首先是简洁——他们引用布瓦洛：&ldquo;构思清晰的内容，表达也清晰。&ldquo;写不简单，说明你自己还没想清楚。其次，每写一段都做一次&quot;那又怎样？&ldquo;测试：如果你这条评论的言下之意不明显，就把它写明白。</p>
<p>对 Owner 来说，开完 issue 之后的经营同样重要。让讨论始终对准那个&quot;百万美元问题&rdquo;——真正要紧的那一个卡点——别让它溶解在细节的海洋里；定期总结哪些已达成一致、哪些还悬着；Slack 提醒留作最后手段，只用于发言逾期或真正紧急的情况。</p>
<p><figure><span class="mc-img"><img
    class="my-0 rounded-md"
    loading="lazy"
    decoding="async"
    fetchpriority="auto"
    alt="image"
    width="1390"
    height="910"
    src="https://jared.lynskey.co.nz/img/posts/2024/2024-01-04-githubforprojectmanagement/slackmessage_hu_b208cd2844b5ba3a.webp"
    srcset="https://jared.lynskey.co.nz/img/posts/2024/2024-01-04-githubforprojectmanagement/slackmessage_hu_b208cd2844b5ba3a.webp 800w, https://jared.lynskey.co.nz/img/posts/2024/2024-01-04-githubforprojectmanagement/slackmessage_hu_f44bfed068b95993.webp 1280w"
    sizes="(min-width: 768px) 50vw, 65vw"
    data-zoom-src="https://jared.lynskey.co.nz/img/posts/2024/2024-01-04-githubforprojectmanagement/slackmessage_hu_3f37871d11c679c.webp"></span></figure>
</p>
<p>Owner 还可以隐藏那些没有推动对话的评论。另外，标题、脚注、表格、键盘快捷键这些 GitHub 排版功能，默认人人都要会用——在书面世界里，形式和内容几乎同等重要。</p>

<h2 class="relative group">不搞共识，不养观众
    <div id="不搞共识不养观众" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e4%b8%8d%e6%90%9e%e5%85%b1%e8%af%86%e4%b8%8d%e5%85%bb%e8%a7%82%e4%bc%97" aria-label="锚点">#</a>
    </span>
    
</h2>
<p>有两条规矩防止这套系统沦为&quot;委员会决策&rdquo;。</p>
<p>第一，Owner 以 Alan 所说的&quot;开明专制者&quot;身份做决定。他去调研新想法、衡量风险、分析数据、追问同事——但不寻求共识，也没义务采纳听到的每一条建议。Alan 说得很直白：公司不是民主制。人人都是股东，公司利益排在团队和个人之前。当然他们也不要孤立、仓促、拍脑袋的决定。当 Owner 对这一注有了足够把握，就拍板，大家一起试；等影响逐渐清晰，再回头复盘，看下次怎么做得更好。</p>
<p>第二，控制参与人数。贝佐斯的&quot;两个披萨&quot;规则在异步世界照样成立：人越多，每个人的贡献越少。超过六个参与者，旁观者效应就开始冒头，参与质量随之下滑。通知也遵循同样的哲学，渐进式来——Alan 信任每个人都配置好了自己的 GitHub 通知（Settings 里把&quot;Participating&quot;和&quot;Watching&quot;下的&quot;Web and Mobile&quot;勾上），所以 issue 提问区里的 @ 能省则省。</p>

<h2 class="relative group">我打算带走什么
    <div id="我打算带走什么" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e6%88%91%e6%89%93%e7%ae%97%e5%b8%a6%e8%b5%b0%e4%bb%80%e4%b9%88" aria-label="锚点">#</a>
    </span>
    
</h2>
<p>一场会议的内容，永远没法向缺席的人复述完整；但一份写下来的决策，谁都能读。Alan 自己也说，这不是最好的、更不是唯一的方案，只是最合他们脾性的那一个：打断变少了，旁观者效应变淡了，做决策时能先退一步，事实也都写在纸面上。我不打算把团队的每个决定都搬进 GitHub issue，但下面这个模板，马上就进我们的仓库。</p>

<h3 class="relative group">做成 GitHub issue 模板
    <div id="做成-github-issue-模板" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%81%9a%e6%88%90-github-issue-%e6%a8%a1%e6%9d%bf" aria-label="锚点">#</a>
    </span>
    
</h3>
<p>把下面这段存成 <code>.github/ISSUE_TEMPLATE/decision.md</code>，放进你拿来当论坛的那个仓库，以后每次有人新建 issue，GitHub 都会把它列出来供选择。各个部分是 Alan 的，LOCI 那几行和标签是我加的。</p>
<div class="highlight-wrapper"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-markdown" data-lang="markdown"><span class="line"><span class="cl"><span class="nn">---</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">决策</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nt">about</span><span class="p">:</span><span class="w"> </span><span class="l">提出一个决策，以书面形式收集意见</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nt">title</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;[决策] &#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nt">labels</span><span class="p">:</span><span class="w"> </span><span class="l">decision</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nn">---</span><span class="w">
</span></span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="gu">## 范围
</span></span></span><span class="line"><span class="cl"><span class="k">-</span> 这个 issue 的目标是……
</span></span><span class="line"><span class="cl"><span class="k">-</span> 这个 issue **不**讨论……
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="gu">## 我为什么开这个 issue
</span></span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="gu">## LOCI
</span></span></span><span class="line"><span class="cl"><span class="k">-</span> Lead：
</span></span><span class="line"><span class="cl"><span class="k">-</span> Owner：
</span></span><span class="line"><span class="cl"><span class="k">-</span> Consulted：
</span></span><span class="line"><span class="cl"><span class="k">-</span> Informed：
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="gu">## 时间线
</span></span></span><span class="line"><span class="cl"><span class="k">-</span> 发言截止日：
</span></span><span class="line"><span class="cl"><span class="k">-</span> 决策截止日：
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="gu">## 背景和材料
</span></span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="gu">## 方案提议
</span></span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">## 提问</span></span></code></pre></div></div>

<h2 class="relative group">GitHub Issues 还是 GitHub Projects？
    <div id="github-issues-还是-github-projects" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#github-issues-%e8%bf%98%e6%98%af-github-projects" aria-label="锚点">#</a>
    </span>
    
</h2>
<p>如果你在更大的范围里考虑拿 GitHub 做项目管理，这两样东西分工不同。Issues 承载讨论，关闭之后承载的就是决策本身。GitHub Project 则是铺在一个或多个仓库的 issue 之上的看板或表格，状态、负责人、截止日期这些字段都可以自己定义。像 Alan 这样的决策论坛，标签加上 issue 列表就够了。等你想把所有还没定的决策放在一个屏幕上、按必须拍板的日期排好序，或者开始在同一个地方跟踪交付工作时，再加一个 Project。大多数团队最后都是走到这一步，两样一起用。</p>
]]></content:encoded>
      <media:content url="https://jared.lynskey.co.nz/en/posts/2024/2024-01-04-githubforprojectmanagement/featured.jpg" medium="image" type="image/jpeg" />
    </item>
    <item>
      <title>什么是异步沟通？含义、例子，以及团队自主需要的信任</title>
      <link>https://jared.lynskey.co.nz/zh-cn/posts/2023/2023-09-20-async-and-auto-flow/</link>
      <guid isPermaLink="true">https://jared.lynskey.co.nz/zh-cn/posts/2023/2023-09-20-async-and-auto-flow/</guid>
      <pubDate>Wed, 20 Sep 2023 00:30:03 +0000</pubDate>
      <dc:creator>Jared Lynskey</dc:creator>
      <category>Async Communication</category>
      <category>Remote Work</category>
      <category>Autonomy</category>
      <category>Communication</category>
      <category>Management</category>
      <description>异步沟通是什么意思，和同步沟通有什么区别，一条好的异步更新长什么样，以及为什么转向自主团队，靠的更多是信任而不是工具。</description>
      <content:encoded><![CDATA[<p>异步沟通，指的是对方可以在自己方便的时候阅读和回复的沟通方式：书面更新、文档、工单下的评论、录好的视频，都算。同步沟通则需要大家同时在场，比如开会、打电话，或者发一条默认对方要马上回的聊天消息。两种团队都需要；麻烦在于，每个决定都得等同步沟通才能往下走。</p>
<p>我做过的项目里，最慢的从来不是代码，而是排队：一堆决策堵在某位经理的日程表前面，等一个三天后才到的点头。异步沟通和自主团队是标准解法，我也是信徒，但这场转变的本质，是一个披着工具外衣的信任问题。</p>

<h3 class="relative group">为什么会变成事事签字
    <div id="为什么会变成事事签字" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e4%b8%ba%e4%bb%80%e4%b9%88%e4%bc%9a%e5%8f%98%e6%88%90%e4%ba%8b%e4%ba%8b%e7%ad%be%e5%ad%97" aria-label="锚点">#</a>
    </span>
    
</h3>
<p>审批文化从哪来，值得公道地看一看。控制给人一种精确的错觉——每个决定都过经理的桌子，就好像什么都不会跑偏。一个错误决定不光砸项目，还砸经理本人的名声，所以恐惧出了大力。有时也确实是真心怀疑团队有没有足够的经验做判断。还有的时候纯粹是惯性：组织架构一直这么运转，于是继续这么运转。</p>
<p>注意，这四个原因里只有一个真的和团队有关，剩下的全是经理自己的事。</p>

<h3 class="relative group">自主真正需要什么
    <div id="自主真正需要什么" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e8%87%aa%e4%b8%bb%e7%9c%9f%e6%ad%a3%e9%9c%80%e8%a6%81%e4%bb%80%e4%b9%88" aria-label="锚点">#</a>
    </span>
    
</h3>
<p>没有对齐的自主，只是士气高昂的混乱。如果大家真的理解目标，各自独立做的决定大体会指向同一个方向——诀窍其实就这一条。培训也重要，因为一个装备齐全的人，比一个只有热情的人更容易被信任。边界要留着：确实有些决策应该留在管理层手里，把是哪些说出口，能避免最糟糕的意外。之后就让反馈循环转起来，把免不了的错误当学费，而不是当罪证。</p>
<p>如果信任已经受损——从审批文化里爬出来的团队，通常双向都受了损——那就没有捷径。开诚布公地把问题摆到桌面上，管理层先认下自己那份错，然后连续几个月无聊地保持言行一致。明确的分工和固定的沟通节奏，比任何轰轰烈烈的姿态都更能修复关系。</p>

<h3 class="relative group">异步反而是容易的部分
    <div id="异步反而是容易的部分" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%bc%82%e6%ad%a5%e5%8f%8d%e8%80%8c%e6%98%af%e5%ae%b9%e6%98%93%e7%9a%84%e9%83%a8%e5%88%86" aria-label="锚点">#</a>
    </span>
    
</h3>
<p>工具的事三句话说完：Slack 或 Microsoft Teams 都够用。真正的功夫在文档——没人在同一间屋、同一个时区时，写下来的决定就是团队的记忆。定好响应规范，别让异步悄悄变成没人理；“一天之内”胜过“看情况”，这些规范应该和“谁收哪种更新”一起写进团队的<a href="https://jared.lynskey.co.nz/zh-cn/posts/2023/2023-06-02-project-frameworks-for-future-cto/" >沟通计划</a>。另外要真的教大家写像样的异步更新：够做判断的上下文、需要的决定、截止时间。这个技能不是天生的。比如这样：</p>
<blockquote><p><strong>周四前需要拍板：支付重试</strong><br>
现在银行卡支付失败后，只会在 24 小时后重试一次；“我的订单怎么还没好？”已经成了最常见的客服咨询。<br>
方案 A：24 小时内重试三次（大约半天工作量）。方案 B：维持现状，改为发邮件通知用户。<br>
我建议选 A，细节和数据在附上的文档里。<br>
如果周四下午 5 点前没人反对，我就按 A 开始做。</p>
</blockquote><p>这样一条消息，早上 7 点看也好，晚上 11 点看也好，不管在哪个时区，都能不开会直接回复。</p>
<p>装一个 Slack 只要一下午。信任要花好几个月，而决定这一切成败的恰恰是信任。把目标讲清楚，让犯错的代价是一堂课而不是一份职业——做到这两点，异步那部分多半会自己长好。</p>
]]></content:encoded>
      <media:content url="https://jared.lynskey.co.nz/en/posts/2023/2023-09-20-async-and-auto-flow/featured.jpeg" medium="image" type="image/jpeg" />
    </item>
    <item>
      <title>项目沟通计划模板：一份软件团队可以照着用的示例</title>
      <link>https://jared.lynskey.co.nz/zh-cn/posts/2023/2023-06-02-project-frameworks-for-future-cto/</link>
      <guid isPermaLink="true">https://jared.lynskey.co.nz/zh-cn/posts/2023/2023-06-02-project-frameworks-for-future-cto/</guid>
      <pubDate>Fri, 02 Jun 2023 11:30:03 +0000</pubDate>
      <dc:creator>Jared Lynskey</dc:creator>
      <category>Project Management</category>
      <category>Communication Plan</category>
      <category>Communication</category>
      <category>Stakeholder Management</category>
      <category>Engineering Management</category>
      <category>Remote Work</category>
      <description>项目沟通计划写清楚谁需要知道什么、多久一次、走哪个渠道、由谁来说。这篇讲沟通计划里该有什么，给出一份可以直接照抄的软件项目沟通计划表，以及让它真正运转起来的几个习惯。</description>
      <content:encoded><![CDATA[<p>项目沟通计划就是一张简短的表，写清楚项目的哪些事该让谁知道、多久一次、走哪个渠道、由谁负责去说。我的这份一页纸就装得下，每类受众占一行，从开发团队一直到CEO。下面是我开一个软件项目时会先拿出来的版本，还有我一直在记的、关于项目沟通怎样才真正管用的笔记。</p>
<p>我被拉去救火的那些项目，烂摊子多半不是烂代码造成的，而是该知道的信息没能及时传到该知道的人那里。在公司开始带项目之后，我一直在记笔记：如果哪天坐上CTO的位置，沟通该怎么管。这里整理出来。</p>

<h4 class="relative group">先定好谁需要知道什么
    <div id="先定好谁需要知道什么" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%85%88%e5%ae%9a%e5%a5%bd%e8%b0%81%e9%9c%80%e8%a6%81%e7%9f%a5%e9%81%93%e4%bb%80%e4%b9%88" aria-label="锚点">#</a>
    </span>
    
</h4>
<p>不起眼但打底的东西是沟通计划：谁需要被告知、需要什么信息、多久一次、走哪个渠道。每个项目开始时就该定下来，而且要落到具体人头上——沟通一旦成了&quot;大家的事&quot;，就成了没人管的事。利益相关方也一样：理清谁真正关心这个项目，摸清每个人喜欢的汇报方式。发给CEO的更新，不能跟发到开发频道的一模一样。再定几条明文规则：多久之内该回复、什么算紧急、哪个渠道干什么用。所谓&quot;沟通问题&quot;，多半只是没说出口的期待对不上。</p>

<h4 class="relative group">一份软件项目的沟通计划示例
    <div id="一份软件项目的沟通计划示例" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e4%b8%80%e4%bb%bd%e8%bd%af%e4%bb%b6%e9%a1%b9%e7%9b%ae%e7%9a%84%e6%b2%9f%e9%80%9a%e8%ae%a1%e5%88%92%e7%a4%ba%e4%be%8b" aria-label="锚点">#</a>
    </span>
    
</h4>
<p>这是我会先拿来用、再按项目调整的版本。每一行是一类受众，不是一场会议：</p>
<table>
	<thead>
			<tr>
					<th>受众</th>
					<th>需要知道什么</th>
					<th>多久一次</th>
					<th>渠道</th>
					<th>由谁来说</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>开发团队</td>
					<td>正在做什么、卡在哪、会改动代码的决定</td>
					<td>每天</td>
					<td>站会和团队的聊天频道</td>
					<td>技术负责人</td>
			</tr>
			<tr>
					<td>产品负责人</td>
					<td>离Sprint目标还差多少、范围上的疑问、新出现的风险</td>
					<td>每周两次，范围一变就说</td>
					<td>简短通话或聊天里单开一个话题</td>
					<td>项目负责人</td>
			</tr>
			<tr>
					<td>管理层</td>
					<td>一句话的现状、工期或预算上的风险、需要他们拍板的决定</td>
					<td>每周</td>
					<td>一段话的书面更新</td>
					<td>项目负责人</td>
			</tr>
			<tr>
					<td>销售、客服和运维</td>
					<td>要上线什么、什么时候上、对客户有什么变化</td>
					<td>每次发版</td>
					<td>发版说明</td>
					<td>产品负责人</td>
			</tr>
			<tr>
					<td>用户或客户</td>
					<td>有什么新东西、接下来要做什么</td>
					<td>每次发版</td>
					<td>更新日志或应用内通知</td>
					<td>产品负责人</td>
			</tr>
			<tr>
					<td>所有人</td>
					<td>定了什么、为什么这么定</td>
					<td>定下来的时候</td>
					<td>任务跟踪系统或wiki里的决策日志</td>
					<td>做决定的人</td>
			</tr>
	</tbody>
</table>
<p>表格下面写规则，越直白越好：紧急指的是挡住了发版或者影响到客户，这时候直接打电话，别发消息；问题在聊天里问，决定记进任务跟踪系统；一个工作日内回复。决策日志我用的是<a href="https://jared.lynskey.co.nz/zh-cn/posts/2024/2024-12-03-decision-docs/" >决策文档</a>，以<a href="https://jared.lynskey.co.nz/zh-cn/posts/2024/2024-01-04-githubforprojectmanagement/" >GitHub Issues</a>的形式保存，跟具体的工作放在一起。</p>
<p>这种计划能不能转起来，关键在两点：每一行的最后一列都写着一个具体的人；给管理层的更新是写下来的，不是口头说的，这样转发出去也不会丢信息。</p>

<h4 class="relative group">工具和节奏
    <div id="工具和节奏" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%b7%a5%e5%85%b7%e5%92%8c%e8%8a%82%e5%a5%8f" aria-label="锚点">#</a>
    </span>
    
</h4>
<p>工具没有大家争论的那么重要。聊天用Slack，任务用Trello，需要见面聊就开Zoom——选个适合团队的，赶紧翻篇。更要紧的是节奏：敏捷团队就每日站会，周期长的项目就每周同步，然后真的坚持下去。还有，把东西写下来。决定、变更、待办事项，记进Notion或Jira，当成流程的一部分，而不是事后补的作业。半年之后，大家唯一的记忆就是那份文档。</p>

<h4 class="relative group">软的部分才是硬骨头
    <div id="软的部分才是硬骨头" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e8%bd%af%e7%9a%84%e9%83%a8%e5%88%86%e6%89%8d%e6%98%af%e7%a1%ac%e9%aa%a8%e5%a4%b4" aria-label="锚点">#</a>
    </span>
    
</h4>
<p>上面说的都是机械层面。更难的在后头：问问团队现在的沟通方式到底管不管用，不管用就改。还有培养人——团队成员背景各异，有的人还没见过一个运转良好的项目长什么样。认真听别人说话，而不是等着轮到自己说；冲突要趁小趁早处理。而且这些问题解决一次不算完，上个季度好使的办法会悄悄失灵，只能定期回头检查。</p>

<h3 class="relative group">分布式、异步开发团队怎么协作
    <div id="分布式异步开发团队怎么协作" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%88%86%e5%b8%83%e5%bc%8f%e5%bc%82%e6%ad%a5%e5%bc%80%e5%8f%91%e5%9b%a2%e9%98%9f%e6%80%8e%e4%b9%88%e5%8d%8f%e4%bd%9c" aria-label="锚点">#</a>
    </span>
    
</h3>
<p>如果你的团队是远程或以异步为主，这个演讲值得一看：
<div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
			<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/5lVijFaXaKs?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"></iframe>
		</div>
</p>
<p>这些我自己也没全做到——没人能全做到。但回头看，进展顺利的项目大都占齐了这几条，而让人头疼的项目至少缺了三条。</p>
]]></content:encoded>
      <media:content url="https://jared.lynskey.co.nz/en/posts/2023/2023-06-02-project-frameworks-for-future-cto/featured.jpeg" medium="image" type="image/jpeg" />
    </item>
  </channel>
</rss>
