最近讀了Steve McConnell寫的《快速軟體開發》,提出了幾點自己的看法,歡迎大家指正交流。
1.如何理解快速軟體開發中的快速?
書中給出的”快速軟體開發”是這麼定義的:它是個普通的術語,與“快速開發“或”更短的開發週期“具有相同的意義,簡而言之,意味著能夠以比你目前跟快的速度開發軟體。光從字面上講,定義與書中後來所提出的有效開發相比,從字面上來講是不夠全面的,很多人也在豆瓣,卓越上表達了類似觀點,但是我個人認為,其實快速軟體開發是一個從宏觀意義上來講的術語,意思就是說我們現代軟體開發項目基本都希望自己的項目快速,快速的前提是高效,比如你的軟體產品中犯了很多低下的典型錯誤,品質很次,那麼你修改錯誤就要花費很多時間,何談快速呢?顯然快速是包含軟體開發中的提高速度和縮短周期等的,因此從深層次來講,這樣的定義是合理的!
2.該如何選擇項目成員?
書中在第二章給出了選擇項目組人員的五個原則,其中有一個為“絕頂的天才——用更少更好的人“。首先我覺得一個團隊中不一定要每個人都是絕頂的”天才“,這個也許有點誇張,個人認為我們在選擇項目成員的時候一個基本原則就是最大限度地保證團隊和諧,實現團隊力量。因此可以將人的種類分為兩種,一種是全才,就是通曉很多方面的知識,比如一個既懂硬體又懂軟體的人,另一種自然就是精才,這種人對某一方面特別精通,當將這兩種人組成一個團隊,精才做具體的事情,而全纔則負責隊員之間的交流。另外,人的數量也不是越少越好,這得取決於工程的大小。
3.當軟體預先估算或計劃與實際進度衝突了怎麼辦?
書中詳細介紹了如何去進行較準確的估算,並且給出了一些過分樂觀的進度計劃的執行個體,可是並沒有給讀者介紹當我們的估算不合理,甚至嚴重影響到下一步計劃的時候,有哪些具體的可行補救措施等,個人覺得在實際的軟體開發過程中尤其像我們這樣的新手,出現這種情況是肯定會有的。
4.完全按照指導、計劃來做是否會固化隊員的思維?對整個項目的進行有什麼壞處?
本書的第5,8,9都有講到軟體開發過程中對於原計劃的執行的重要性以及必要性,如果一味地這麼做是否對項目的創新有所影響。比如說在軟體開發到一半的時候,一位隊員給出了一個有關軟體開發的一個新的點子,並且這個解決方案比原計劃的要好,對這種情況應該採取什麼措施。