只有不容忍才能提升軟體質量

banq發表於2018-08-21
雖然稱為不容忍,但其實有認真的含義,屬於偏執狂才能生存的邏輯。

該文認為:無論是軟體開發團隊的一員還是“軟體開發協會”:對質量的最大影響並不是透過達成共識、投票或者容忍他人的觀點或編碼方式來實現的。對軟體質量產生最大的影響的因素正好與前面描述的共識相反:是不能容忍所有不同的風格、方法以及固執於你自己的方式。“最不容忍的人獲勝”。

例如,如何改進專案的編碼風格?也許可以討論一下你們都喜歡哪種風格,然後就其中一種達成一致。同意了已經從現在開始你們都會應用這種一致的方案嗎?不會,作為管理者你,只能在任何地方都強制使用它,並對不採用它的現象表現為非常不容忍,這樣才能實現一致的編碼風格(也就是說,只允許符合這種特定樣式的提交)。

另一個例子:你會讓你的同事決定是否使用靜態方法來獲取依賴關係,還是將所有依賴項作為建構函式引數注入?如果兩者都允許的話,結果將是一團糟。你甚至無法使用這兩個選項中的任何一個方法來實現依賴了,一個類不可以同時有這兩個選選項,要徹底提高和保護專案的質量,就需要不容忍。

在過去的20年裡,我與開發人員和管理人員進行了大量的交談,結果證明這只是空談,沒有行動。我不知道你的經歷(雖然我很想聽聽它們!),但這是“科技對話”的一個非常普遍的特點;很多會議,很多討論,很酷的想法,很棒的計劃,但這些都不會發生。當然,有很多原因,比如:

會議上的經理們只是想讓開發人員高興,所以他們允許他們做得很好。計劃永遠不會被執行。

開發人員對他們的工作不再滿意,所以他們構建了一個共同的夢想,即事情會怎樣“如果.”。

每個人都意識到,偉大的計劃是偉大的,永遠無法完成,所以沒有人敢開始做這項工作。

說話的人覺得他們必須就每件事達成共識,只能在空談中才能達成共識。

我相信,根據經驗,您可以在這個列表中新增更多的原因。

我發現我過去在專案上最有影響力的工作是先行動。我做了一些事情,相信這是正確的事情,投入我自己的時間,並證明“它可以工作”。我在正常上班時間之外,在無法人付工資的時間內,在沒有(很多)共識的情況下做了這項工作。毫無例外,開始一個改變會導致其他人跳進來、支援和完成這項工作。挖坑,帶著大家跳坑,填坑。

事實上,當我被問到:“我如何能在我的團隊中改變X?”我的第一條建議總是:不要問,只要去做。

我一直認為這是做自由職業者的一個很好的理由:你犯的錯誤迫使你去適應,去學習。你從你所做的事情中得到即時的反饋,並利用它成為一個更好的自由職業者。因為你想讓你的生意持續下去,而不是以壞名聲收場,成為一個無法被僱用的人。

然而,重新考慮這一點,我認為把“自僱”和“從錯誤中吸取教訓”聯絡起來是不明智的。

重要的是工作中涉及的反饋迴路,如果你犯了一個錯誤,但它永遠不會和你聯絡在一起,或者你永遠不會聽到它,你就無法從中吸取教訓。這很可能會發生在任何自由軟體開發人員身上:你犯的錯誤(你製造的錯誤,你強加的糟糕的設計,你介紹的耦合問題),可能會浮出水面。在你成功之後。由於公司通常不能支付(一組)自由開發人員超過一到兩年,你很可能會錯過你所犯的錯誤,因此不會從中吸取教訓。在未來的幾年裡,你甚至可能會在其他專案中犯同樣的錯誤。

如果是這樣,那麼,我建議你不要一開始做自由職業者,我確實建議你尋找方法,你可以利用你產生的錯誤,評估事情的進展,並尋找方法,幫助你改善。

原文:
https://matthiasnoback.nl/2018/08/improving-your-software-project-by-being-intolerant/

相關文章