fbpx
维基百科

人月神话

人月神话:软件项目管理之道》(英語:The Mythical Man-Month: Essays on Software Engineering)是由美國軟體工程師暨IBM System/360系統之父佛瑞德·布魯克斯Fred Brooks)所著文集,全書講解軟體工程项目管理相关课题,被譽為軟體領域的聖經,內容源於作者布魯克斯在IBM公司System/360家族和OS/360中的專案管理經驗[1]。該书于1975年首次发行(ISBN 978-0-201-00650-6),並於1995年重新发行纪念版(ISBN 978-0-201-83595-3[註 2],其中新增了对《没有银弹》一文的评论和回应,與4個額外的新章節。

人月神話:軟體專案管理之道
原名The Mythical Man-Month: Essays on Software Engineering
作者佛瑞德·布魯克斯
译者錢一一[註 1]
语言繁體中文
主题軟體工程專案管理
發行信息
出版机构經濟新潮社
出版時間1975, 1995
中譯本出版日期2004年4月4日
页数424頁
上一部作品沒有銀彈
规范控制
ISBN9867889185
OCLC1201368
杜威分类法001.6/425
LC分类法QA76.6 .B75

內容簡介 编辑

焦油坑 编辑

跟只為私人使用而單獨寫出來的組件程式相比,做出軟體系統產品(programming systems product)所要付出的代價將是九倍以上。估計產品化(productizing)的代價是三倍,若要對組件從事設計、整合、測試,進而凝聚成為一個系統,則代價也是三倍,而且這方面的成本計算基本是獨立的。[1]

軟體開發的另一個難題,是從單一程式到軟體系統過程中,所造成複雜度的快速上升,期間並需要包含不同的活動與技能,使得軟體開發必須面對多樣性的挑戰。布魯克斯最早認識到設計程式、開發軟體的差別,他以程式與系統產品的差異,解釋兩者之間的不同,並以3×3的複雜度加以說明。[3]

人月神話 编辑

人月神話(英語:The mythical man-month):這部分講述人力和時間並不呈現線性關係。指出以大量人員和較短的時間,並不能縮短軟體的開發進度。一窩蜂的作業方式無助於軟體生產,且會製造麻煩,產生出更差的軟體。向進度落後的專案追加人力,只會使進度更加落後。因為新進的人員需要時間了解整個專案,而增加額外的溝通消耗。當有N個人必須在這群人之中進行溝通時(無階級關係),當N增加,其輸出M將抵消其效益,甚至倒退(最後幾天所完成的進度,遠不如剛開始幾天所完成的進度。像是發現了許多錯誤)。

  • 團隊交流公式: 
  • 範例:50個開發人員,就要 個溝通管道

用「人月」來衡量工作規模的大小是危險的,也是一個容易遭到誤解的迷思,使用人月的前提必須是在人力和工時可以互換的情況之下:當一份工作因具有連續性的限制而不可切分時,就算投入再多的人力,也不會對時程有所影響,生小孩就是需要九個月,你叫多少個媽一起生都一樣,軟體工程就是像這樣的工作,因為它必須除錯,而除錯本身就具有連續性的本質。[1]

人月 编辑

人月(英語:man-month)指的是「一個人要花幾個月」才能完成軟體開發的單位,通常用來評估一件軟體專案的大小。[4]以成本會計(cost accounting)為基礎的時程預估技術,使我們誤把工作量和專案進度混為一談,人月是個危險並很容易就遭到誤解的迷思(myth),因為它假設人力和工時可以互換[1]

Brooks法則 编辑

在一個時程已經落後的軟體專案中增加人手,只會讓它更加落後[註 3]。根據Brooks法則,增加人員到一個已經延誤的專案裡,等於是火上加油。除非你可以把工作區分,讓新進人員可在不影響他人工作的狀況下有所貢獻。

把工作切分給更多人做將造成額外的溝通(communication)代價——訓練和相互的交流(intercommunication)。欲增加軟體專案的人手,總共必須付出的代價可分為三方面:工作重新切分本身所造成的混亂與額外工作量、新進人員的訓練、新增加的相互交流。[1]

外科手術團隊 编辑

在接受相同的訓練、同樣都是兩年資歷的情況下,優秀專業程式設計師的生產力要比差勁的程式設計師好上十倍。短小精悍團隊是最棒的——盡可能用最少的人。兩人團隊,其中一人當領導者,這通常是最佳的用人方式。以短小精悍團隊開發真正大的系統就太慢了。絕大多數大型軟體系統的經驗顯示,使用一堆人蠻幹的方式最耗成本、最慢、最沒有效率,做出來的系統在概念上也最不完整。

以一位首席程式設計師為主、類似於外科手術團隊的組織提供了一個良方,既可因少數人的決策而兼顧到產品的整體性,又可因多數人的合作與大幅溝通減少而得到全部人的生產力[1]

專制、民主與系統設計 编辑

  • 在系統設計時,保有概念整體性(conceptual integrity)是最重要的原則。[1]
  • 功能概念複雜度比(這個比值是為了量測使用便利性,對簡單和困難的運用都很有效)才是系統設計的最終測試標準。功能多,不見得是好事。
  • 要達成概念整體性,設計必須出自於一個人的想法,或是極少數人的一致決定。
  • 對大型軟體專案(小專案也一樣)來說,將架構設計獨立於實作之外是取得概念整體性強而有利的方法。
  • 如果系統必須保有概念上的整體性,那麼就必須有人來控制這些概念,這就是需要專制的原因,無庸置疑。
  • 許多軟體架構、實作、實現的工作都是可以同時進行的。(不論硬體或軟體設計,都可以同時進行)

第二系統效應 编辑

第二系統效應(英語:The second-system effect)就一個人所做過的設計而言,第二個系統是最危險的系統,一般來說,都傾向於過度設計。[1]

當他做第三或之後的系統時,之前的經驗會互相印證,以確認出這類系統的一般性特色,而系統彼此之間的不同處,也會幫助他辨別出屬於特殊和非通用的部份。除了做些功能上的修飾之外,第二系統效應還有另外一項特徵,那就是傾向於將之前已熟悉的技術發揮到淋漓盡致,但卻沒有留意到,這項技術早就跟目前專案的基本系統假設有衝突而不再適用,OS/360有好多這樣的例子。(Windows NT則似乎是1990年代的範例)

對大部份OS/360的設計人員來說,它也是個第二系統,設計成員分別來自1410-7010磁碟作業系統、Stretch作業系統、Project Mercury即時系統、給7090用的IBSYS作業系統等等,幾乎沒有人擁有兩個上述系統的發展經驗,所以OS/360可稱得上是一個最佳的第二系統效應範例。

意念的傳達 编辑

巴別塔為什麼失敗? 编辑

溝通 编辑

專案工作手冊 编辑

手冊或書面規格是不可或缺的工具,雖然光靠它是不夠的。手冊載明的是產品的外部(external)規格,用來描述並制定出使用者從外觀上將或看到的所有細節,撰寫手冊便是架構設計師的主要工作。當使用者和實作人員的反應不斷地顯示出設計上難以使用或實現之處,手冊就會墮入重新準備、修改的輪迴之中。為了造福實作人員,將修改的程度予以量化(quantize)是很重要的——在時程上應該要有載明日期的版本資訊。[1]

組織 编辑

軟體需求 编辑

失敗的軟體專案經常發生在開發者與用戶間對需求認知的誤解。開發者抱怨用戶說不清楚需求,而用戶抱怨開發者誤解他們的意思。布魯克斯認為「軟體開發最困難的單一項目,是精確地決定要建造什麼。」[註 4]

書目 编辑

  • 初版[5]
  • 20週年紀念版[6]

二十週年紀念版 编辑

增修內容:[1]

  1. 初版中所主張的所有論斷整理出一個簡潔的摘要,包括了原書的主要理念:就人力配置的比例而言,大型軟體專案所面臨的是跟小型專案完全不同的管理問題,這引申出產品的概念整體性是其中的關鍵,而達成概念整體性雖然困難,但卻是可能辦到的。
  2. 作者佛瑞德·布魯克斯對他當初所提出的這些論斷,在經過一個世代之後所做的觀察。
  3. 轉載布魯克斯1986年發表於IEEE《Computer》的論文《沒有銀彈》。
  4. 布魯克斯對於他1986年的論斷「十年內不會有任何銀彈」所做的回應。

参见 编辑

注释 编辑

  1. ^ 錢一一,1968年生,中正理工學院電子工程碩士,目前任職於中山科學研究院,從事大型系統的軟體架構設計工作。《人月神話》是他的第一本譯作。
  2. ^ 繁體中文版係根據1995年的紀念版。
  3. ^ Brooks原文:「Adding manpower to a late software project makes it later.」
  4. ^ Brooks原文:「The hardest single part of building a software system is deciding precisely what to build.」

參考文獻 编辑

引用 编辑

  1. ^ 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 Frederick P. Brooks, Jr. . 由錢一一翻译. 經濟新潮社 "year = 2004年. [2011-04-12]. ISBN 9867889185. (原始内容存档于2013-11-08) (中文(臺灣)). 
  2. ^ 該書〔導讀軟體人生之何似〕本書作者Frederick Brooks對於他自己的軟體專案經歷,所做的描述
  3. ^ 鄭炳強. 軟體工程:從實務出發(Software Engineering: A Perspective from Practices). 智勝文化事業有限公司. 2008年. ISBN 978-957-729-659-7 (中文(臺灣)). 
  4. ^ 該書〔推薦序二〕科技再怎麼變,人還是人
  5. ^ —. The Mythical Man-Month. Addison-Wesley. 1975. ISBN 0-201-00650-2. (英文)
  6. ^ —. Chap. 17. 'No Silver Bullet' Refired. The Mythical Man Month Anniversary Edition with four new chapters (Addison-Wesley). 1995. ISBN 0-201-83595-9. (英文)

來源 编辑

书籍
  • Frederick P. Brooks, Jr. . 由錢一一翻译. 經濟新潮社. 2004年 [2011-04-12]. ISBN 9867889185. (原始内容存档于2013-11-08) (中文(臺灣)). 

外部链接 编辑

  • (繁體中文)
  • (简体中文) 人月神話(32周年中文紀念版) (页面存档备份,存于互联网档案馆
  • (英文) The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition (2nd Edition) (页面存档备份,存于互联网档案馆
  • (英文) Frederick P. Brooks, Jr.個人主頁 (页面存档备份,存于互联网档案馆
  • (英文) Preface to 20th Anniversary Edition, as found on Safari.Informit.com (页面存档备份,存于互联网档案馆
  • (英文)

人月神话, 本條目存在以下問題, 請協助改善本條目或在討論頁針對議題發表看法, 此條目可参照英語維基百科相應條目来扩充, 2021年11月9日, 若您熟悉来源语言和主题, 请协助参考外语维基百科扩充条目, 请勿直接提交机械翻译, 也不要翻译不可靠, 低品质内容, 依版权协议, 译文需在编辑摘要注明来源, 或于讨论页顶部标记, href, template, translated, page, html, title, template, translated, page, translated, page, 标签,. 本條目存在以下問題 請協助改善本條目或在討論頁針對議題發表看法 此條目可参照英語維基百科相應條目来扩充 2021年11月9日 若您熟悉来源语言和主题 请协助参考外语维基百科扩充条目 请勿直接提交机械翻译 也不要翻译不可靠 低品质内容 依版权协议 译文需在编辑摘要注明来源 或于讨论页顶部标记 a href Template Translated page html title Template Translated page Translated page a 标签 此條目需要补充更多来源 2021年11月9日 请协助補充多方面可靠来源以改善这篇条目 无法查证的内容可能會因為异议提出而被移除 致使用者 请搜索一下条目的标题 来源搜索 人月神话 网页 新闻 书籍 学术 图像 以检查网络上是否存在该主题的更多可靠来源 判定指引 人月神话 软件项目管理之道 英語 The Mythical Man Month Essays on Software Engineering 是由美國軟體工程師暨IBM System 360系統之父佛瑞德 布魯克斯 Fred Brooks 所著文集 全書講解軟體工程 项目管理相关课题 被譽為軟體領域的聖經 內容源於作者布魯克斯在IBM公司System 360家族和OS 360中的專案管理經驗 1 該书于1975年首次发行 ISBN 978 0 201 00650 6 並於1995年重新发行纪念版 ISBN 978 0 201 83595 3 註 2 其中新增了对 没有银弹 一文的评论和回应 與4個額外的新章節 人月神話 軟體專案管理之道原名The Mythical Man Month Essays on Software Engineering作者佛瑞德 布魯克斯译者錢一一 註 1 语言繁體中文主题軟體工程 專案管理發行信息出版机构經濟新潮社出版時間1975 1995中譯本出版日期2004年4月4日页数424頁上一部作品沒有銀彈规范控制ISBN9867889185OCLC1201368杜威分类法001 6 425LC分类法QA76 6 B75 目录 1 內容簡介 1 1 焦油坑 1 2 人月神話 1 2 1 人月 1 2 2 Brooks法則 1 3 外科手術團隊 1 4 專制 民主與系統設計 1 5 第二系統效應 1 6 意念的傳達 1 7 巴別塔為什麼失敗 1 7 1 溝通 1 7 2 專案工作手冊 1 7 3 組織 1 8 軟體需求 2 書目 2 1 二十週年紀念版 3 参见 4 注释 5 參考文獻 5 1 引用 5 2 來源 6 外部链接內容簡介 编辑焦油坑 编辑 跟只為私人使用而單獨寫出來的組件程式相比 做出軟體系統產品 programming systems product 所要付出的代價將是九倍以上 估計產品化 productizing 的代價是三倍 若要對組件從事設計 整合 測試 進而凝聚成為一個系統 則代價也是三倍 而且這方面的成本計算基本是獨立的 1 史前時期最駭人的景象 莫過於一群巨獸在焦油坑裏做垂死前的掙扎 不妨閉上眼睛想像一下 你看到了一群恐龍 長毛象 劍齒虎正在奮力掙脫焦油的束縛 但越掙扎 焦油就纏得越緊 就算他再強壯 再厲害 最後 都難逃滅頂的命運 過去十年間 大型系統的軟體開發工作就像是掉進了焦油坑裏 佛瑞德 布魯克斯 2 軟體開發的另一個難題 是從單一程式到軟體系統過程中 所造成複雜度的快速上升 期間並需要包含不同的活動與技能 使得軟體開發必須面對多樣性的挑戰 布魯克斯最早認識到設計程式 開發軟體的差別 他以程式與系統 產品的差異 解釋兩者之間的不同 並以3 3的複雜度加以說明 3 人月神話 编辑 人月神話 英語 The mythical man month 這部分講述人力和時間並不呈現線性關係 指出以大量人員和較短的時間 並不能縮短軟體的開發進度 一窩蜂的作業方式無助於軟體生產 且會製造麻煩 產生出更差的軟體 向進度落後的專案追加人力 只會使進度更加落後 因為新進的人員需要時間了解整個專案 而增加額外的溝通消耗 當有N個人必須在這群人之中進行溝通時 無階級關係 當N增加 其輸出M將抵消其效益 甚至倒退 最後幾天所完成的進度 遠不如剛開始幾天所完成的進度 像是發現了許多錯誤 團隊交流公式 n n 1 2 displaystyle n n 1 2 nbsp 範例 50個開發人員 就要50 50 1 2 1225 displaystyle 50 50 1 2 1225 nbsp 個溝通管道用 人月 來衡量工作規模的大小是危險的 也是一個容易遭到誤解的迷思 使用人月的前提必須是在人力和工時可以互換的情況之下 當一份工作因具有連續性的限制而不可切分時 就算投入再多的人力 也不會對時程有所影響 生小孩就是需要九個月 你叫多少個媽一起生都一樣 軟體工程就是像這樣的工作 因為它必須除錯 而除錯本身就具有連續性的本質 1 人月 编辑 人月 英語 man month 指的是 一個人要花幾個月 才能完成軟體開發的單位 通常用來評估一件軟體專案的大小 4 以成本會計 cost accounting 為基礎的時程預估技術 使我們誤把工作量和專案進度混為一談 人月是個危險並很容易就遭到誤解的迷思 myth 因為它假設人力和工時可以互換 1 Brooks法則 编辑 在一個時程已經落後的軟體專案中增加人手 只會讓它更加落後 註 3 根據Brooks法則 增加人員到一個已經延誤的專案裡 等於是火上加油 除非你可以把工作區分 讓新進人員可在不影響他人工作的狀況下有所貢獻 把工作切分給更多人做將造成額外的溝通 communication 代價 訓練和相互的交流 intercommunication 欲增加軟體專案的人手 總共必須付出的代價可分為三方面 工作重新切分本身所造成的混亂與額外工作量 新進人員的訓練 新增加的相互交流 1 外科手術團隊 编辑 在接受相同的訓練 同樣都是兩年資歷的情況下 優秀專業程式設計師的生產力要比差勁的程式設計師好上十倍 短小精悍團隊是最棒的 盡可能用最少的人 兩人團隊 其中一人當領導者 這通常是最佳的用人方式 以短小精悍團隊開發真正大的系統就太慢了 絕大多數大型軟體系統的經驗顯示 使用一堆人蠻幹的方式最耗成本 最慢 最沒有效率 做出來的系統在概念上也最不完整 以一位首席程式設計師為主 類似於外科手術團隊的組織提供了一個良方 既可因少數人的決策而兼顧到產品的整體性 又可因多數人的合作與大幅溝通減少而得到全部人的生產力 1 專制 民主與系統設計 编辑 在系統設計時 保有概念整體性 conceptual integrity 是最重要的原則 1 功能概念複雜度比 這個比值是為了量測使用便利性 對簡單和困難的運用都很有效 才是系統設計的最終測試標準 功能多 不見得是好事 要達成概念整體性 設計必須出自於一個人的想法 或是極少數人的一致決定 對大型軟體專案 小專案也一樣 來說 將架構設計獨立於實作之外是取得概念整體性強而有利的方法 如果系統必須保有概念上的整體性 那麼就必須有人來控制這些概念 這就是需要專制的原因 無庸置疑 許多軟體架構 實作 實現的工作都是可以同時進行的 不論硬體或軟體設計 都可以同時進行 第二系統效應 编辑 主条目 第二系統效應 第二系統效應 英語 The second system effect 就一個人所做過的設計而言 第二個系統是最危險的系統 一般來說 都傾向於過度設計 1 當他做第三或之後的系統時 之前的經驗會互相印證 以確認出這類系統的一般性特色 而系統彼此之間的不同處 也會幫助他辨別出屬於特殊和非通用的部份 除了做些功能上的修飾之外 第二系統效應還有另外一項特徵 那就是傾向於將之前已熟悉的技術發揮到淋漓盡致 但卻沒有留意到 這項技術早就跟目前專案的基本系統假設有衝突而不再適用 OS 360有好多這樣的例子 Windows NT則似乎是1990年代的範例 對大部份OS 360的設計人員來說 它也是個第二系統 設計成員分別來自1410 7010磁碟作業系統 Stretch作業系統 Project Mercury即時系統 給7090用的IBSYS作業系統等等 幾乎沒有人擁有兩個上述系統的發展經驗 所以OS 360可稱得上是一個最佳的第二系統效應範例 意念的傳達 编辑 巴別塔為什麼失敗 编辑 溝通 编辑 專案工作手冊 编辑 手冊或書面規格是不可或缺的工具 雖然光靠它是不夠的 手冊載明的是產品的外部 external 規格 用來描述並制定出使用者從外觀上將或看到的所有細節 撰寫手冊便是架構設計師的主要工作 當使用者和實作人員的反應不斷地顯示出設計上難以使用或實現之處 手冊就會墮入重新準備 修改的輪迴之中 為了造福實作人員 將修改的程度予以量化 quantize 是很重要的 在時程上應該要有載明日期的版本資訊 1 組織 编辑 軟體需求 编辑 失敗的軟體專案經常發生在開發者與用戶間對需求認知的誤解 開發者抱怨用戶說不清楚需求 而用戶抱怨開發者誤解他們的意思 布魯克斯認為 軟體開發最困難的單一項目 是精確地決定要建造什麼 註 4 書目 编辑初版 5 20週年紀念版 6 二十週年紀念版 编辑 增修內容 1 將初版中所主張的所有論斷整理出一個簡潔的摘要 包括了原書的主要理念 就人力配置的比例而言 大型軟體專案所面臨的是跟小型專案完全不同的管理問題 這引申出產品的概念整體性是其中的關鍵 而達成概念整體性雖然困難 但卻是可能辦到的 作者佛瑞德 布魯克斯對他當初所提出的這些論斷 在經過一個世代之後所做的觀察 轉載布魯克斯1986年發表於IEEE Computer 的論文 沒有銀彈 布魯克斯對於他1986年的論斷 十年內不會有任何銀彈 所做的回應 参见 编辑 nbsp 计算机程序设计主题 nbsp 软件主题 nbsp 工程主题 nbsp 书籍主题 反面模式 代码重构 沒有銀彈 Peopleware Productive Projects and Teams注释 编辑 錢一一 1968年生 中正理工學院電子工程碩士 目前任職於中山科學研究院 從事大型系統的軟體架構設計工作 人月神話 是他的第一本譯作 繁體中文版係根據1995年的紀念版 Brooks原文 Adding manpower to a late software project makes it later Brooks原文 The hardest single part of building a software system is deciding precisely what to build 參考文獻 编辑引用 编辑 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 Frederick P Brooks Jr 人月神話 軟體專案管理之道 由錢一一翻译 經濟新潮社 year 2004年 2011 04 12 ISBN 9867889185 原始内容存档于2013 11 08 中文 臺灣 該書 導讀軟體人生之何似 本書作者Frederick Brooks對於他自己的軟體專案經歷 所做的描述 鄭炳強 軟體工程 從實務出發 Software Engineering A Perspective from Practices 智勝文化事業有限公司 2008年 ISBN 978 957 729 659 7 中文 臺灣 使用 accessdate 需要含有 url 帮助 該書 推薦序二 科技再怎麼變 人還是人 The Mythical Man Month Addison Wesley 1975 ISBN 0 201 00650 2 英文 Chap 17 No Silver Bullet Refired The Mythical Man Month Anniversary Edition with four new chapters Addison Wesley 1995 ISBN 0 201 83595 9 英文 來源 编辑 书籍Frederick P Brooks Jr 人月神話 軟體專案管理之道 由錢一一翻译 經濟新潮社 2004年 2011 04 12 ISBN 9867889185 原始内容存档于2013 11 08 中文 臺灣 外部链接 编辑维基语录上的人月神话语录 繁體中文 人月神話 軟體專案管理之道 20週年紀念版 简体中文 人月神話 32周年中文紀念版 页面存档备份 存于互联网档案馆 英文 The Mythical Man Month Essays on Software Engineering Anniversary Edition 2nd Edition 页面存档备份 存于互联网档案馆 英文 Frederick P Brooks Jr 個人主頁 页面存档备份 存于互联网档案馆 英文 Preface to 20th Anniversary Edition as found on Safari Informit com 页面存档备份 存于互联网档案馆 英文 Organization and Team Patterns 取自 https zh wikipedia org w index php title 人月神话 amp oldid 79743761, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。