《人月神話》讀後感

閱讀時間約 3 分鐘
raw-image

在看完《鳳凰專案》(書摘《鳳凰專案》) 後馬上就接著看《人月神話》,這一本以前還在學校時,曾從圖書館借來看一次,但那時候還是學生,對於書中很多東西沒什麼感覺,只覺得書中某句話好像很有道理:

軟體專案進行不順利的原因或許很多,但絕大部分都是缺乏良好的時程規劃所致。

後來上班後,對這句話的感覺完全不一樣,對書中很多東西也有感觸了,只能說很多書換個時間再看一次,常常會有不同的想法。

這本書出版很久了,裡面很多技術或工具都很舊了,但核心的精神到現在依然很有用,例如書中討論到文件的架構、寫法與目的,雖然這幾年很多人打著 agile 不用寫文件,我依然習慣把架構或是偏整體設計面的文件寫下來,因為我自己記憶力再怎樣好,隔一陣子回頭看幾千行或幾萬行的程式碼,也會瞬間忘記這堆程式在做什麼?這時候自己寫的文件就幫上忙了。

比較意外的是這本書中提到蠻多首席設計師或是架構師的重要性,他確保系統的概念整體性,定義規格但對實作持開放讓開發者能夠發揮創意,自己的工作經驗中,第一份工作有和一位頗厲害的架構師合作過,第二份工作後來自己也當上架構師,甚至在另一家公司還曾經有過首席架構師的頭銜,但說實話,自己仍在摸索怎麼當一個好的架構師?

特別是與其他人的合作模式,在第七章看到三種常見模式特別有感覺:

  • 管理者兼任技術總監,這比較沒有溝通問題,但同時擁有管理與技術天份的人其實不多,容易出現分身乏術,無暇確保概念整性。
  • 管理者是老闆,技術總監是副手,這種搭配方式的困難在於如何賦予技術總監充分下達技術決策的權力。較適合大型的組織。
  • 技術總監是老闆,管理者是副手,較適合小團隊。

不過,也許是我的錯覺,現在台灣的軟體公司似乎很少有在架構上考慮整體性,只在乎功能是否能兜出來,常常與特定框架或技術綁住,當使用的技術與框架不敷使用時,要轉換時才發現牽連甚廣,動彈不得。

書中的另一個焦點是專案的時程,時程這件事在開始工作後特別有感,因為光是工作量就是一個極難預估的事情,當把一個錯誤的預估除以人月就會得到一個根本不可能達成的時程,只是有趣的是,這本書出版已久,也號稱是最具影響力的專案管理經典,卻還是常看到很多公司依舊拿人月來算時程:

成本確實隨著人力與工時的乘積而變,但工作的進度可不是如此,所以用人月來衡量工作規模的大小是危險的,也是一個容易遭到誤解的迷思 (muth),用人月的前提必須是人力與工時可以互換的情況下。

工作量難以預估的本質在第 16 章「沒有銀彈,軟體工程的本質性與附屬性工作」有很多的描述,其中一句便是:

我相信軟體開發真正的困難,是在於這種概念構造的規格制定、設計和測試,而並非孜孜矻矻在於它的呈現方式,以及測試該呈現方式的精確程度。

很多時候開發到一半,發現規格根本就不對,或是需求根本就沒有打到顧客的痛點,但花下去的工時已經要不回來了,更別說軟體的複雜性及後續的維護及修改。有趣的是,該章後半段提到的可能方法有幾個跟現在的敏捷方法所提的是相似的概念:

  • 需求的提煉與快速原型製作。當今有非常多的軟體獲取程序都是基於一個假設,假設能夠預先界定出一份完善的系統規格,並以此為這項軟體專案進行喊價,然後獲准開發,直到把軟體安裝起來。我認為這個假設根本就是大錯特錯。
  • 漸進式開發 — 發育軟體,而非建構軟體
  • 偉大的設計師

在「再論沒有銀彈」一章,也提到一些我覺得很有用的:

非也,把重點放在品質上,生產力將隨之而來。

回歸到軟體的基本問題,並主張對於未能滿足軟體需求的問題,有一個方式是藉由客戶的參與,增加投入這種智能工作的成員,這樣的主張符合由上而下的設計方式。

