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) the corruption of Agile http://www.drdobbs.com/architecture-and-design/the-corruption-of-agile/240166698 Erik Meijer: http://vimeo.com/110554082 http://nic.ferrier.me.uk/ "In Defense of Agile" by Nic Ferrier |
软件匠艺宣言(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