的,匯報(bào)時(shí)卻沒(méi)有我的名字)
《代碼之外程序員重啟人生》· 第03篇上一世他解決了項(xiàng)目里最難的問(wèn)題。最后的匯報(bào)材料里卻只剩下一句“團(tuán)隊(duì)共同完成”。項(xiàng)目上線(xiàn)后的第三天。林川收到一封會(huì)議邀請(qǐng)。會(huì)議主題是會(huì)員增長(zhǎng)系統(tǒng)二期項(xiàng)目總結(jié)匯報(bào)。參會(huì)人很多。業(yè)務(wù)負(fù)責(zé)人、部門(mén)領(lǐng)導(dǎo)、產(chǎn)品經(jīng)理、項(xiàng)目經(jīng)理以及參與項(xiàng)目的核心成員都在名單里。林川點(diǎn)開(kāi)邀請(qǐng)時(shí)停頓了一下。他記得這場(chǎng)會(huì)議。上一世就是這場(chǎng)項(xiàng)目總結(jié)會(huì)讓他第一次真正意識(shí)到把事情做出來(lái)的人不一定是最終被看見(jiàn)的人。那次項(xiàng)目雖然延期了九天但最終還是成功上線(xiàn)。系統(tǒng)最核心的規(guī)則引擎是林川設(shè)計(jì)的。第三方優(yōu)惠券接口反復(fù)出現(xiàn)重復(fù)發(fā)券問(wèn)題也是他連續(xù)排查兩個(gè)晚上后發(fā)現(xiàn)了對(duì)方接口的冪等缺陷。上線(xiàn)前一天數(shù)據(jù)庫(kù)出現(xiàn)性能瓶頸。所有人都認(rèn)為需要升級(jí)服務(wù)器。林川重新分析執(zhí)行計(jì)劃調(diào)整索引和查詢(xún)邏輯把接口響應(yīng)時(shí)間從四秒降到了七百毫秒。可以說(shuō)項(xiàng)目中最難、最關(guān)鍵的幾個(gè)問(wèn)題幾乎都經(jīng)過(guò)了他的手。但總結(jié)匯報(bào)那天站在臺(tái)上的人是項(xiàng)目經(jīng)理周凱。周凱用二十分鐘講完了整個(gè)項(xiàng)目。PPT里有項(xiàng)目背景、建設(shè)過(guò)程、上線(xiàn)成果和經(jīng)驗(yàn)總結(jié)。最后一頁(yè)寫(xiě)著在項(xiàng)目組全體成員的共同努力下項(xiàng)目順利完成上線(xiàn)。林川的名字沒(méi)有出現(xiàn)。規(guī)則引擎被描述為項(xiàng)目組創(chuàng)新設(shè)計(jì)了靈活的用戶(hù)運(yùn)營(yíng)能力。重復(fù)發(fā)券問(wèn)題被描述為團(tuán)隊(duì)及時(shí)協(xié)調(diào)第三方解決接口穩(wěn)定性問(wèn)題。數(shù)據(jù)庫(kù)性能優(yōu)化被描述為在項(xiàng)目經(jīng)理統(tǒng)一組織下研發(fā)團(tuán)隊(duì)完成系統(tǒng)性能提升。匯報(bào)結(jié)束后業(yè)務(wù)領(lǐng)導(dǎo)當(dāng)場(chǎng)表?yè)P(yáng)了周凱。“這個(gè)項(xiàng)目難度不小周期也很緊周凱整體推動(dòng)得不錯(cuò)。”部門(mén)負(fù)責(zé)人也點(diǎn)頭。“特別是跨部門(mén)協(xié)調(diào)和風(fēng)險(xiǎn)處理體現(xiàn)出了很強(qiáng)的項(xiàng)目管理能力。”周凱謙虛地笑了笑。“主要還是大家配合得好。”林川坐在會(huì)議室最后一排。他沒(méi)有生氣。至少一開(kāi)始沒(méi)有。他只是覺(jué)得奇怪。那些事情明明是自己做的。可經(jīng)過(guò)一份PPT和二十分鐘匯報(bào)以后整段經(jīng)歷仿佛被重新編譯了一遍。所有具體的人都消失了。最后只留下一個(gè)站在臺(tái)上的講述者。散會(huì)時(shí)周凱走過(guò)來(lái)對(duì)他說(shuō)“這次你技術(shù)上貢獻(xiàn)挺大的后面繼續(xù)保持。”林川問(wèn)“剛才匯報(bào)里為什么沒(méi)提具體分工”周凱愣了一下隨后笑道“項(xiàng)目是團(tuán)隊(duì)成果沒(méi)必要分得那么細(xì)。再說(shuō)領(lǐng)導(dǎo)主要看整體結(jié)果不會(huì)關(guān)心誰(shuí)寫(xiě)了哪個(gè)模塊。”林川當(dāng)時(shí)沒(méi)有再說(shuō)什么。因?yàn)檫@句話(huà)聽(tīng)起來(lái)很正確。項(xiàng)目當(dāng)然是團(tuán)隊(duì)成果。程序員也不應(yīng)該搶功。于是他把那點(diǎn)不舒服壓了下去。半年后周凱憑借這個(gè)項(xiàng)目晉升。晉升材料中的核心業(yè)績(jī)是牽頭建設(shè)會(huì)員增長(zhǎng)系統(tǒng)完成關(guān)鍵技術(shù)攻堅(jiān)與跨部門(mén)協(xié)同支撐業(yè)務(wù)快速上線(xiàn)。林川依舊是高級(jí)開(kāi)發(fā)工程師。績(jī)效評(píng)價(jià)里寫(xiě)著技術(shù)執(zhí)行能力較強(qiáng)但主動(dòng)影響和成果呈現(xiàn)不足。那時(shí)他才明白項(xiàng)目是團(tuán)隊(duì)成果。但晉升從來(lái)不是“團(tuán)隊(duì)一起晉升”。一、這一次會(huì)議還沒(méi)有開(kāi)始故事就已經(jīng)被別人寫(xiě)好了林川打開(kāi)項(xiàng)目總結(jié)會(huì)的附件。里面有一份PPT初稿。文件名是會(huì)員增長(zhǎng)系統(tǒng)二期總結(jié)匯報(bào)_v3.pptx他翻到第三頁(yè)。標(biāo)題項(xiàng)目建設(shè)歷程。下面是一條時(shí)間軸。需求評(píng)審、方案設(shè)計(jì)、研發(fā)實(shí)施、測(cè)試上線(xiàn)每個(gè)階段都寫(xiě)得很完整。在“關(guān)鍵技術(shù)攻堅(jiān)”部分列了三項(xiàng)成果完成靈活規(guī)則引擎建設(shè)解決第三方接口穩(wěn)定性問(wèn)題完成核心查詢(xún)性能優(yōu)化每一項(xiàng)都沒(méi)有負(fù)責(zé)人。在下一頁(yè)“項(xiàng)目組織保障”中卻寫(xiě)著項(xiàng)目經(jīng)理統(tǒng)籌業(yè)務(wù)、產(chǎn)品、研發(fā)及第三方資源建立日跟蹤、周復(fù)盤(pán)機(jī)制保障項(xiàng)目有序推進(jìn)。林川看了兩遍。他并不否認(rèn)周凱做過(guò)協(xié)調(diào)工作。項(xiàng)目經(jīng)理本來(lái)就應(yīng)該負(fù)責(zé)協(xié)調(diào)。真正有意思的是屬于項(xiàng)目經(jīng)理的工作被明確寫(xiě)成了個(gè)人貢獻(xiàn)。屬于研發(fā)人員的工作卻全部被概括成了團(tuán)隊(duì)成果。這不是偶然。匯報(bào)材料里越抽象的表達(dá)越容易抹掉具體貢獻(xiàn)。“研發(fā)團(tuán)隊(duì)完成技術(shù)攻堅(jiān)。”“項(xiàng)目組解決核心問(wèn)題。”“各方共同推動(dòng)項(xiàng)目上線(xiàn)。”每句話(huà)都沒(méi)有錯(cuò)。但這些正確的廢話(huà)會(huì)讓真正承擔(dān)關(guān)鍵工作的人成為背景。林川沒(méi)有立刻聯(lián)系周凱。他先打開(kāi)了自己從項(xiàng)目第一天開(kāi)始保存的工作記錄。里面有需求評(píng)審紀(jì)要技術(shù)方案版本Git提交記錄性能測(cè)試結(jié)果問(wèn)題排查過(guò)程風(fēng)險(xiǎn)同步記錄上線(xiàn)復(fù)盤(pán)結(jié)論每一個(gè)關(guān)鍵節(jié)點(diǎn)都有明確的事實(shí)和數(shù)據(jù)。上一世他以為代碼倉(cāng)庫(kù)會(huì)替自己證明一切。可領(lǐng)導(dǎo)不會(huì)在績(jī)效評(píng)審前翻Git記錄。他們也不會(huì)逐條查看項(xiàng)目群消息。組織對(duì)一個(gè)人的認(rèn)知往往來(lái)自幾頁(yè)P(yáng)PT、幾次會(huì)議和幾句評(píng)價(jià)。沒(méi)有人會(huì)主動(dòng)幫你完成事實(shí)到價(jià)值的翻譯。如果你不參與講述自己的工作別人就會(huì)替你講。至于那個(gè)版本里有沒(méi)有你不由你決定。林川關(guān)掉PPT。給周凱發(fā)了一條消息我看了項(xiàng)目總結(jié)材料技術(shù)攻堅(jiān)部分缺少具體數(shù)據(jù)和負(fù)責(zé)人。我整理了一版關(guān)鍵成果說(shuō)明建議補(bǔ)充到匯報(bào)中避免成果描述過(guò)于籠統(tǒng)。周凱很快回復(fù)總結(jié)會(huì)時(shí)間有限不需要講太細(xì)突出整體就可以。林川問(wèn)“項(xiàng)目組織保障”里為什么保留了具體的項(xiàng)目經(jīng)理工作對(duì)方過(guò)了幾分鐘才回復(fù)項(xiàng)目經(jīng)理需要向領(lǐng)導(dǎo)匯報(bào)整體推動(dòng)情況和研發(fā)分工不一樣。林川看著這句話(huà)笑了。原來(lái)具體貢獻(xiàn)是否需要寫(xiě)不取決于會(huì)議時(shí)間。而取決于是誰(shuí)的貢獻(xiàn)。二、程序員最容易被一句“不要搶功”困住下午周凱來(lái)到林川工位旁邊。“我看你對(duì)匯報(bào)材料好像有意見(jiàn)”林川轉(zhuǎn)過(guò)椅子。“不是意見(jiàn)是技術(shù)成果需要準(zhǔn)確呈現(xiàn)。”周凱拉了一把椅子坐下。語(yǔ)氣像是在給剛?cè)肼毜男氯藗魇诮?jīng)驗(yàn)。“林川你技術(shù)確實(shí)不錯(cuò)但格局要打開(kāi)。”“一個(gè)項(xiàng)目有產(chǎn)品、測(cè)試、研發(fā)、業(yè)務(wù)還有第三方。最后做成了本來(lái)就是大家的成果。”“如果每個(gè)人都強(qiáng)調(diào)自己做了什么這個(gè)團(tuán)隊(duì)還怎么合作”林川沒(méi)有立刻回答。上一世他就是被“格局”兩個(gè)字說(shuō)服的。程序員很容易被道德化語(yǔ)言限制。不爭(zhēng)是格局。不說(shuō)是低調(diào)。不強(qiáng)調(diào)貢獻(xiàn)是團(tuán)隊(duì)精神。接受額外工作是擔(dān)當(dāng)。反過(guò)來(lái)主動(dòng)說(shuō)明成果就可能被貼上標(biāo)簽愛(ài)表現(xiàn)搶功勞不團(tuán)結(jié)斤斤計(jì)較只考慮個(gè)人得失可奇怪的是真正拿走成果的人很少覺(jué)得自己在搶功。他們會(huì)使用更體面的詞整體負(fù)責(zé)。統(tǒng)一協(xié)調(diào)。牽頭推進(jìn)。代表團(tuán)隊(duì)匯報(bào)。最后做具體工作的人因?yàn)椴辉笭?zhēng)功而保持沉默。負(fù)責(zé)講故事的人則順理成章地成為了故事主角。林川看著周凱。“我同意這是團(tuán)隊(duì)成果。”“但團(tuán)隊(duì)成果不代表每個(gè)人的貢獻(xiàn)不能被準(zhǔn)確記錄。”周凱說(shuō)“領(lǐng)導(dǎo)不會(huì)關(guān)心這些細(xì)節(jié)。”“那領(lǐng)導(dǎo)為什么會(huì)關(guān)心你組織了日跟蹤和周復(fù)盤(pán)”周凱臉上的表情停了一下。林川繼續(xù)說(shuō)“協(xié)調(diào)是貢獻(xiàn)技術(shù)攻堅(jiān)也是貢獻(xiàn)。”“項(xiàng)目經(jīng)理的貢獻(xiàn)可以寫(xiě)清楚研發(fā)人員的貢獻(xiàn)同樣可以寫(xiě)清楚。”“這并不是搶功只是保持事實(shí)完整。”周凱皺了皺眉。“你現(xiàn)在一定要分得這么清楚嗎”林川回答“項(xiàng)目獎(jiǎng)金、績(jī)效和晉升都會(huì)分到個(gè)人項(xiàng)目貢獻(xiàn)當(dāng)然需要分清楚。”工位附近突然安靜了不少。旁邊幾個(gè)同事看著電腦卻明顯放慢了敲鍵盤(pán)的速度。周凱站起來(lái)。“那你把材料發(fā)給我我看看。”林川點(diǎn)頭。“我半小時(shí)內(nèi)發(fā)。”周凱離開(kāi)后前端同事轉(zhuǎn)過(guò)頭小聲說(shuō)“你真敢說(shuō)。”林川問(wèn)“哪句話(huà)說(shuō)錯(cuò)了嗎”對(duì)方想了想。“沒(méi)錯(cuò)但以前沒(méi)人這么直接。”林川笑了一下。以前沒(méi)人直接不代表這件事合理。只是大家都在等另一個(gè)人先開(kāi)口。三、他沒(méi)有寫(xiě)“我很辛苦”只寫(xiě)了三個(gè)數(shù)字林川沒(méi)有在材料里寫(xiě)自己加班到幾點(diǎn)。也沒(méi)有寫(xiě)自己連續(xù)工作了多少小時(shí)。辛苦是一種感受。成果需要證據(jù)。他整理了三項(xiàng)關(guān)鍵結(jié)果。第一項(xiàng)規(guī)則引擎設(shè)計(jì)原來(lái)的需求是每增加一種會(huì)員策略都需要研發(fā)重新修改代碼。林川設(shè)計(jì)了一套可配置規(guī)則模型將業(yè)務(wù)條件、執(zhí)行動(dòng)作和優(yōu)先級(jí)拆分。上線(xiàn)后產(chǎn)品可以通過(guò)后臺(tái)配置大部分運(yùn)營(yíng)規(guī)則。他寫(xiě)下完成會(huì)員規(guī)則引擎的核心方案設(shè)計(jì)與后端開(kāi)發(fā)將常規(guī)運(yùn)營(yíng)策略的交付周期由3—5個(gè)工作日縮短至半天以?xún)?nèi)。沒(méi)有強(qiáng)調(diào)寫(xiě)了多少代碼。只說(shuō)明解決了什么問(wèn)題。第二項(xiàng)第三方接口穩(wěn)定性聯(lián)調(diào)時(shí)優(yōu)惠券接口存在重復(fù)發(fā)放問(wèn)題。第三方最初認(rèn)為是研發(fā)重復(fù)調(diào)用導(dǎo)致。林川通過(guò)請(qǐng)求鏈路追蹤發(fā)現(xiàn)對(duì)方接口在超時(shí)后實(shí)際已經(jīng)執(zhí)行成功但返回結(jié)果丟失。他提出請(qǐng)求唯一標(biāo)識(shí)和狀態(tài)查詢(xún)機(jī)制最終解決了重復(fù)發(fā)券風(fēng)險(xiǎn)。他寫(xiě)下定位第三方接口超時(shí)場(chǎng)景下的冪等缺陷設(shè)計(jì)唯一請(qǐng)求標(biāo)識(shí)及狀態(tài)補(bǔ)償機(jī)制將重復(fù)發(fā)券測(cè)試發(fā)生率由20%降至0。第三項(xiàng)查詢(xún)性能優(yōu)化系統(tǒng)測(cè)試期間會(huì)員明細(xì)查詢(xún)平均需要4.2秒。業(yè)務(wù)無(wú)法接受。林川重構(gòu)查詢(xún)邏輯、調(diào)整索引后將時(shí)間降至680毫秒。他寫(xiě)下完成核心查詢(xún)鏈路優(yōu)化平均響應(yīng)時(shí)間由4.2秒降低至680毫秒滿(mǎn)足高峰期并發(fā)訪(fǎng)問(wèn)要求。寫(xiě)完后他在最后補(bǔ)充了一張分工表。成果事項(xiàng)主要負(fù)責(zé)人協(xié)作人員規(guī)則引擎設(shè)計(jì)與開(kāi)發(fā)林川產(chǎn)品、后端團(tuán)隊(duì)第三方接口問(wèn)題定位林川第三方、測(cè)試查詢(xún)性能優(yōu)化林川數(shù)據(jù)庫(kù)管理員項(xiàng)目整體推進(jìn)周凱各模塊負(fù)責(zé)人業(yè)務(wù)規(guī)則確認(rèn)產(chǎn)品經(jīng)理、業(yè)務(wù)負(fù)責(zé)人研發(fā)測(cè)試及上線(xiàn)驗(yàn)證測(cè)試負(fù)責(zé)人項(xiàng)目組沒(méi)有貶低任何人。也沒(méi)有把所有成果都寫(xiě)成自己的。誰(shuí)做了什么就寫(xiě)什么。這才是真正的團(tuán)隊(duì)合作。團(tuán)隊(duì)合作不是把所有人的名字刪掉。而是讓每個(gè)人的貢獻(xiàn)都出現(xiàn)在正確的位置。林川把材料發(fā)給周凱同時(shí)抄送了產(chǎn)品經(jīng)理和測(cè)試負(fù)責(zé)人。郵件正文只有一段話(huà)附件為本項(xiàng)目關(guān)鍵成果及分工補(bǔ)充說(shuō)明內(nèi)容基于項(xiàng)目記錄、測(cè)試數(shù)據(jù)和問(wèn)題處理過(guò)程整理請(qǐng)各位確認(rèn)。如有遺漏或表述不準(zhǔn)確請(qǐng)直接補(bǔ)充修改。十分鐘后測(cè)試負(fù)責(zé)人回復(fù)測(cè)試部分準(zhǔn)確我補(bǔ)充一項(xiàng)自動(dòng)化回歸工作。產(chǎn)品經(jīng)理也回復(fù)規(guī)則配置確實(shí)明顯提升了后續(xù)運(yùn)營(yíng)效率建議保留。周凱一直沒(méi)有回復(fù)。但半小時(shí)后PPT更新到了第四版。技術(shù)成果頁(yè)增加了具體數(shù)據(jù)。林川的名字依然沒(méi)有出現(xiàn)。四、他第一次發(fā)現(xiàn)有些人不是沒(méi)看到只是不想讓別人看到林川點(diǎn)開(kāi)PPT。技術(shù)成果從三句話(huà)變成了三組數(shù)據(jù)。規(guī)則配置效率提升。重復(fù)發(fā)券風(fēng)險(xiǎn)消除。查詢(xún)性能提高。看起來(lái)進(jìn)步很大。但成果負(fù)責(zé)人依然寫(xiě)著項(xiàng)目研發(fā)團(tuán)隊(duì)。而項(xiàng)目管理部分依舊寫(xiě)著周凱牽頭。林川明白了。這已經(jīng)不是表達(dá)習(xí)慣問(wèn)題。而是主動(dòng)選擇。周凱需要技術(shù)成果來(lái)證明項(xiàng)目?jī)r(jià)值。但不希望技術(shù)成果綁定到具體研發(fā)人員。因?yàn)橐坏┙壎I(lǐng)導(dǎo)就會(huì)知道項(xiàng)目中最重要的技術(shù)問(wèn)題是誰(shuí)解決的。他可以承認(rèn)團(tuán)隊(duì)有貢獻(xiàn)。但不能接受另一個(gè)具體的人過(guò)于突出。林川沒(méi)有繼續(xù)在私聊里爭(zhēng)論。他打開(kāi)項(xiàng)目總結(jié)會(huì)議邀請(qǐng)。點(diǎn)擊“回復(fù)所有人”。寫(xiě)道為便于會(huì)議準(zhǔn)確呈現(xiàn)項(xiàng)目成果我補(bǔ)充了一份項(xiàng)目關(guān)鍵技術(shù)成果和分工說(shuō)明已與產(chǎn)品、測(cè)試等相關(guān)負(fù)責(zé)人核對(duì)。建議作為會(huì)議附件供各方確認(rèn)及后續(xù)復(fù)用。附件發(fā)出。收件人包括所有參會(huì)人員。沒(méi)有指責(zé)任何人。也沒(méi)有說(shuō)周凱刪掉了自己的名字。他只是把事實(shí)放到了所有人都能看見(jiàn)的位置。五分鐘后周凱打來(lái)電話(huà)。“你為什么把材料發(fā)給所有人”“因?yàn)檫@是項(xiàng)目總結(jié)材料。”“匯報(bào)由我統(tǒng)一負(fù)責(zé)你這樣會(huì)讓信息很亂。”“我發(fā)的是事實(shí)補(bǔ)充不會(huì)影響你的整體匯報(bào)。”“你應(yīng)該先和我溝通。”“我已經(jīng)發(fā)給你了也收到了產(chǎn)品和測(cè)試的確認(rèn)。”周凱的語(yǔ)氣明顯冷了下來(lái)。“林川一個(gè)項(xiàng)目里不能每個(gè)人都自己對(duì)外發(fā)材料。”林川回答“同意。所以我沒(méi)有單獨(dú)做另一份項(xiàng)目匯報(bào)只補(bǔ)充了當(dāng)前PPT缺失的成果和分工。”電話(huà)那頭沉默了幾秒。“你最近變化很大。”林川說(shuō)“只是開(kāi)始重視工作記錄。”“你這樣很容易讓別人覺(jué)得你在搶功。”“材料里每個(gè)人的貢獻(xiàn)都寫(xiě)了。”“只寫(xiě)自己的貢獻(xiàn)才叫搶功。”“把所有人的貢獻(xiàn)都寫(xiě)清楚叫項(xiàng)目復(fù)盤(pán)。”周凱直接掛了電話(huà)。林川放下手機(jī)。心里沒(méi)有上一世面對(duì)沖突時(shí)的恐慌。過(guò)去他最怕別人說(shuō)自己不好相處。所以每次遇到爭(zhēng)議他都會(huì)先懷疑自己是不是太計(jì)較了是不是應(yīng)該再成熟一點(diǎn)是不是忍一下更有利于合作后來(lái)他才明白一個(gè)人只有在你保持沉默時(shí)才覺(jué)得你好相處那么他喜歡的不是你。而是你的沉默。五、匯報(bào)開(kāi)始后他坐在最后一排卻不再是背景周五下午兩點(diǎn)。項(xiàng)目總結(jié)會(huì)正式開(kāi)始。周凱站在大屏幕前。西裝熨得很平。語(yǔ)氣從容。“這次項(xiàng)目周期比較緊過(guò)程中也遇到了不少挑戰(zhàn)。在各方配合下我們最終按核心版計(jì)劃完成上線(xiàn)。”前半部分和上一世幾乎一樣。項(xiàng)目背景。目標(biāo)范圍。建設(shè)過(guò)程。進(jìn)度管理。講到技術(shù)成果時(shí)PPT上出現(xiàn)了林川整理的三個(gè)數(shù)字。周凱說(shuō)道“在技術(shù)方面項(xiàng)目組重點(diǎn)完成了規(guī)則引擎、接口穩(wěn)定性和系統(tǒng)性能三項(xiàng)攻堅(jiān)。”他仍然使用“項(xiàng)目組”。沒(méi)有提林川。但這一次會(huì)議桌上的每個(gè)人都已經(jīng)收到了那份分工材料。業(yè)務(wù)領(lǐng)導(dǎo)看著大屏幕。問(wèn)了一句“規(guī)則引擎是誰(shuí)負(fù)責(zé)設(shè)計(jì)的”會(huì)議室安靜了一瞬。周凱說(shuō)“主要是研發(fā)團(tuán)隊(duì)完成的。”業(yè)務(wù)領(lǐng)導(dǎo)繼續(xù)問(wèn)“具體誰(shuí)牽頭這個(gè)能力后續(xù)其他項(xiàng)目也可以復(fù)用。”周凱只能轉(zhuǎn)向林川。“林川負(fù)責(zé)得比較多。”所有人的目光落在會(huì)議室最后一排。林川沒(méi)有表現(xiàn)出受寵若驚。他打開(kāi)電腦。“核心方案是我負(fù)責(zé)的后端兩位同事參與了模塊開(kāi)發(fā)產(chǎn)品團(tuán)隊(duì)完成了規(guī)則梳理。”“目前引擎將業(yè)務(wù)條件、判斷關(guān)系和執(zhí)行動(dòng)作進(jìn)行了抽象可以復(fù)用到優(yōu)惠活動(dòng)、會(huì)員權(quán)益和消息觸達(dá)等場(chǎng)景。”業(yè)務(wù)領(lǐng)導(dǎo)問(wèn)“已經(jīng)在其他場(chǎng)景驗(yàn)證了嗎”“目前優(yōu)惠活動(dòng)正在復(fù)用不需要重新開(kāi)發(fā)規(guī)則判斷部分預(yù)計(jì)節(jié)省四個(gè)工作日。”業(yè)務(wù)領(lǐng)導(dǎo)點(diǎn)頭。“這個(gè)成果可以單獨(dú)總結(jié)后面在部門(mén)內(nèi)推廣。”周凱站在屏幕旁邊手里還拿著翻頁(yè)器。但從這一刻開(kāi)始會(huì)議的焦點(diǎn)已經(jīng)變了。講到重復(fù)發(fā)券問(wèn)題時(shí)測(cè)試負(fù)責(zé)人主動(dòng)說(shuō)道“這個(gè)問(wèn)題是林川通過(guò)鏈路日志定位的。開(kāi)始第三方一直認(rèn)為是我們重復(fù)請(qǐng)求后來(lái)證明是超時(shí)后響應(yīng)丟失。”第三方負(fù)責(zé)人也點(diǎn)頭。“當(dāng)時(shí)林工給的冪等方案確實(shí)解決了問(wèn)題。”講到性能優(yōu)化時(shí)數(shù)據(jù)庫(kù)管理員補(bǔ)充“索引調(diào)整只是其中一部分林川還重新拆了查詢(xún)鏈路否則只加索引達(dá)不到這個(gè)效果。”林川沒(méi)有主動(dòng)搶話(huà)。但其他人開(kāi)始替事實(shí)說(shuō)話(huà)。當(dāng)一個(gè)人的貢獻(xiàn)有記錄、有數(shù)據(jù)也被合作方確認(rèn)以后想從故事里刪除他就沒(méi)那么容易了。六、周凱想用“團(tuán)隊(duì)精神”結(jié)束討論領(lǐng)導(dǎo)卻問(wèn)了另一個(gè)問(wèn)題匯報(bào)臨近結(jié)束。周凱迅速翻到最后一頁(yè)。“總體來(lái)說(shuō)項(xiàng)目的成功離不開(kāi)各部門(mén)通力合作。個(gè)人只是其中一部分最重要的還是團(tuán)隊(duì)。”業(yè)務(wù)領(lǐng)導(dǎo)點(diǎn)了點(diǎn)頭。“團(tuán)隊(duì)當(dāng)然重要。”周凱像是終于松了一口氣。但領(lǐng)導(dǎo)下一句話(huà)是“正因?yàn)閳F(tuán)隊(duì)重要所以每個(gè)人做了什么要記錄清楚。”“否則項(xiàng)目結(jié)束以后我們既不知道該獎(jiǎng)勵(lì)誰(shuí)也不知道以后類(lèi)似問(wèn)題應(yīng)該找誰(shuí)。”周凱臉上的笑容有些僵。部門(mén)負(fù)責(zé)人接著說(shuō)“這次林川在技術(shù)方案和問(wèn)題處理上承擔(dān)了不少關(guān)鍵工作后面可以考慮讓他在技術(shù)側(cè)承擔(dān)更完整的職責(zé)。”林川看著前面的屏幕。上一世的這場(chǎng)會(huì)議領(lǐng)導(dǎo)從頭到尾沒(méi)有叫過(guò)他的名字。這一次事情并沒(méi)有因?yàn)樗鲃?dòng)說(shuō)明貢獻(xiàn)而變得難看。沒(méi)有人指責(zé)他搶功。沒(méi)有人認(rèn)為團(tuán)隊(duì)因此分裂。恰恰相反。事實(shí)越清楚所有人越知道下一個(gè)類(lèi)似項(xiàng)目該怎么組織。哪些能力可以復(fù)用。哪些人應(yīng)該承擔(dān)更大責(zé)任。所謂團(tuán)隊(duì)精神從來(lái)不應(yīng)該建立在抹掉個(gè)人貢獻(xiàn)之上。真正健康的團(tuán)隊(duì)不會(huì)害怕優(yōu)秀成員被看見(jiàn)。只有依賴(lài)信息差維持權(quán)威的人才害怕事實(shí)過(guò)于清楚。七、會(huì)議結(jié)束后他拒絕了一次看似善意的和解散會(huì)后周凱在電梯口叫住林川。“聊兩句”兩人走到走廊盡頭。周凱先開(kāi)口“今天的效果你滿(mǎn)意了”林川說(shuō)“項(xiàng)目成果準(zhǔn)確呈現(xiàn)我當(dāng)然滿(mǎn)意。”“你覺(jué)得我故意搶你的功勞”“我沒(méi)有這么說(shuō)。”“但你就是這個(gè)意思。”林川看著他。“那你為什么一直不愿意在材料里寫(xiě)負(fù)責(zé)人”周凱沉默了一會(huì)兒。“因?yàn)轫?xiàng)目匯報(bào)不能太突出個(gè)人。”“為什么項(xiàng)目管理可以突出你”周凱沒(méi)有回答。過(guò)了一會(huì)兒他語(yǔ)氣緩和下來(lái)。“林川大家以后還要一起工作。沒(méi)必要因?yàn)橐粋€(gè)名字把關(guān)系搞僵。”這句話(huà)聽(tīng)起來(lái)像是在和解。實(shí)際上是希望林川接受一個(gè)前提只要你繼續(xù)追究事實(shí)就是你在破壞關(guān)系。林川說(shuō)“關(guān)系不是因?yàn)槊指憬┑摹!薄笆且驗(yàn)橛腥苏J(rèn)為另一個(gè)人的名字不應(yīng)該出現(xiàn)。”周凱臉色沉了下來(lái)。“你以后會(huì)明白職場(chǎng)不是只看誰(shuí)做了多少。”林川點(diǎn)頭。“我已經(jīng)明白了。”“職場(chǎng)也看誰(shuí)記錄了過(guò)程誰(shuí)解釋了結(jié)果誰(shuí)站在臺(tái)上講述。”“所以我才開(kāi)始保留自己的版本。”周凱盯著他看了幾秒。轉(zhuǎn)身離開(kāi)。林川沒(méi)有追上去。不是所有關(guān)系都需要修復(fù)。有些所謂的關(guān)系本來(lái)就建立在你退讓、沉默和持續(xù)貢獻(xiàn)之上。當(dāng)你開(kāi)始要求公平對(duì)方說(shuō)關(guān)系變了。其實(shí)關(guān)系沒(méi)有變。只是你終于看清了它。八、下班前他收到了一封意外的郵件下午六點(diǎn)。林川收到部門(mén)負(fù)責(zé)人的郵件。主題關(guān)于會(huì)員規(guī)則引擎成果復(fù)用的安排郵件內(nèi)容很短林川請(qǐng)你整理本次規(guī)則引擎的設(shè)計(jì)思路、適用場(chǎng)景和復(fù)用方案下周在部門(mén)技術(shù)會(huì)上做一次分享。后續(xù)相關(guān)項(xiàng)目的技術(shù)方案評(píng)審由你參與把關(guān)。這不是晉升。也沒(méi)有立刻加薪。但它代表一件更重要的事林川不再只是那個(gè)在后臺(tái)解決問(wèn)題的人。他的能力開(kāi)始與具體成果綁定。組織開(kāi)始知道這件事是誰(shuí)做的。類(lèi)似問(wèn)題應(yīng)該找誰(shuí)。誰(shuí)可以承擔(dān)更大的職責(zé)。上一世他總覺(jué)得只要能力足夠強(qiáng)總有一天會(huì)被發(fā)現(xiàn)。這一世他終于承認(rèn)價(jià)值不會(huì)自動(dòng)傳播。代碼運(yùn)行在服務(wù)器上。成果運(yùn)行在組織的信息系統(tǒng)里。如果沒(méi)有記錄、數(shù)據(jù)、匯報(bào)和他人的確認(rèn)再重要的工作也可能只停留在你的電腦里。林川打開(kāi)自己的工作記錄。在項(xiàng)目總結(jié)下面增加了一行技術(shù)成果已完成部門(mén)層面同步后續(xù)推進(jìn)復(fù)用。然后他關(guān)掉電腦。這次他沒(méi)有感到自己贏了誰(shuí)。他只是拿回了一件本來(lái)就屬于自己的東西對(duì)自己工作經(jīng)歷的解釋權(quán)。九、程序員可以不邀功但不能沒(méi)有成果證據(jù)很多程序員不喜歡主動(dòng)講自己的貢獻(xiàn)。原因并不復(fù)雜。我們認(rèn)為事實(shí)應(yīng)該客觀(guān)。誰(shuí)提交了代碼倉(cāng)庫(kù)里都有。誰(shuí)解決了問(wèn)題項(xiàng)目成員都知道。誰(shuí)加班到凌晨群里也有記錄。可事實(shí)存在不等于事實(shí)會(huì)進(jìn)入評(píng)價(jià)。一次項(xiàng)目結(jié)束后真正被長(zhǎng)期保存下來(lái)的通常只有一份總結(jié)PPT一封項(xiàng)目郵件一次領(lǐng)導(dǎo)匯報(bào)一段績(jī)效評(píng)價(jià)一條晉升材料誰(shuí)參與制作這些內(nèi)容誰(shuí)就在參與定義項(xiàng)目歷史。程序員不需要天天在群里強(qiáng)調(diào)“這是我做的。”也不需要把團(tuán)隊(duì)成果全部變成個(gè)人功勞。但至少要做到三件事。第一記錄關(guān)鍵成果不要只記錄完成了哪個(gè)功能。要記錄解決了什么問(wèn)題帶來(lái)了什么變化有什么可量化結(jié)果哪些能力可以復(fù)用第二在項(xiàng)目結(jié)束前確認(rèn)分工項(xiàng)目總結(jié)不是結(jié)束后臨時(shí)編故事。關(guān)鍵事項(xiàng)、負(fù)責(zé)人和協(xié)作人員應(yīng)該及時(shí)記錄。第三讓成果進(jìn)入正式信息渠道私聊里的感謝很快就會(huì)消失。代碼評(píng)審里的認(rèn)可也未必會(huì)傳到管理者那里。真正重要的成果需要進(jìn)入周報(bào)、項(xiàng)目總結(jié)、復(fù)盤(pán)材料或者績(jī)效記錄。這不是邀功。就像程序員給系統(tǒng)寫(xiě)日志不是為了炫耀系統(tǒng)運(yùn)行過(guò)。而是為了讓真實(shí)發(fā)生過(guò)的事情能夠被追溯。寫(xiě)在最后有些人總會(huì)告訴認(rèn)真做事的人不要太在意名字。項(xiàng)目成功才是最重要的。團(tuán)隊(duì)成果不需要分得太清楚。可當(dāng)獎(jiǎng)金、績(jī)效和晉升開(kāi)始分配時(shí)他們又會(huì)非常準(zhǔn)確地寫(xiě)出自己的名字。所以程序員可以不爭(zhēng)虛假的功勞。但不能允許真實(shí)的貢獻(xiàn)被抹掉。你可以說(shuō)這是團(tuán)隊(duì)共同完成的。但也應(yīng)該繼續(xù)說(shuō)清楚誰(shuí)負(fù)責(zé)方案誰(shuí)完成開(kāi)發(fā)誰(shuí)解決風(fēng)險(xiǎn)誰(shuí)推動(dòng)協(xié)作。真正的團(tuán)隊(duì)精神不是所有人的名字都消失。而是每一個(gè)認(rèn)真完成工作的人都不需要擔(dān)心自己被從故事里刪除。林川的重啟還在繼續(xù)。下一次他將面對(duì)一個(gè)更加熟悉的問(wèn)題。一個(gè)同事把沒(méi)有完成的代碼交給他說(shuō)“你技術(shù)比較好順手幫我收一下尾吧。”上一世他熬夜幫對(duì)方完成了整個(gè)模塊。最后項(xiàng)目按時(shí)上線(xiàn)。對(duì)方獲得了表?yè)P(yáng)。而林川因?yàn)樽约旱娜蝿?wù)延期被評(píng)價(jià)為時(shí)間管理能力不足。這一世他決定讓所有的“順手”都顯示真實(shí)價(jià)格。本篇留一句話(huà)你可以不爭(zhēng)功但不能讓別人通過(guò)你的沉默成為你工作成果的唯一講述者。