管理者的工作並不是叫人去工作,而是去創造讓人想去工作的情境。

假如能夠小心地維持基層的自主與責任,領導中心將在微信與效能上獲益,其結果是個組織「越快樂、越欣欣向榮」

這本書看完後,挺受用的,特別是讓我想繼續往軟體架構去深研,決定下一本書要看什麼了,來看看《架構之美》。

avatar-img
53會員
104內容數
這是從 Medium 開始的一個專題,主要是想用輕鬆閒談的方式,分享這幾年軟體開發的心得,原本比較侷限於軟體架構,但這幾年的文章不僅限於架構,也聊不少流程相關的心得,所以趁換平台,順勢換成閒談軟體設計。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Spirit的沙龍 的其他內容
這本書裡很多的內容是寫於千禧年世代,現在回頭看很多內容的發展方向已經大不相同,像是訂閱制慢慢開始興起,App 在手機上崛起,Web 大鳴大放,但讀起來還是很有滋味,很推薦給大家。
第三方套件用了Promise或是Reactive,導致所有business logic都要做調整,這就違反「只能有對內的相依方向」的原則。business logic大多數情況下與效能優化無關,通常需要優化的是I/O的存取,這些既然都在外層,就應該在外層做優化,外層的優化不該影響核心,這才是好架構。
在上一回 說明看板方法相關的精實精神與原則與實務,這一回則是來設計看板,包含看板的範圍應該多廣、有哪些狀態、工作的顆粒度,以及 DoD 的呈現。
這本書以小說形式,把建構管理、看板方法、限制理論、三步工作法及 DevOps 以活靈活現的例子串在一起,十分有趣。很推薦給所有從事 IT 相關產業的工程師。
這本書和《約耳續談軟體》,以及 Teddy 學長的《例外處理設計的逆襲》,應該算是我開始想寫技術部落格的原點吧,這幾本書都是原先的網路文章,最後收集成書。中文翻譯本原本應該是絕版書了,最近看到另一個出版社重新取得授權出版 (譯者也換人了),於是又把這兩本書從書架上拿下來拍拍灰塵 (笑~)
如果您以為上一篇 已經是所有需要考慮的眉角,那可就錯了,實作 offline first 不是只有 client 要注意,server 也需要下功夫的。
這本書裡很多的內容是寫於千禧年世代,現在回頭看很多內容的發展方向已經大不相同,像是訂閱制慢慢開始興起,App 在手機上崛起,Web 大鳴大放,但讀起來還是很有滋味,很推薦給大家。
第三方套件用了Promise或是Reactive,導致所有business logic都要做調整,這就違反「只能有對內的相依方向」的原則。business logic大多數情況下與效能優化無關,通常需要優化的是I/O的存取,這些既然都在外層,就應該在外層做優化,外層的優化不該影響核心,這才是好架構。
在上一回 說明看板方法相關的精實精神與原則與實務,這一回則是來設計看板,包含看板的範圍應該多廣、有哪些狀態、工作的顆粒度,以及 DoD 的呈現。
這本書以小說形式,把建構管理、看板方法、限制理論、三步工作法及 DevOps 以活靈活現的例子串在一起,十分有趣。很推薦給所有從事 IT 相關產業的工程師。
這本書和《約耳續談軟體》,以及 Teddy 學長的《例外處理設計的逆襲》,應該算是我開始想寫技術部落格的原點吧,這幾本書都是原先的網路文章,最後收集成書。中文翻譯本原本應該是絕版書了,最近看到另一個出版社重新取得授權出版 (譯者也換人了),於是又把這兩本書從書架上拿下來拍拍灰塵 (笑~)
如果您以為上一篇 已經是所有需要考慮的眉角,那可就錯了,實作 offline first 不是只有 client 要注意,server 也需要下功夫的。
本篇參與的主題活動
先前麥克買了在預算及性能方面都十分複合需求的NXTPAPER 11平板,但拿到辦公室使用後便發現因為時不時有簡報需求,主機本身不支援有線視訊輸出實在是非常不方便,因又開始尋找新歡。最終麥克選擇了算是還滿熟悉的品牌小米旗下的小米平板6,以下為麥克這一個月下來的使用心得。
從預計的十月底出貨經過重重波折,Pubu自家開發的10寸彩色閱讀器Pubook Pro終於是送到第一批集資者手中了。究竟這台閱讀器有沒有本事撼動目前的電子紙閱讀器市場?有達到集資時承諾的各項功能嗎?且讓身為首批集資者之一的麥克跟大家談談收到主機後使用數天的感想。
Steam Deck 迎來大改版,最重要的更新就是換成 OLED 螢幕。使用 OLED 螢幕帶來更好看的顏色,大小還小幅提升到 7.4 吋。關係續航力的電池也從 40 瓦小時升級到 50 瓦小時, 3A 大作都可以多玩一小時呢!這麼香的更新,怎麼不給他買下去呢 😄
先前麥克買了在預算及性能方面都十分複合需求的NXTPAPER 11平板,但拿到辦公室使用後便發現因為時不時有簡報需求,主機本身不支援有線視訊輸出實在是非常不方便,因又開始尋找新歡。最終麥克選擇了算是還滿熟悉的品牌小米旗下的小米平板6,以下為麥克這一個月下來的使用心得。
從預計的十月底出貨經過重重波折,Pubu自家開發的10寸彩色閱讀器Pubook Pro終於是送到第一批集資者手中了。究竟這台閱讀器有沒有本事撼動目前的電子紙閱讀器市場?有達到集資時承諾的各項功能嗎?且讓身為首批集資者之一的麥克跟大家談談收到主機後使用數天的感想。
Steam Deck 迎來大改版,最重要的更新就是換成 OLED 螢幕。使用 OLED 螢幕帶來更好看的顏色,大小還小幅提升到 7.4 吋。關係續航力的電池也從 40 瓦小時升級到 50 瓦小時, 3A 大作都可以多玩一小時呢!這麼香的更新,怎麼不給他買下去呢 😄
你可能也想看
Google News 追蹤
Thumbnail
徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
本文探討如何設計專案管理系統的軟體架構,對一般設計時的盲點及反模式提出見解,強調選擇合適的視角來更好地體現「管理」的語意。傳統以靜態資料結構為主的架構,難以完整表達動態管理需求。文章建議以 PDCA (計畫-執行-查核-行動) 流程來構建模型,凸顯時間與變更的因素,更能簡約呈現管理的語意。
Thumbnail
我們可能會有一種迷思,不管開發什麼系統,開發團隊都袛會有一種方式來工作。反正不管怎麼樣,系統最終也一定是能開發出來的。那麼選擇開發生命週期又跟我何干?本篇將會介紹專案經理應該如何為不同特性的專案選擇最合適的管理策略,即生命週期。
Thumbnail
這篇文章分享了作者在職場中學習到的重要思維技術,以及如何應用這些技巧來解決工作中的問題。這本圖解結構化思維書籍深受作者影響,書中提供了許多實用的案例和方法,對於職業發展和思考工作中的挑戰有很大幫助。推薦了《圖解結構化思維》這本好書,以及一門圖解力全攻略課程。
Thumbnail
專案經理與工程師在工作上面對的挑戰和需求截然不同。專案經理需具備溝通、督促、認知及行政等四種核心能力,以便成功轉型。文章中舉例以生動的故事來說明這四種能力的重要性,並強調從工程師升遷為專案經理並非易事,需要不斷學習與努力。
Thumbnail
這篇文章探討了在專案開發中遇到的時間壓力和執行困難,以及如何無效應對這些挑戰。 沒有工時估算、客戶溝通、交付時間表設定、程式品質管理、工作量管理、合同和專業態度等方面的建議。
那天在誠品看到這本書的前言時,“不要檢討人,要檢討機制”,讓我回想起我在管理團隊時所犯的錯誤。某次,專案出了狀況,問題解決後,我立即對負責的企劃成員進行了責任追究。 看似合理的行為,但這只是解決了當下的表面問題,解決問題不應該停留在個別人身上,而應該更深入地檢視管理機制。 本書共分五個章
Thumbnail
追求乾淨的程式碼是好的開始,但不要陷入過度設計的陷阱,導致程式難以維護。實際上,考慮團隊狀況和專注於解決真正的問題更為重要。了解公司的規模和現實情況,適時調整工作重心。技術不斷進步,使得寫程式變得更加容易,但這並不意味著工程師的角色會消失。在選擇技術時,也要考慮隱形成本有時簡單的解決方案反而更有效。
作為產品經理,製作簡報是日常工作的一部分,而如何製作一個有邏輯的流程圖成了一大挑戰。讓我們透過Paul的故事,探索如何製作讓老闆滿意的流程圖。
Thumbnail
本文探討專案管理的真正意義,以及專案經理真正的價值是什麼。同時討論專案經理必修的最重要技能。
Thumbnail
《專案管理》這本書,這是本許多人推薦專案管理必讀的書。你知道身為專案經理需要具備什麼特質嗎?你真的知道專案管理是在做什麼嗎?主管朝令夕改其實不是故意惡整你,也不是他願意?
Thumbnail
徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
本文探討如何設計專案管理系統的軟體架構,對一般設計時的盲點及反模式提出見解,強調選擇合適的視角來更好地體現「管理」的語意。傳統以靜態資料結構為主的架構,難以完整表達動態管理需求。文章建議以 PDCA (計畫-執行-查核-行動) 流程來構建模型,凸顯時間與變更的因素,更能簡約呈現管理的語意。
Thumbnail
我們可能會有一種迷思,不管開發什麼系統,開發團隊都袛會有一種方式來工作。反正不管怎麼樣,系統最終也一定是能開發出來的。那麼選擇開發生命週期又跟我何干?本篇將會介紹專案經理應該如何為不同特性的專案選擇最合適的管理策略,即生命週期。
Thumbnail
這篇文章分享了作者在職場中學習到的重要思維技術,以及如何應用這些技巧來解決工作中的問題。這本圖解結構化思維書籍深受作者影響,書中提供了許多實用的案例和方法,對於職業發展和思考工作中的挑戰有很大幫助。推薦了《圖解結構化思維》這本好書,以及一門圖解力全攻略課程。
Thumbnail
專案經理與工程師在工作上面對的挑戰和需求截然不同。專案經理需具備溝通、督促、認知及行政等四種核心能力,以便成功轉型。文章中舉例以生動的故事來說明這四種能力的重要性,並強調從工程師升遷為專案經理並非易事,需要不斷學習與努力。
Thumbnail
這篇文章探討了在專案開發中遇到的時間壓力和執行困難,以及如何無效應對這些挑戰。 沒有工時估算、客戶溝通、交付時間表設定、程式品質管理、工作量管理、合同和專業態度等方面的建議。
那天在誠品看到這本書的前言時,“不要檢討人,要檢討機制”,讓我回想起我在管理團隊時所犯的錯誤。某次,專案出了狀況,問題解決後,我立即對負責的企劃成員進行了責任追究。 看似合理的行為,但這只是解決了當下的表面問題,解決問題不應該停留在個別人身上,而應該更深入地檢視管理機制。 本書共分五個章
Thumbnail
追求乾淨的程式碼是好的開始,但不要陷入過度設計的陷阱,導致程式難以維護。實際上,考慮團隊狀況和專注於解決真正的問題更為重要。了解公司的規模和現實情況,適時調整工作重心。技術不斷進步,使得寫程式變得更加容易,但這並不意味著工程師的角色會消失。在選擇技術時,也要考慮隱形成本有時簡單的解決方案反而更有效。
作為產品經理,製作簡報是日常工作的一部分,而如何製作一個有邏輯的流程圖成了一大挑戰。讓我們透過Paul的故事,探索如何製作讓老闆滿意的流程圖。
Thumbnail
本文探討專案管理的真正意義,以及專案經理真正的價值是什麼。同時討論專案經理必修的最重要技能。
Thumbnail
《專案管理》這本書,這是本許多人推薦專案管理必讀的書。你知道身為專案經理需要具備什麼特質嗎?你真的知道專案管理是在做什麼嗎?主管朝令夕改其實不是故意惡整你,也不是他願意?