<audio id="audio" title="13 | 白天开会，加班写代码的节奏怎么破？" controls="" preload="none"><source id="mp3" src="https://static001.geekbang.org/resource/audio/6e/8a/6e063d117cb74ddbbe5779ef1972e08a.mp3"></audio>

你好，我是宝玉，我今天想与你讨论让很多程序员头疼的话题：开会。

说到开会，是很多人心中的痛，每天白天忙于参加各种会议，压缩了本来就少的可怜的工作时间。最可气的，有的人开完会工作就算完成了，而像我们写程序的，还得下班后加班加点赶进度！

所以一说到开会，程序员们往往如遇洪水猛兽一般，避之不及。

## 开会是有价值的

但我想说的第一个问题是：**开会是有价值的。**软件项目中有不少会议，其实有其价值所在，给你简单举例分析一下。

像评审会议，通过会议，可以让产品设计或架构设计在确定前，收集大家的意见，及时发现问题。

像每日站立会议，可以及时了解项目的进展，了解当前的困难和瓶颈，及时调整计划，解决问题。另外在会议上，每个人都要当众讲一下做过的事情和计划要做的事情，这也是一种无形的监督和约束。

像项目立项会议，可以创建一种仪式感，让每个人都知道项目的关键信息：

- **项目目标：**这个项目是要干什么的，达到一个什么目标；
- **项目里程碑：**项目的开始结束时间，项目的阶段划分，以及各个阶段的时间点；
- **角色分工：**项目成员的分工和角色是什么，每个人知道自己的任务是什么，知道遇到问题该找谁；
- **流程规范：**项目开发的主要流程是什么，基于瀑布还是敏捷。

像项目总结会议，团队成员可以一起总结一下项目的得失，把经验总结下来，帮助团队在下一次做的更好。

还有很多会议我就不一一列举。从上面可以看出，这些会议都是可以创造价值的。

## 开会是有成本的

开会的成本，就像房间里的大象，显而易见而很多人却有意无意无视它的存在。

我们做个简单的数学计算，假设一个程序员月薪一万元，如果他每天四分之一的时间在开会，那就相当于公司每月花了2500元在会议上。

这还只是一个人的成本，如果开会的人多，那么仔细算算，整体的会议成本其实很夸张的。所以我想说的第二个问题就是：**开会其实是有成本的，而且还不低。**

## 什么样的会议是有效率的？

其实软件项目中有些会议我是愿意参加的，因为是有价值的，高效的。比如说前面提到的每日站立会议，时间不长，但是收获很大。

