程序員都討厭開會?
據(jù)說程序員都討厭開會,不知道是不是都,但我確實(shí)也不喜歡。「小道消息」的 Fenng 曾經(jīng)寫過在阿里的后兩年,他負(fù)責(zé)數(shù)據(jù)庫團(tuán)隊(duì)時(shí),每周會議也是多到讓其感覺無法忍受。程序員討厭寫文檔是出了名的,但討厭開會的程度是討厭寫文檔的立方,以上推論來自漫畫《神秘的程序員》,如下:
有哪些會?
當(dāng)我打算寫這個(gè)主題時(shí),反思了下過去都參加過哪些會議,發(fā)現(xiàn)有時(shí)會莫名其妙的就參加了一些完全無意義的會議。下面我們先看看一般程序員都會碰到哪些會議。
需求會
這類會議一般是產(chǎn)品或項(xiàng)目經(jīng)理召集,組織參與項(xiàng)目的程序員一起討論需求并確定排期。這類會議容易出的問題是,程序員到了會上才***次知道需求,并陷入到需求細(xì)節(jié)的無休止討論中。更好的方式是提前讓程序員詳細(xì)了解需求,會上只需敲定排期并讓互相有協(xié)作依賴的程序員之間達(dá)成一致和形成承諾。
討論會
這類會議的場景比較廣泛,比如:項(xiàng)目進(jìn)行過程中同組程序員之間就設(shè)計(jì)或?qū)崿F(xiàn)的討論,或與其他組項(xiàng)目合作人之間的討論等等。這類會議容易出現(xiàn)的問題是臨時(shí)把一堆人拉到會上,然后陷入混亂的自由討論,失去焦點(diǎn)。
還有一類討論會叫頭腦風(fēng)暴會,也是容易把一堆人拉到會上,開動頭腦風(fēng)暴。如今遺憾的領(lǐng)悟到這是最沒效率也沒效果的方式。頭腦風(fēng)暴會需要就待解決的問題讓參與人員提前準(zhǔn)備,搜集或閱讀材料,不同人從不同角度各自提出自己的觀點(diǎn)或方案,然后到了會上將所有觀點(diǎn)和方案列出來,再開動頭腦,碰撞連接一下,看看能不能風(fēng)暴出一些新的觀點(diǎn)或方案去有效解決問題。
周例會
一般來說一個(gè)部門或小組都會每周開個(gè)例會,例會容易被當(dāng)作日常的例行工作而不被重視。例會應(yīng)該有固定的時(shí)間和議程,而且例會是一群經(jīng)常一起工作并熟悉的人開會。雖然開例會的人都在同一個(gè)部門,但并不意味著他們都會相互合作完成同一個(gè)項(xiàng)目或事情。所以,例會是通過了解各自工作來完成了解整個(gè)部門或小組工作進(jìn)展的機(jī)會,而不是每周固定的休閑時(shí)光。當(dāng)然我們也可以在每周的例會留出一段自由討論時(shí)間,可以暢所欲言,增加工作之外交流。
除了周例會,有些實(shí)施敏捷方法的團(tuán)隊(duì)也會開每日站立會,每日站立會的一般內(nèi)容是:
-
昨天干了什么
-
今天計(jì)劃干什么
-
遇到了什么障礙
每日站立會議的主要目的是讓團(tuán)隊(duì)成員互相交流互通工作情況,而不是為了讓經(jīng)理們了解情況而召開的會議。每日站立會不是一個(gè)團(tuán)隊(duì)的人站一圈各自說下工作情況,因?yàn)樵?jīng)發(fā)現(xiàn)彼此并不關(guān)心對方工作內(nèi)容的人站一圈開這個(gè)站立會,其意義何在?
分享會
部門內(nèi)、公司內(nèi)或行業(yè)內(nèi)都會有各類不同規(guī)模分享會,想清楚你為什么要去參加一個(gè)分享會?一般來說我只有兩個(gè)原因,我對分享的內(nèi)容感興趣,這應(yīng)該是大部分人參會的原因。另一個(gè),即使分享內(nèi)容我已經(jīng)很熟悉,那么參會的原因一般就是對分享人感興趣,想要去通過這個(gè)分享了解分享人。
還有一種情況可能是礙于面子參加一些完全沒興趣的分享會,恩,這種還是盡量規(guī)避吧。
臨時(shí)會
總會碰到這種情況,突然有個(gè)人過來叫你臨時(shí)去參加個(gè)會,然后你就一臉懵逼的去了。這種會似乎屬于身不由己,不好規(guī)避,這類會議多是非計(jì)劃性的任務(wù)驅(qū)動型會議。英特爾前 CEO 安迪·格魯夫說過:
在現(xiàn)實(shí)中,有 20% 的情況還得靠任務(wù)導(dǎo)向會議來解決。但如果經(jīng)理人將超過 25% 的時(shí)間用在應(yīng)急的任務(wù)導(dǎo)向會議上,這個(gè)組織就一定有了毛病。
這種類型的會議隨時(shí)召開,而且會針對具體情況產(chǎn)生決策,若這種臨時(shí)緊急的任務(wù)驅(qū)動會議太多了,那問題肯定出在平時(shí)的工作中。
總結(jié)會
可能是項(xiàng)目上線或產(chǎn)品發(fā)布后的總結(jié)會,也可能是線上故障后的經(jīng)驗(yàn)教訓(xùn)總結(jié)會。我以前開過的很多總結(jié)會都變成了領(lǐng)導(dǎo)的總結(jié)會,關(guān)于這類會大家有什么好想法嗎?
參加會議
反思了上面參加過的各種類型會議,然后我得出了一個(gè)以后參會的原則:若我沒有在會議上發(fā)言的潛在可能,就不需要參加。
發(fā)言的可能表明你參會是存在主動因素的,需要通過發(fā)言(建議、意見、詢問、交流)去取得收獲。但并不意味著每次參會都需要發(fā)言,只是說存在這種可能。比如,參加一個(gè)分享會,可能你是想去交流和詢問了解一些東西,但可能在分享的過程中你已經(jīng)有了答案,就沒必要發(fā)言詢問了。
有時(shí)你會收到一些莫名的會議邀請郵件,只是因?yàn)槭占酥杏心愕拿郑蜁蛔杂X地在會議自動提醒彈出時(shí)跑去參會。其實(shí)在會上發(fā)現(xiàn)好像和自己又沒多大關(guān)系,但進(jìn)行到一半又不好離場,只好自顧自的玩起了手機(jī),是不是很熟悉的場景?
即使一個(gè)臨時(shí)會,看似完全被動,也可以問問通知人為什么需要你去?很可能通知人會告訴你是 Boss(老板或上司)找你,他也不知道原因?好吧,這種情況只好去了,這里的問題不在你,而在你的 Boss 身上。Boss 可能只是找你咨詢一些細(xì)節(jié)情況,也可能需要咨詢你的意見。總之一種完全沒準(zhǔn)備的臨時(shí)會議是不利于效率和效果的。
一個(gè)正在埋頭編程的程序員,突然被通知開個(gè)臨時(shí)會議,程序員還可能陷在前一份編碼工作的細(xì)節(jié)中沒切換出來,導(dǎo)致后續(xù)的臨時(shí)溝通討論都比較低效。所以,若不是特別緊急,盡可能把各種會議安排在一天的開始或結(jié)束前,為程序員留出整段的集中時(shí)間來進(jìn)入狀態(tài)和脫離狀態(tài)。
組織會議
你可能沒想過,有些程序員把開會當(dāng)作編程一樣來設(shè)計(jì)。
模式
現(xiàn)在后端分布式領(lǐng)域流行微服務(wù)架構(gòu),所以我也主張微會議,一個(gè)會議聚焦一件事,除了分享會,不要召集太多人來參會。人越多可能越混亂和無效,效率損失也很大。
架構(gòu)
設(shè)計(jì)程序時(shí)需要仔細(xì)選擇組件,所以可以像編程一樣設(shè)計(jì)會議,剔除多余的資源消耗,保持簡潔。仔細(xì)分析每個(gè)潛在的參會人是否對本次會議有價(jià)值,我們不需要一個(gè)冗余的玩手機(jī)的參會人。如果你發(fā)現(xiàn)你的會議上多了一個(gè)玩手機(jī)的家伙,那不是別人的錯(cuò),而是你的錯(cuò)誤。
實(shí)現(xiàn)
在正式編碼前,我們早已在頭腦或紙上做好了設(shè)計(jì),只是用代碼將其表達(dá)出來。所以,正式開始會議前,請確保參會人都做好了準(zhǔn)備,而不是到了會議桌前才開始想這個(gè)會議需要解決什么問題?
會議的過程也需要掌控節(jié)奏,集中主題,避免發(fā)散跑偏。代碼實(shí)現(xiàn)時(shí)總會出現(xiàn)超出當(dāng)初設(shè)計(jì)的一些現(xiàn)實(shí)問題沒考慮到,會議中也可能突然冒出一些新想法,和編碼不同,對這些新情況若發(fā)現(xiàn)有價(jià)值但又無法短時(shí)間討論清楚,可以先記錄下來,列入下次會議的議程,而避免本次會議過度發(fā)散,導(dǎo)致會議延時(shí),主題分散,沒有結(jié)論。
...
把開會當(dāng)作一個(gè)程序問題來分析后,我發(fā)現(xiàn)開會其實(shí)也沒那么討厭了。