时长11:49大小10.83M
你好,我是宝玉,我今天想与你讨论让很多程序员头疼的话题:开会。
说到开会,是很多人心中的痛,每天白天忙于参加各种会议,压缩了本来就少的可怜的工作时间。最可气的,有的人开完会工作就算完成了,而像我们写程序的,还得下班后加班加点赶进度!
所以一说到开会,程序员们往往如遇洪水猛兽一般,避之不及。
但我想说的第一个问题是:开会是有价值的。软件项目中有不少会议,其实有其价值所在,给你简单举例分析一下。
像评审会议,通过会议,可以让产品设计或架构设计在确定前,收集大家的意见,及时发现问题。
像每日站立会议,可以及时了解项目的进展,了解当前的困难和瓶颈,及时调整计划,解决问题。另外在会议上,每个人都要当众讲一下做过的事情和计划要做的事情,这也是一种无形的监督和约束。
像项目立项会议,可以创建一种仪式感,让每个人都知道项目的关键信息:
像项目总结会议,团队成员可以一起总结一下项目的得失,把经验总结下来,帮助团队在下一次做的更好。
还有很多会议我就不一一列举。从上面可以看出,这些会议都是可以创造价值的。
开会的成本,就像房间里的大象,显而易见而很多人却有意无意无视它的存在。
我们做个简单的数学计算,假设一个程序员月薪一万元,如果他每天四分之一的时间在开会,那就相当于公司每月花了 2500 元在会议上。
这还只是一个人的成本,如果开会的人多,那么仔细算算,整体的会议成本其实很夸张的。所以我想说的第二个问题就是:开会其实是有成本的,而且还不低。
其实软件项目中有些会议我是愿意参加的,因为是有价值的,高效的。比如说前面提到的每日站立会议,时间不长,但是收获很大。
再比如隔壁郑晔老师的《10x 程序员工作法》专栏中提到的“轻量级沟通”,其中建议的会议方式:人少,面对面沟通。这种小会通常也让我觉得很高效,经常能产生有价值的方案。
还有一些会议则让我觉得没什么价值,比如领导冗长的讲话,比如一堆人在偏离会议主题的讨论,比如跟我没什么关系却被迫参加的会议。
那么为什么这些会议给我的感觉完全不一样?这其实就是我想讲的第三个问题:会议是不是有效率,取决于它创造的价值是不是高于其成本。
我觉得像每日站立会这样的会议更有效率,其时间短、人数少,所以成本低,创造的价值高于其成本。而人数多,又偏离会议主题的讨论会则没有价值,这是因为人数多时间长,导致会议成本高,而其创造的价值远远不及成本。
那为什么还有那么多低效率的会议?因为有的会议,就不是为了创造价值。
比如说有的会议,花的成本不是组织者的,对他来说,得到他的会议价值就可以了。
你是砍柴的,他是放羊的,你和他聊了一天,他的羊吃饱了,你的柴呢?
还有很多会议,是因为组织者和参与者,都没有意识到开会其实是有成本的,所以浪费了成本还不自知。不过这种情况还好,还是可以想办法改进的。
接下来,我们来看看如何提高开会效率,破除避免白天开会,晚上还要加班写代码的节奏。
我们专栏有一篇文章《08 | 怎样平衡软件质量与时间成本范围的关系?》,很多同学看过里面讲的软件项目金三角理论后,直呼“醍醐灌顶”、“终于找到一套可以说服老板的说辞了”、“能够提高与产品经理打太极的水准”。
其实提高开会效率、提升开会价值的方法,就跟软件项目金三角的理论一样,只要从两个角度去想办法:减少开会的成本,增加开会创造的价值!
在具体探讨这两类方法之前,我们先要认识到一个前提:那就是要让大家意识到开会是有成本的,如果开会创造的价值不能大于其成本,就是浪费。
就像金三角理论,你得先让老板、项目经理明白三条边不可能都占,才好去沟通讨论。要提高开会效率,也需要大家先有这个意识,才能在具体措施上达成一致。
那么,有哪些方法可以减少开会的成本呢?
1. 砍掉一些没价值的会议
在日常工作中,还有很多会议其实并没有什么价值的。如果一个会议符合这些标准,你就要慎重考虑参加了:
所以,你可以在每次要接受一个会议邀请之前,先问自己两个问题再做决定:这个会议我真的有必要参加吗?以及,有其他方式可以替代吗?
其实,很多问题并不是非要通过“会议”的方式解决。
以前我负责的一个服务,其他组需要调用,所以有一个组的同事想跟我组织一个会议,让我介绍一下服务,以及如何调用。我思考了一下,觉得准备这个会议我也要写一个 PPT,开会还得要时间,这时间我足够写一个详细的说明文档出来了,而且以后其他组再要用,也只要看文档就可以了。
于是我就跟他们说:我们不用开会,我一会发一个文档链接给你们,如果有问题我们可以在聊天工具上沟通。后来他们看完文档后,有几处不清楚的地方,在咨询过我以后,我将文档更新好,就没什么问题了,而且后面再不需要为这件事开会了。
2. 减少参与会议的人
会议的成本和两个因素相关:一个是人数,一个是时间。如果减少人数,就能减少成本。
减少人数好处还在于,人一少,每个人都会更投入,也更有效率,所以往往时间反而会少产出会高。而且,如果会议上要形成一些决议,人越多越难做决策,人越少越容易达成一致。要想有决议的话,先开几个小会,达成一致后再开大会,大会更多只是宣布一个结果。
像谷歌和 Facebook,他们对于会议的态度就是能不开就不开,无关的人不参与。Amazon 的规则也很简单:一场会议的人数,最多订两份批萨,如果超出这个规模,说明这个会议的人数太多了。
3. 缩短开会时间
减少开会成本的另一个方法就是缩短开会时间。缩短开会时间有很多成熟可靠的方案可以选择。
比如说站立会议,通过站立的方式逼着大家快点结束。
另外,麦肯锡开会上有些做法也值得借鉴:
还有比如我们在前面敏捷开发介绍的例子,会议有人主持,当话题开始发散的时候,果断制止,放到“停车场问题”环节,也就是会议的最后专门讨论。
类似这样的缩短开会时间的办法,确实可以有效减少会议成本,这类提升效率的方法还有很多,你可以从这个角度多思考尝试一下。
4. 提升会议所创造的价值
如果能有效提升会议产出,也一样可以达到很好的效果。
比如说,每个会议要有明确的目的和主题,所有的讨论都要围绕会议目的展开。当你发现会议上一些问题的讨论偏离了会议的主题,例如一个需求评审会,结果架构师在讨论技术细节,这就完全偏离了主题。
你就应该站出来提醒一句:“现在既然是讨论需求,不如先不讨论技术上的问题,等到需求确定了,我们后面再慢慢讨论技术问题。”或者说:“不如这个问题我们另外组织一个会议讨论。”
还有开会后,要有明确的结论,有后续的待办事项,落实到个人,对待办事项有跟踪。
偷偷说一下,有时候一些没什么价值的会议,又必须要参加,我一般会参会前,用一个本子把一个技术难题、或者一篇博客主题,写下来。
开会的时候,把这个难题理清楚思路,把博客的提纲写出来,这样一个会议开完,我的问题也解决了,或者文章提纲也有了。同样也是收获满满,没有浪费太多时间。
这些都是提升会议价值的方式,相信你对会议成本有了概念以后,也可以找到很多可以帮助你提高开会效率、更好创造会议价值的方法。
今天带你一起学习了解了开会的“道”,那就是开会是有价值的,开会是有成本,会议是不是高效,就看它创造的价值是不是高于其成本。
如果你想破除白天开会,加班写代码的节奏,就需要从缩减开会成本和提升开会价值的方向上去想办法,还需要让你的老板、项目经理都有“会议是有很高成本”的意识。
砍掉一些没价值的会议,减少开会的人数,缩短会议的时间,提高会议创造的价值。
你在项目中,有哪些会议其实是可以不参加的?哪些会议是可以缩减人数的?哪些会议是可以缩短时间的?哪些会议是可以更好的提升价值的?或者你对上面的观点有哪些补充?欢迎在留言区与我分享讨论。
感谢阅读,如果你觉得这篇文章对你有一些启发,也欢迎把它分享给你的朋友。
作者回复: 总结的非常好的👍
从课程的理论知识,结合了实际工作场景的案例👍
我不觉得思维上有任何问题:)
有一点意见可以参考:如果你需要别人给你意见,本质上跟开会一样,不宜主题太多太分散,不然别人抓不住重点。
下次你可以在总结完了后,针对一两个具体问题问,这样被提问的人更容易抓住重点,供参考。
作者回复: 你这些宝贵经验对大家包括我都很有价值👍
我以前老板就特别能说,完全收不住😂
作者回复: 同一个会议,对不同的人价值是不一样的,别让自己当砍柴的陪放养的聊天:)
作者回复: 你这个简洁👍
本质上就是做加法和减法
作者回复: 对,我支持你的观点:有时候要勇敢离场,只要解释一下相信都能理解,毕竟会议之外创造的价值更大。
作者回复: 是的,很多会议是有价值的👍
作者回复: 👍有价值的补充
作者回复: 我想你说的应该是需求评审会议或者需求讲解会议,对于这类会议,建议你会议前读一下文档,这样心中有数,同时对于文档中觉得不清楚或者有疑惑的地方记录下来,在会议中提出。
不同的会议重点不一样,开会之前你都可以实现了解下这次会议的主要目的是什么,然后事先准备一下,这样开会就会更有效率一些。
如果你是有具体某个类型的会议,也可以新开留言。
作者回复: 👍赞,这样的打断很有必要,不然很容易就偏离主题了!
作者回复: 👍很好的经验分享
作者回复: 我确实整理了一些,后来因为篇幅原因删减了,我和编辑商量一下,在下一次整理留言的时候放出来,作为这条回复。
作者回复: 代码评审会我建议你可以改成Code Review。参考《06 | 大厂都在用哪些敏捷方法?(上)》中描述的。
也就是你每一个人写的代码,要合并到主分支之前,需要有人Review,Review的过程自然就需要去了解对方代码的逻辑和规范,也是个很好的相互学习的机会。
但这个必须要有配套的流程规范严格执行,要是流于形式就没有意义了。
需求分析会要拆开效果更好,先开一个大会概要性简单讲清楚整体需求,然后开小会和业务相关的开发人员沟通,这样更高效。
开发设计的评审会议要分多次开,一开始不要太细,先确定大方向,然后逐步细化。不然修改成本高,沟通难度大。
参考《21 | 架构设计:普通程序员也能实现复杂系统?》
还有一个很重要的会议就是迭代/项目回顾总结会议,在迭代或者项目结束后,大家一起讨论总结项目中得失,提出具体的改进意见。
作者回复: 这种确实不合理,如果有新任务插进来,那么就必须要对现有计划进行调整。
建议以后遇到类似临时插入任务的问题,当时就说清楚优先级,以及造成的影响和后果,当时就一起把计划做出调整。
作者回复: 👍有收获就好
也谢谢补充
作者回复: 👍很好的经验分享