讓程式設計師/技術主管/專案經理最可怕的事情是什麼?

2016-05-09    分類:程式設計師人生、首頁精華1人評論發表於2016-05-09

本文由碼農網 – 小峰原創翻譯,轉載請看清文末的轉載要求,歡迎參與我們的付費投稿計劃

到現在我已經專業地構建軟體超過10年時間了。我熱愛我的工作,並且我希望能在這一行一直幹到成為老程式設計師的那一天。一路走來,我遇到過很多可怕的事情,讓我覺得我的工作非常之討厭。我希望能有人在我職業生涯的早期給我一些指引,這樣的話,當一些我未曾經歷過的不幸的可怕事情降臨的時候,我不會那麼孤單和灰心喪氣。

這篇文章旨在提供這樣的指導。我有三個目標。

第一個目標是回顧過去:總結我們過去已經取得的經驗。這些經驗是我們理解的基礎。它們將作為判斷其他不熟悉問題的參考點。

第二個目標是展望將來:弄清楚沒有經歷過的新問題,但可能會在未來的某一天成為你的攔路虎。我希望這些列舉的問題能幫助你做好應對的準備,並決定什麼是值得追求的。

第三個目標是讓你產生情感共鳴,並互相尊重隊友正在面對的困難。你可能永遠不會經歷許多這些前瞻性的困境,尤其如果你不是技術主管和經理的話。同樣的,如果你是一個技術主管或經理的話,你可能已經忘記作為一個獨立貢獻者是什麼感覺:你可能會日漸與現實脫節。

以下列表不按優先順序排列。其中包括其他人告訴我的觀察結果:這些事情並非所有都是我直接經歷過的。因此,如果你曾和我共事過,請不要認為說的是你而對號入座。事實上,令人驚訝的是,這些故事比比皆是,非常常見。

同樣要注意的是,還有一些其他類別的可怕事情是這篇文章所沒有囊括的:種族歧視,性別歧視,年齡歧視,騷擾,以及許多其他會導致不友好工作環境的因素。我不打算寫這方面的內容,而且這些在其他帖子中已經被詳細分析和描述過了。

我寫這篇文章的目的是列舉在團隊中構建軟體的本質是什麼。如果你覺得我有遺漏的地方,請告訴我。我相信,許多要點,尤其是關於主管和經理的那些,也適用於其他行業。請記住,這些工作職位並非都是不好的:我的下一篇帖子將談談它們好的地方。

成為程式設計師有哪些可怕的地方?

對於編寫程式碼和受技術主管或經理指揮的獨立貢獻者:

  • 有太多的東西需要學習,卻沒有足夠的時間
  • 程式碼寫得很爛
  • 當前抽象很糟糕
  • 我已經用不同的方式完成了這個
  • 這些註釋沒有任何意義,沒有更新
  • 沒有關於如何構建或它為什麼這樣工作的文件
  • 構建很慢
  • 測試很慢
  • 測試不切實際
  • 沒有測試
  • 需要大量樣板檔案、複雜程式碼或混淆測試的糟糕框架
  • 經理要求我為了開發速度犧牲程式碼質量
  • 沒有通知就更改依賴
  • 本地開發、測試和生產之間的差異
  • 陷在一個問題上或除錯了很長一段時間
  • 我需要修改破壞了的或不切實際並且不是我初寫的測試
  • 我需要和其他導致bug或生產問題的人一起處理,但他們沒有立馬積極修復的慾望
  • 不得不維護其他人蹩腳的程式碼或系統,在他們離開之後
  • 應該自動化的事情卻沒有自動化
  • 總是被隊友和經理打斷工作
  • 上下文切換成本
  • 經理要求我工作於緊急專案
  • 程式碼審查時我的隊友們特別混蛋,因為會對我進行人身攻擊
  • 其他人延遲釋出我在工作中所需要的功能
  • 其他工程師構建他們的功能或元件太慢
  • 大量時間花在了等待上
  • 有我不贊同的產品決定
  • 剛剛告訴過我要做什麼又來說一遍
  • 沒有自主權
  • 沒有人尊重我的意見
  • 我玩命地完成工作,然後有人告訴我要重做
  • 產品經理改變了我的要求,因為對批評過於強烈或因為其他人的反饋反應

成為技術主管有哪些可怕的地方?