再比如隔壁郑晔老师的《10x程序员工作法》专栏中提到的“[轻量级沟通](http://time.geekbang.org/column/article/82844)”，其中建议的会议方式：人少，面对面沟通。这种小会通常也让我觉得很高效，经常能产生有价值的方案。

还有一些会议则让我觉得没什么价值，比如领导冗长的讲话，比如一堆人在偏离会议主题的讨论，比如跟我没什么关系却被迫参加的会议。

那么为什么这些会议给我的感觉完全不一样？这其实就是我想讲的第三个问题：会议是不是有效率，取决于它创造的价值是不是高于其成本。

我觉得像每日站立会这样的会议更有效率，其时间短、人数少，所以成本低，创造的价值高于其成本。而人数多，又偏离会议主题的讨论会则没有价值，这是因为人数多时间长，导致会议成本高，而其创造的价值远远不及成本。

那为什么还有那么多低效率的会议？**因为有的会议，就不是为了创造价值。**

比如说有的会议，花的成本不是组织者的，对他来说，得到他的会议价值就可以了。

> 
你是砍柴的，他是放羊的，你和他聊了一天，他的羊吃饱了，你的柴呢？


还有很多会议，是因为组织者和参与者，都没有意识到开会其实是有成本的，所以浪费了成本还不自知。不过这种情况还好，还是可以想办法改进的。

接下来，我们来看看如何提高开会效率，破除避免白天开会，晚上还要加班写代码的节奏。

## 如何提高开会效率？

我们专栏有一篇文章《[08 | 怎样平衡软件质量与时间成本范围的关系？](http://time.geekbang.org/column/article/85302)》，很多同学看过里面讲的软件项目金三角理论后，直呼“醍醐灌顶”、“终于找到一套可以说服老板的说辞了”、“能够提高与产品经理打太极的水准”。

其实提高开会效率、提升开会价值的方法，就跟软件项目金三角的理论一样，只要从两个角度去想办法：**减少开会的成本，增加开会创造的价值！**

在具体探讨这两类方法之前，我们先要认识到一个前提：**那就是要让大家意识到开会是有成本的，如果开会创造的价值不能大于其成本，就是浪费。**

就像金三角理论，你得先让老板、项目经理明白三条边不可能都占，才好去沟通讨论。要提高开会效率，也需要大家先有这个意识，才能在具体措施上达成一致。

那么，有哪些方法可以减少开会的成本呢？

**1.砍掉一些没价值的会议**

在日常工作中，还有很多会议其实并没有什么价值的。如果一个会议符合这些标准，你就要慎重考虑参加了：

- 没有目标的会议。大家都在随意发散，完全没有主题；
- 不能形成决策，没有会后行动。如果一场会议看完后都没有什么结果，那跟没开都没啥差别；
- 你属于可有可无的角色。如果一个会议，跟你其实没什么关系，你无法提供有效的反馈，对你也没什么价值，只不过是被人拉过去开会的，那不如把这个时间用来做一点对项目更有价值的事。

所以，你可以在每次要接受一个会议邀请之前，先问自己两个问题再做决定：这个会议我真的有必要参加吗？以及，有其他方式可以替代吗？

其实，很多问题并不是非要通过“会议”的方式解决。

以前我负责的一个服务，其他组需要调用，所以有一个组的同事想跟我组织一个会议，让我介绍一下服务，以及如何调用。我思考了一下，觉得准备这个会议我也要写一个PPT，开会还得要时间，这时间我足够写一个详细的说明文档出来了，而且以后其他组再要用，也只要看文档就可以了。

于是我就跟他们说：“我们不用开会，我一会发一个文档链接给你们，如果有问题我们可以在聊天工具上沟通。”后来他们看完文档后，有几处不清楚的地方，在咨询过我以后，我将文档更新好，就没什么问题了，而且后面再不需要为这件事开会了。

**2.减少参与会议的人**

**会议的成本和两个因素相关：一个是人数，一个是时间。如果减少人数，就能减少成本。**

减少人数好处还在于，人一少，每个人都会更投入，也更有效率，所以往往时间反而会少产出会高。而且，如果会议上要形成一些决议，人越多越难做决策，人越少越容易达成一致。要想有决议的话，先开几个小会，达成一致后再开大会，大会更多只是宣布一个结果。

像谷歌和Facebook，他们对于会议的态度就是能不开就不开，无关的人不参与。Amazon 的规则也很简单：一场会议的人数，最多订两份披萨，如果超出这个规模，说明这个会议的人数太多了。

**3.缩短开会时间**

减少开会成本的另一个方法就是缩短开会时间。缩短开会时间有很多成熟可靠的方案可以选择。

比如说站立会议，通过站立的方式逼着大家快点结束。

另外，麦肯锡开会上有些做法也值得借鉴：

- 每个成员有一张黄牌，用于喊停其他人会议中发散讨论无意义的话题；
- 有人控制节奏，大家快速发言；
- PPT不超过3张，鼓励大家预先准备，多讨论。

还有比如我们在前面敏捷开发介绍的例子，会议有人主持，当话题开始发散的时候，果断制止，放到“停车场问题”环节，也就是会议的最后专门讨论。

类似这样的缩短开会时间的办法，确实可以有效减少会议成本，这类提升效率的方法还有很多，你可以从这个角度多思考尝试一下。

**4.提升会议所创造的价值**

如果能有效提升会议产出，也一样可以达到很好的效果。

比如说，每个会议要有明确的目的和主题，所有的讨论都要围绕会议目的展开。当你发现会议上一些问题的讨论偏离了会议的主题，例如一个需求评审会，结果架构师在讨论技术细节，这就完全偏离了主题。

你就应该站出来提醒一句：“现在既然是讨论需求，不如先不讨论技术上的问题，等到需求确定了，我们后面再慢慢讨论技术问题。”或者说：“不如这个问题我们另外组织一个会议讨论。”

还有开会后，要有明确的结论，有后续的待办事项，落实到个人，对待办事项有跟踪。

偷偷说一下，有时候一些没什么价值的会议，又必须要参加，我一般会参会前，用一个本子把一个技术难题、或者一篇博客主题，写下来。

开会的时候，把这个难题理清楚思路，把博客的提纲写出来，这样一个会议开完，我的问题也解决了，或者文章提纲也有了。同样也是收获满满，没有浪费太多时间。

这些都是提升会议价值的方式，相信你对会议成本有了概念以后，也可以找到很多可以帮助你提高开会效率、更好创造会议价值的方法。

## 总结

今天带你一起学习了解了开会的“道”，那就是开会是有价值的，开会是有成本，会议是不是高效，就看它创造的价值是不是高于其成本。

如果你想破除白天开会，加班写代码的节奏，就需要从缩减开会成本和提升开会价值的方向上去想办法，还需要让你的老板、项目经理都有“会议是有很高成本”的意识。

砍掉一些没价值的会议，减少开会的人数，缩短会议的时间，提高会议创造的价值。

## 课后思考

你在项目中，有哪些会议其实是可以不参加的？哪些会议是可以缩减人数的？哪些会议是可以缩短时间的？哪些会议是可以更好的提升价值的？或者你对上面的观点有哪些补充？欢迎在留言区与我分享讨论。

感谢阅读，如果你觉得这篇文章对你有一些启发，也欢迎把它分享给你的朋友。
