到現(xiàn)在我已經(jīng)專業(yè)地構(gòu)建軟件超過10年時(shí)間了。我熱愛我的工作,并且我希望能在這一行一直干到成為老程序員的那一天。一路走來,我遇到過很多可怕的事情,讓我覺得我的工作非常之討厭。我希望能有人在我職業(yè)生涯的早期給我一些指引,這樣的話,當(dāng)一些我未曾經(jīng)歷過的不幸的可怕事情降臨的時(shí)候,我不會(huì)那么孤單和灰心喪氣。
這篇文章旨在提供這樣的指導(dǎo)。我有三個(gè)目標(biāo)。
第一個(gè)目標(biāo)是回顧過去:總結(jié)我們過去已經(jīng)取得的經(jīng)驗(yàn)。這些經(jīng)驗(yàn)是我們理解的基礎(chǔ)。它們將作為判斷其他不熟悉問題的參考點(diǎn)。
第二個(gè)目標(biāo)是展望將來:弄清楚沒有經(jīng)歷過的新問題,但可能會(huì)在未來的某一天成為你的攔路虎。我希望這些列舉的問題能幫助你做好應(yīng)對(duì)的準(zhǔn)備,并決定什么是值得追求的。
第三個(gè)目標(biāo)是讓你產(chǎn)生情感共鳴,并互相尊重隊(duì)友正在面對(duì)的困難。你可能永遠(yuǎn)不會(huì)經(jīng)歷許多這些前瞻性的困境,尤其如果你不是技術(shù)主管和經(jīng)理的話。同樣的,如果你是一個(gè)技術(shù)主管或經(jīng)理的話,你可能已經(jīng)忘記作為一個(gè)獨(dú)立貢獻(xiàn)者是什么感覺:你可能會(huì)日漸與現(xiàn)實(shí)脫節(jié)。
以下列表不按優(yōu)先順序排列。其中包括其他人告訴我的觀察結(jié)果:這些事情并非所有都是我直接經(jīng)歷過的。因此,如果你曾和我共事過,請(qǐng)不要認(rèn)為說的是你而對(duì)號(hào)入座。事實(shí)上,令人驚訝的是,這些故事比比皆是,非常常見。
同樣要注意的是,還有一些其他類別的可怕事情是這篇文章所沒有囊括的:種族歧視,性別歧視,年齡歧視,騷擾,以及許多其他會(huì)導(dǎo)致不友好工作環(huán)境的因素。我不打算寫這方面的內(nèi)容,而且這些在其他帖子中已經(jīng)被詳細(xì)分析和描述過了。
我寫這篇文章的目的是列舉在團(tuán)隊(duì)中構(gòu)建軟件的本質(zhì)是什么。如果你覺得我有遺漏的地方,請(qǐng)告訴我。我相信,許多要點(diǎn),尤其是關(guān)于主管和經(jīng)理的那些,也適用于其他行業(yè)。請(qǐng)記住,這些工作職位并非都是不好的:我的下一篇帖子將談?wù)勊鼈兒玫牡胤健?/p>
成為程序員有哪些可怕的地方?
對(duì)于編寫代碼和受技術(shù)主管或經(jīng)理指揮的獨(dú)立貢獻(xiàn)者:
有太多的東西需要學(xué)習(xí),卻沒有足夠的時(shí)間
代碼寫得很爛
當(dāng)前抽象很糟糕
我已經(jīng)用不同的方式完成了這個(gè)
這些注釋沒有任何意義,沒有更新
沒有關(guān)于如何構(gòu)建或它為什么這樣工作的文檔
構(gòu)建很慢
測(cè)試很慢
測(cè)試不切實(shí)際
沒有測(cè)試
需要大量樣板文件、復(fù)雜代碼或混淆測(cè)試的糟糕框架
經(jīng)理要求我為了開發(fā)速度犧牲代碼質(zhì)量
沒有通知就更改依賴
本地開發(fā)、測(cè)試和生產(chǎn)之間的差異
陷在一個(gè)問題上或調(diào)試了很長(zhǎng)一段時(shí)間
我需要修改破壞了的或不切實(shí)際并且不是我初寫的測(cè)試
我需要和其他導(dǎo)致bug或生產(chǎn)問題的人一起處理,但他們沒有立馬積極修復(fù)的欲望
不得不維護(hù)其他人蹩腳的代碼或系統(tǒng),在他們離開之后
應(yīng)該自動(dòng)化的事情卻沒有自動(dòng)化
總是被隊(duì)友和經(jīng)理打斷工作
上下文切換成本
經(jīng)理要求我工作于緊急項(xiàng)目
代碼審查時(shí)我的隊(duì)友們特別混蛋,因?yàn)闀?huì)對(duì)我進(jìn)行人身攻擊
其他人延遲發(fā)布我在工作中所需要的功能
其他工程師構(gòu)建他們的功能或組件太慢
大量時(shí)間花在了等待上
有我不贊同的產(chǎn)品決定
剛剛告訴過我要做什么又來說一遍
沒有自主權(quán)
沒有人尊重我的意見
我玩命地完成工作,然后有人告訴我要重做
產(chǎn)品經(jīng)理改變了我的要求,因?yàn)閷?duì)批評(píng)過于強(qiáng)烈或因?yàn)槠渌说姆答伔磻?yīng)
成為技術(shù)主管有哪些可怕的地方?
對(duì)于一個(gè)寫代碼也領(lǐng)導(dǎo)獨(dú)立貢獻(xiàn)者小組設(shè)計(jì)和實(shí)施工作的軟件工程師而言(同時(shí)也被其他人管理):
生產(chǎn)中的一切總是被打破
太多的電子郵件或文檔需要閱讀和答復(fù)
工作中未加檢查就算通過
一切都落后于計(jì)劃
其他人做出了一些我不贊同的技術(shù)設(shè)計(jì)決策,但我沒有能力或權(quán)力說服他們改變主意
實(shí)施馬虎或?qū)嵤┲泻雎粤爽F(xiàn)有的最佳實(shí)踐
出現(xiàn)了計(jì)劃外的事情:打破假設(shè)的遲到的功能需求
我真的覺得最后期限和依賴性于我而言壓力山大,以致于當(dāng)我下班回家了以后依然難以放松
對(duì)每個(gè)人的監(jiān)管比我預(yù)想得還要多,不管我如何努力解釋細(xì)節(jié)或文檔化計(jì)劃
花費(fèi)很長(zhǎng)時(shí)間來發(fā)布某個(gè)東西卻因?yàn)榉羌夹g(shù)原因被廢止
在時(shí)間和質(zhì)量之間做艱難抉擇;故意發(fā)布已知的bug到生產(chǎn)中
我要對(duì)此負(fù)責(zé),為什么其他人不用?
我沒有做到我的責(zé)任,但是也沒有一個(gè)人幫助我
我不知道我的經(jīng)理一整天都做了什么,但我不認(rèn)為這會(huì)有用
我不知道產(chǎn)品經(jīng)理一整天都做了什么,但我不認(rèn)為這會(huì)增加價(jià)值
就像是團(tuán)隊(duì)中的其他工程師試圖通過不遵循我們已經(jīng)協(xié)商一致的計(jì)劃來削弱我;我覺得自己像是一個(gè)打小報(bào)告的人,當(dāng)我和他們的經(jīng)理談到這個(gè)的時(shí)候
我認(rèn)為會(huì)是我負(fù)責(zé)的項(xiàng)目被收回,并且因?yàn)橐恍┪覠o法理解的原因交給了其他人
在合理的時(shí)間內(nèi)我沒有足夠的工程師完成項(xiàng)目工作
當(dāng)我說將會(huì)有多么困難的時(shí)候,大家聽不進(jìn)去并且不愿意減小規(guī)模
成為項(xiàng)目經(jīng)理有哪些可怕的地方?
對(duì)于那些管理一組軟件工程師的人。這個(gè)人同時(shí)也可以是技術(shù)主管,或管理指導(dǎo)報(bào)告的技術(shù)主管。
不惡劣一點(diǎn)很難要求或告訴大家去做事情
總是感覺所有事情都很緊急
感覺一整天每個(gè)人都在向我抱怨
沒時(shí)間看郵件
沒有時(shí)間閑聊,即使我覺得這樣太不合群
每次回到家都有一種精疲力盡的感覺;有時(shí)讓人覺得不堪重負(fù);當(dāng)一些對(duì)我有意義的人走進(jìn)我想談?wù)勊麄兊膯栴}時(shí),我是如此的疲憊不堪以致于根本聽不進(jìn)他們的問題
任何時(shí)候,我的報(bào)告中呈現(xiàn)一個(gè)或多個(gè)這樣的狀態(tài):
正要放棄
厭煩團(tuán)隊(duì)中的某個(gè)人
厭煩其他團(tuán)隊(duì)中的某個(gè)人
厭煩自己
被人冒犯但理由很充足
被人冒犯并且毫無理由
有一個(gè)正當(dāng)理由對(duì)代碼庫(kù)不滿
因?yàn)橥昝乐髁x/無效原因而不滿代碼庫(kù)
對(duì)他們的項(xiàng)目不滿,想要工作于別的工作,即使他們正在做的是最重要的事情
個(gè)人問題正影響著他們的幸福感,并且經(jīng)常導(dǎo)致他們負(fù)面作用于周圍人的士氣
無聊;如果有人提供合適工作的話,他們顯然會(huì)跳槽
其他經(jīng)理的工作是安排會(huì)議。他們不寫代碼;他們唯一能影響人的途徑就是用嘴巴說話。所以我拉進(jìn)了一堆無用的會(huì)議中。一堆浪費(fèi)時(shí)間的會(huì)議。
少寫代碼;感覺失去了我的優(yōu)勢(shì)。有時(shí)很難看到我做了什么貢獻(xiàn)。我必須改變我的重心。在幫助他人變得更有效率中尋找滿足感讓人感覺不自然。
沒有做重要的技術(shù)決定從而導(dǎo)致事情嚴(yán)重出錯(cuò)
項(xiàng)目將落后或失敗,因?yàn)槲椅绣e(cuò)了人
其他經(jīng)理在政治上暗中陷害我
我最大的問題是要保密,因此我不能要求任何支持或建議
不知道CTO / VP做什么;他們似乎并不能增加任何價(jià)值;他們會(huì)問一些無知的問題并且常常目下無人
我的一些最好的工程師將他們的時(shí)間浪費(fèi)在那些無關(guān)緊要的項(xiàng)目上,但我不敢去阻止他們,因?yàn)槲遗逻@樣會(huì)把他們推離團(tuán)隊(duì),并導(dǎo)致他們辭職
每個(gè)人對(duì)我是如何管理團(tuán)隊(duì)的至少有某一方面是不同意的
聯(lián)系客服