對於一個寫程式碼也領導獨立貢獻者小組設計和實施工作的軟體工程師而言(同時也被其他人管理):

  • 生產中的一切總是被打破
  • 太多的電子郵件或文件需要閱讀和答覆
  • 工作中未加檢查就算通過
  • 一切都落後於計劃
  • 其他人做出了一些我不贊同的技術設計決策,但我沒有能力或權力說服他們改變主意
  • 實施馬虎或實施中忽略了現有的最佳實踐
  • 出現了計劃外的事情:打破假設的遲到的功能需求
  • 我真的覺得最後期限和依賴性於我而言壓力山大,以致於當我下班回家了以後依然難以放鬆
  • 對每個人的監管比我預想得還要多,不管我如何努力解釋細節或文件化計劃
  • 花費很長時間來發布某個東西卻因為非技術原因被廢止
  • 在時間和質量之間做艱難抉擇;故意釋出已知的bug到生產中
  • 我要對此負責,為什麼其他人不用?
  • 我沒有做到我的責任,但是也沒有一個人幫助我
  • 我不知道我的經理一整天都做了什麼,但我不認為這會有用
  • 我不知道產品經理一整天都做了什麼,但我不認為這會增加價值
  • 就像是團隊中的其他工程師試圖通過不遵循我們已經協商一致的計劃來削弱我;我覺得自己像是一個打小報告的人,當我和他們的經理談到這個的時候
  • 我認為會是我負責的專案被收回,並且因為一些我無法理解的原因交給了其他人
  • 在合理的時間內我沒有足夠的工程師完成專案工作
  • 當我說將會有多麼困難的時候,大家聽不進去並且不願意減小規模

成為專案經理有哪些可怕的地方?

對於那些管理一組軟體工程師的人。這個人同時也可以是技術主管,或管理指導報告的技術主管。

  • 不惡劣一點很難要求或告訴大家去做事情
  • 總是感覺所有事情都很緊急
  • 感覺一整天每個人都在向我抱怨
  • 沒時間看郵件
  • 沒有時間閒聊,即使我覺得這樣太不合群
  • 每次回到家都有一種精疲力盡的感覺;有時讓人覺得不堪重負;當一些對我有意義的人走進我想談談他們的問題時,我是如此的疲憊不堪以致於根本聽不進他們的問題
  • 任何時候,我的報告中呈現一個或多個這樣的狀態:
    • 正要放棄
    • 厭煩團隊中的某個人
    • 厭煩其他團隊中的某個人
    • 厭煩自己
    • 被人冒犯但理由很充足
    • 被人冒犯並且毫無理由
    • 有一個正當理由對程式碼庫不滿
    • 因為完美主義/無效原因而不滿程式碼庫
    • 對他們的專案不滿,想要工作於別的工作,即使他們正在做的是最重要的事情
    • 個人問題正影響著他們的幸福感,並且經常導致他們負面作用於周圍人的士氣
    • 無聊;如果有人提供合適工作的話,他們顯然會跳槽
  • 其他經理的工作是安排會議。他們不寫程式碼;他們唯一能影響人的途徑就是用嘴巴說話。所以我拉進了一堆無用的會議中。一堆浪費時間的會議。
  • 少寫程式碼;感覺失去了我的優勢。有時很難看到我做了什麼貢獻。我必須改變我的重心。在幫助他人變得更有效率中尋找滿足感讓人感覺不自然。
  • 沒有做重要的技術決定從而導致事情嚴重出錯
  • 專案將落後或失敗,因為我委託錯了人
  • 其他經理在政治上暗中陷害我
  • 我最大的問題是要保密,因此我不能要求任何支援或建議
  • 不知道CTO / VP做什麼;他們似乎並不能增加任何價值;他們會問一些無知的問題並且常常目下無人
  • 我的一些最好的工程師將他們的時間浪費在那些無關緊要的專案上,但我不敢去阻止他們,因為我怕這樣會把他們推離團隊,並導致他們辭職
  • 每個人對我是如何管理團隊的至少有某一方面是不同意的

譯文連結:http://www.codeceo.com/article/what-awful-be-programmer-leader-pm.html
英文原文:What's awful about being a {software engineer, tech lead, manager}?
翻譯作者:碼農網 – 小峰
轉載必須在正文中標註並保留原文連結、譯文連結和譯者等資訊。]

相關文章