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 corrupton 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/ |