標籤:style blog http 使用 os width
6.3.1 什麼時候適合選擇敏捷
我們看了這麼多方法論之後,一些同學一定比較困惑,到底選擇哪一種開發方法比較好呢? 這在實踐中不是難題,有學者還列出了一些簡單的問題來協助人們做決定[i]:
表6-3 問題引出方法
問題 |
Yes – 偏向傳統的瀑布+文檔的流程 |
No – 偏向敏捷流程 |
1. 項目需要有明確的spec 嗎? |
|
|
2. 項目沒有明確的使用者,也無法連絡使用者進行溝通 |
|
|
3. 軟體系統是大型的嗎? |
|
|
4. 軟體系統是複雜的嗎?例如即時系統 |
|
|
5. 軟體的生命週期很長嗎? |
|
|
6. 你使用比較差的軟體工具嗎? |
|
|
7. 軟體項目成員是分布在不同的地區嗎? |
|
|
8. 團隊是否有“文檔為先”的傳統? |
|
|
9. 團隊的編程技術較差嗎? |
|
|
10. 要交付的軟體系統是否要通過某種行業規定或行政法規的批准? |
|
|
請結合中國軟體開發的情況(在國企開發,給企業開發軟體,個人創業,遊戲產業等),討論應該增加一些什麼問題,來協助團隊選擇最合適的開發模型。
6.3.2 討論軟體開發方法的思潮
迄今為止,我們瞭解了不少軟體工程的方法論。請從下表挑選幾篇關於軟體工程方法論的文章,仔細閱讀(包括相關的討論),根據你的軟體工程經驗分享你的看法。
表6-4 關於軟體工程方法論的系列文章
閱讀材料 對軟體工程方法論的思考 瀑布, 大泥球, 教堂,集市,敏捷和銀彈 |
網頁地址 |
No Silver Bullet - Essence and Accidents of Software Engineering - Brooks |
http://www.cs.umd.edu/class/spring2003/cmsc838p/General/NoSilverBullet.html |
There Is a Silver Bullet – Brad J Cox |
http://www.drdobbs.com/there-is-a-silver-bullet/184407534/ |
big ball of mud 你的項目有一個大泥球麼?有什麼解決辦法? |
http://www.laputan.org/mud/ |
CatB – Cathedral and the Bazaar 你的團隊是用什麼方式建造軟體? |
http://en.wikipedia.org/wiki/The_Cathedral_and_the_Bazaar |
Lost in CatB. 這些情況在你的團隊中出現過麼? |
http://queue.acm.org/detail.cfm?id=2349257 中文版: http://www.ituring.com.cn/article/9363 |
Worse is Better – Richard Gabriel |
The Rise of Worse is Better Is Worse Really Better |
Managing the development of large software systems:concepts and techniques 這是後來大家說的 “瀑布模型”,它有什點? |
http://www.cs.umd.edu/class/spring2003/cmsc838p/Process/waterfall.pdf 對此模型的誤解: http://www.youtube.com/watch?v=X1c2--sP3o0 |
Agile Method – by Martin Fowler 你的團隊在開發中用了那些敏捷的思想和做法? Agile is dead, long lives Agility (敏捷已死?!) |
http://martinfowler.com/articles/newMethodology.html http://pragdave.me/blog/2014/03/04/time-to-kill-agile/ 中文版(http://www.testwo.com/article/77) |
軟體匠藝宣言(Manifesto for Software Craftsmanship) |
http://manifesto.softwarecraftsmanship.org/#/zh-cn |
軟體工程的方法論到底有多少用處? 同時好好讀一下兩個文章的評論。 |
http://agile.dzone.com/articles/jez-humble-why-software http://continuousdelivery.com/2012/08/why-software-development-methodologies-suck/ |
[i] I Sommerville, Software Engineering, 9th Edition, Addison-Wesley, 2010. ISBN 0137035152