人月神话感想
人月神話這個名字對我來說很有吸引力,我以為它會是一本講述計算機歷史神話的故事。當我看到第二章我才知道原來這個“人月“是我們項目工程中估計和進度安排中使用的工作量單位:人月。讀完這本書我還是沒有明白很多東西,因為得項目經驗不足,不能站在巨人的肩膀上看懂這本書。但是看完之后還是有一些小小的感悟。
?? 《人月神話》是一本經典的軟件工程的巨作,作者布魯克斯(FrederickP.Brooks)被譽為“IBM System/360之父“,他曾是這一項目的項目經理,后來在設計期擔任360操作系統的項目經理。由于這一工作,他與Bob Evans和Erich Bloch 1985年曾獲美國國家技術獎。Brooks博士曾經早期擔任IBM公司Stretch和Harvest計算機的體系結構設計師。1999年,他還榮獲美國計算機領域最高獎圖靈獎。
? ? 所有的編程人員都有樂觀主義,總是相信自己的代碼是肯定能運行的。所以在安排項目的進度的時候就會是假設在代碼能夠在正常運行時因該花費的時間。而現實往往不是樂觀,在項目的進展過程中會存在各種不可預知的問題。在這個時候項目經理就會為項目增加人員,然而增加人員反而導致項目進度越來越慢。因為新增加的人員還需要培訓,需要時間去了解項目的內容和進展情況。在投入了更多的人力的時候,經理發現項目進度反而更慢他就會投入更多的人力,這種惡行循環導致項目的失敗。
? ? 雖然0S/360失敗了,但是它在開發的過程中解決了很多技術難題。它的開發過程成就了這本“人月神話“。這也讓我想明白為什么大家都會覺得在項目實踐中我們才可以學到更多。沒有項目,你不會去想有什么問題。但是在項目中遇到問題的話,你最好的求助方式是網絡和書籍,而且如果在遇到問題的時候能深入研究書籍的話你才會進步的比較快。
? ? 讓我印象最深的是巴比倫塔的管理教訓里面的一句總結為什么巴比倫塔為什么是一個失敗的工程:那為什么項目還會失敗呢?他們還缺乏些什么? ? ? 兩個方面——交流, 以及交流的結果——組織。 他們無法相互交談, 從而無法合作。 當合作無法進行時, 工作陷入了停頓。在這次高軟的工程實踐中我就深刻體會到這句話的重要性。我們組的項目所有代碼都是我一個人寫的,我的隊友負責幫我優化UI。我告訴他我需要哪些東西,但是他完全按照他的理解做了一個完全不是我想要的東西。我以為我和他講的很清楚,可是還是導致我們的項目在這里浪費了一些時間。最后總結,我和他交流有問題,還有就是他本身對于我們的項目是不理解的,所以導致他按照他的想法去做的時候就會和我的想法產生誤差。
團隊如何進行相互之間的交流溝通呢?通過所有可能的途徑。
一.非正式途徑
???清晰定義小組內部的相互關系和充分利用電話,能鼓勵大量的電話溝通從而達到對所書寫文檔的共同理解。
二.會議
???常規項目會議。會議中,團隊一個接一個地進行簡要的技術陳述。 這種方式非常有用,能澄清成百上千的細小誤解。
三.工作手冊
在項目的開始階段,應該準備正式的項目工作手冊。
巴比倫塔可能是第一個工程上的徹底失敗,但它不是最后一個。交流和交流的結果—組織, 是成功的關鍵。 交流和組織的技能需要管理者仔細考慮, 相關經驗的積累和能力的提高同軟件技術本身一樣重要。
文檔
? ? 看完整本書我看到作者一直再強調文檔的重要性,他曾經很勤奮的向軟件工程師們講述文檔的必要性以及優秀文檔所具有的特點方面的講座。但是效果都非常的的不好,他們知道如何來寫出優秀的文檔,但是他們缺乏熱情。所以作者采用向馬車搬收銀機的方法向他們展示如何來完成這項工作。結果顯示這種方法的效果還是挺好的。那我們在開發的過程中需要什么樣的文檔呢?
?? 不同用戶需要不同級別的文檔。 某些用戶僅僅偶爾使用程序, 有些用戶必須依賴程序,還有一些用戶必須根據環境和目的的變動對程序進行修改。使用程序。 每個用戶都需要一段對程序進行描述的文字。可是大多數文檔只提供了很 少的總結性內容,無法達到用戶要求,驗證程序。 除了程序的使用方法, 還必須附帶一些程序正確運行的證明, 即測試用例。修改程序。 調整程序或者修復程序需要更多的信息。顯然,這要求了解全部的細節,并且這些細節已經記錄在注釋良好的列表中。 和一般用戶一樣, 修改者迫切需要一份清晰明了的概述。
? ? 另外一個讓我印象深刻的觀點是:要保證一個項目的進度被大幅度推遲,制定進度表很重要。進度表由里程碑和完成時間組成。里程碑必須具體,明確,可界定。某一里程碑要么到達,要么沒有到達,不應該是80%到達的。而我的經驗是,制定進度表非常重要,而且要求制定者有很強的技術背景,這樣才能對碰到的問題和可能花掉的時間做出更準確的估計。
?
轉載于:https://www.cnblogs.com/twentytwo/p/4308828.html
總結
- 上一篇: 微软更新教程视频:教你如何维修 Surf
- 下一篇: you-get详细配置教程