人月神話 焦油坑

2021-05-21 23:04:59 字數 1616 閱讀 2358

岸上的船兒,如何海上的燈塔,無法移動。 - 荷蘭諺語

焦油坑的意思說明了即使你足夠強大,也無法擺脫束搏而沉到坑底。it專案也是這樣,不論是開發大型軟體系統還是小型專案,都會遇到諸多複雜的問題和影響因素,專案本身就是乙個足夠複雜的動態系統,沒有最優,只有滿意。專案四要素,人員,組織環境,干係人,外部依賴和約束,風險和假設,團隊,人等諸多問題都是你必須要考慮的問題,任何乙個要素出現大的差錯都可能導致專案失敗,只有所有要素能夠平衡好,團隊能夠協調一致才能夠保證專案成功。

通過程式設計系統的演進可以看到簡單的程式已經不能稱作為系統,程式設計系統+程式設計產品才構成了程式設計系統產品,程式設計系統產品的複雜度將是一般程式的9倍。複雜度的增加就更好的說明了規模和工作量,工作量和專案週期之間都不是簡單的線性增長關係,和第二章人月神話打下伏筆。回頭再看大型系統複雜度和工作量成倍增長的原因:

1.對於複雜的事物我們需要去描述清楚,需要自頂向下逐層細化,這個系統分析和建模的過程需要耗費我們大量時間。當系統被分解為子系統->模組->元件後,後續我們為了完成產品還需要將它們整合在一起,這個整合過程仍然需要花費大量的時間。系統越複雜前期分析建模和後期整合的時間越多。

2.系統越複雜越涉及到更多的人參與來共同完成,人員的分工也會更加細化,這一方面人員增加導致的溝通效率的降低,一方面工序的增加使我們更加強調過程管理,我們會花費更多的時間來保證概念完整性。

職業的樂趣

興趣是最好的老師,軟體開發是一項相互協作的遊戲,大家必須有興趣為共同的目標而奮鬥。對於軟體開發職業樂趣首先體現在程式設計師在創造產品,而且自我創造的產品會被使用者使用,為客戶帶來價值。因此要盡量避免專案中途夭折,或者最終開發出的產品被拋棄的厄運,這會打擊到程式設計師的積極性和對創造的渴望。

乙個軟體產品如果是乙個人被封閉在乙個孤立的環境裡面做,他可能是體會不到更多的快樂的,職業的樂趣也**於團隊成員間的溝通和交流,相互協作。不管是自己的問題被解答,或者解答了他人的問題,程式設計師都會感到快樂。

學習的過程可能是枯燥的,但是學習後的成果能夠幫助你解決實際的問題,你能夠通過學習來創造軟體產品,從這個意義上講學習的是快樂的。學習的過程就是自我提高的過程,也是自我價值得以展示的過程。

從職業的樂趣這個意義上講,it專案管理者需要去激發團隊成員意識到這點,這裡涉及到溝通,團隊建設活動,學習和培訓諸多內容。讓每個人都感受到他們被重視,而且共同在做一件有意義的事情,通過做這個事自己得到樂趣,得到了提公升。

職業的苦惱

程式設計師往往不喜歡受到太多的依賴和約束,也不喜歡繁瑣的規程和文件,特別是這些文件沒有體現出真正的價值的時候。還有他們可能並不喜歡修改自己的bug,更不細化修改他人遺留下來的bug,因此這種重複性的工作讓他們體會不到創造性的樂趣。還有最大的苦惱往往更在於辛苦開發出來的系統不能真正使用而被拋棄。

還是有太多的程式設計師和管理者認為編碼是一種無價值和創造性的活動,他們理想化的認為需求和設計可以做的足夠詳細,編碼僅僅是一種體力勞動,這是對每一位程式設計師的不尊重。處於最後一道工序的編碼人員,他們產出的**最終形成的形成了軟體系統和產品,當他們的價值往往並不能得到相應的承認。

類似帕金森定律中的金字塔上公升想象,每個人都很忙但組織效率確越來越低,每個人都在往上走,導致在每個崗位角色上都難得到技能過關高效率的人員。it專案管理者需要致力於改善這些苦惱,這裡面一方面是績效機制的改善,一方面是適當的過程保證。專案管理者帶領專案取得成功不僅僅是體現了自我價值,也讓團隊每個團隊成員意識到他們存在的價值和貢獻的力量。

人月神話 mobi 人月神話 焦油坑

所有的程式設計人員都是樂觀主義者 在軟體領域,很少能有像 人月神話 一樣具有深遠影響力和暢銷不衰的著作。brooks博士為人們管理複雜專案提供了最具洞察力的見解,既有很多發人深省的觀點,又有大量軟體工程的實踐。以 焦油坑 一章開篇,這一得名於自然界的產物,遠古時代困住了無數的洪荒巨獸。而作為人類歷史...

人月神話筆記 焦油坑 人月神話

程式 程式設計系統 程式設計產品 程式設計系統產品 程式設計產品 程式設計系統 程式設計系統產品 美食的烹調需要時間 片刻等待,更多美味,更多享受。good cooking takes time.if you are made to wait,it is to serve you better,an...

《人月神話》之1 焦油坑(The Tar Pit)

從很久之前就有仔細閱讀 人月神話 的想法,也嘗試過幾次,卻總是因為各種各樣的原因半途而廢。其中乙個重要的原因就是書中列舉的都是大型專案,我自己卻只參與過一些小不點專案,沒辦法把自己的經歷代入然後進行思考。但是,即使 我相信由於人員的分工,大型程式設計專案碰到的管理問題和小專案區別很大 它們之間仍然有...