6.3.1 什么时候适合选择敏捷
我们看了这么多方法论之后,一些同学一定比较困惑,到底选择哪一种开发方法比较好呢? 这在实践中不是难题,有学者还列出了一些简单的问题来帮助人们做决定[i]:
表6-3 问题引出方法
问题 |
Yes – 偏向传统的瀑布+文档的流程 |
No – |
1. 项目需要有明确的spec 么? |
|
|
2. 项目没有明确的用户,也无法联系用户进行沟通 |
|
|
3. 软件系统是大型的么? |
|
|
4. 软件系统是复杂的么?例如实时系统 |
|
|
5. 软件的生命周期很长么? |
|
|
6. 你使用比较差的软件工具么? |
|
|
7. 软件项目成员是分布在不同的地区么? |
|
|
8. 团队是否有“文档为先”的传统? |
|
|
9. 团队的编程技术较差么? |
|
|
10. 要交付的软件系统是否要通过某种行业规定或行政法规的批准? |
|
|
请结合中国软件开发的情况(在国企开发,给企业开发软件,个人创业,游戏产业等),讨论应该增加一些什么问题,来帮助团队选择最合适的开发模型。
6.3.2 讨论软件开发方法的思潮
迄今为止,我们了解了不少软件工程的方法论。请从下表挑选几篇关于软件工程方法论的文章,仔细阅读(包括相关的讨论),根据你的软件工程经验分享你的看法。
表6-4 关于软件工程方法论的系列文章