[摘錄] 暴躁程序員的產生

--摘自 Code Complete -- 代碼大全

訴諸類比 Appeal to Analogy

建造軟件系統跟其他任何花費人力財力的項目是相似的; 如果打算建造一座房屋, 你需要在開始釘釘子之前準備好手繪草圖(表達設計概念)和藍圖(即設計詳圖, 包含所有細節信息); 在澆築混凝土之前必須審覈藍圖並獲得批准; 在軟件領域做技術規劃也包含同樣多的事情;

在把聖誕樹立起來之前, 不會對它做裝飾; 在打開煙囪之前, 不會生火; 不會在車子的油箱是空的時候上路去長途旅行; 不會在洗完澡之前就穿戴整齊, 也不會在穿襪子之前就穿鞋; 在做軟件時, 也必須按正確的順序去做事情;

程序員是食物鏈的最後一環; 架構師喫掉需求, 設計師喫掉架構, 而程序員則消化設計;

我們用真實的食物鏈來比喻軟件食物鏈; 在健康的生態環境中, 海鷗喫新鮮的鮭魚; 這對海鷗是營養大餐, 因爲鮭魚喫的是新鮮的青魚, 而青魚喫的是新鮮的水蝽; 這是健康的食物鏈; 在軟件開發中, 如果食物鏈的每一級都有健康食物, 那麼最終會獲得由快樂的程序員編寫出的健康代碼;

在受到污染的環境中, 水蝽核廢料中游泳, 青魚被氯聯二苯(PCB)污染, 而喫青魚的鮭魚又在泄漏的原油中游蕩<譯註3>; 海鷗很不幸位於食物鏈最後一環, 因此喫下去的不僅僅是不健康的鮭魚體內的原油, 還有青魚體內的氯聯二苯和水蝽體內的核廢料; 在軟件開發中, 如果需求被污染, 那麼它就會污染架構, 架構又會污染構建; 這樣會導致程序員脾氣暴躁, 營養失調; 開發出的軟件具有放射性污染, 而且周身都是缺陷;

<譯註3 氯聯二苯是一種幻覺污染物質, 積聚在動物組織中, 能導致發病和產生畸形;>


[YC: 再優秀的公司或團隊也免不了遇上需求分析, 項目構建的問題, 但是對於需求分析根本沒有認真態度和完備計劃的項目, 程序員最終一定會暴躁, 除非ta聰明地避過了一切實戰 ]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章