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