现代软件工程 第六章 【敏捷流程】练习与讨论

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/500380.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

现代软件工程 第七章 【MSF】练习与讨论

7.7 移山开发方法——比TFS敏捷更精简 几个软件学院的学生来请教阿超,同学们自豪地说,我们要用全套TFS敏捷开发模式开发项目! 真的?阿超不敢相信。 同学: 对!我们要用全5个工作项类型 – 任务、缺陷、场景…

现代软件工程 第八章 【需求分析】练习与讨论

1 扩展阅读下面两篇文章也说明了软件估计的难度: Steve McConnell 软件估计的 10 种罪:http://www.ewh.ieee.org/r5/central_texas/austin_cs/presentations/2004.08.26.pdf Quora精选: 为什么软件开发周期总是预估的2~3倍http://jandan.net/201…

现代软件工程 第九章 【项目经理】练习与讨论

9.5.1 PM们的故事 讲了这么多条条框框,我们还是来讲几个故事吧。 A)是不是所有的好功能都是由PM主导,一步一步根据用户需求,按照用户场景设计,然后进行可用性测试等等步骤之后得来的呢? 功能本天成,妙手偶…

现代软件工程 第十章 【典型用户和场景】 练习与讨论

1. 讨论:下面的老板犯了什么错误? 只看用户的表面语言或行动还是不够的。我们还要找到用户语言行动背后的动机! (图像来源: http://www.weibo.com/funnyshoelace) 2. 是否要文档 有人说,我们敏捷的团队,就喜欢直接的面对面的交流&#xff0…

现代软件工程 第十一章 【软件设计与实现】 练习与讨论

1 如何避免在产品开发后期不断有重大修改,导致其它模块的连锁反应? DCR Tell mode vs. Ask mode设计变更 在项目早期,如果大家觉得要做一个设计变更,便可以采用告知模式(Tell-mode)的形式,也就是说,修改方必须通告所…

现代软件工程 第十二章 【用户体验】练习与讨论

1 什么是用户体验, 什么时候开始考虑用户体验? 究竟什么是用户体验呢? 请看: http://www.infoq.com/articles/aaron-sanders-user-experience (中文版)http://kb.cnblogs.com/page/508097/ 既然用户体验和用户界面对一个项目这么重要&…

现代软件工程 第十七章 【人、绩效和职业道德】 练习与讨论

0. 为啥要讲人、绩效、和职业道德? 学好专业不就行了么,为啥要扯这么多? 用专业知识教育人是不够的。通过专业教育,他可以成为一种有用的机器,但是不能成为一个和谐发展的人。要使学生对价值有所理解并且产生热烈的感情…

现代软件工程 第十三章 【软件测试】 练习与讨论

13.5.2 有错不改 果冻: 微软的产品经过这么多版本的不断完善,应该是把所有问题都搞定,“止于至善”了吧? 阿超: 那也不一定,在非常有名的电子表格软件Excel中,就有这样一个Bug:Exce…

现代软件工程 第十四章 【质量保障】 练习与讨论

15.3.1 有些成功人士或公司认为不需要独立的测试角色(Test),你怎么看? 我猜想和踢足球类似,还是那几个原因: 人太牛: 不世出的天才,例如高德纳写书时发现排版软件不好用,就自己写了一个。也没听…

现代软件工程 第十五章 【稳定和发布阶段】练习与讨论

15.3.0 案例分析 可以看看这两个学生项目的例子,推断出这些团队的血型: STG游戏的跳票(为了完美,推迟了7天,但是7天之后也没有发布……) [i] 英语学习软件(说了“明早发布”,但是明早一直没到)[ii] 15.3.1 反动分子阿…

现代软件工程 第十六章 【IT 行业的创新】练习与讨论

16.6.0 Xerox Parc 的成功创新和推向市场的失败 http://research.microsoft.com/en-us/um/people/blampson/Slides/AltoAtPARCIn1970s_files/frame.htm http://research.microsoft.com/en-us/um/people/blampson/38-AltoSoftware/WebPage.html http://research.microsoft.com/…

感恩回馈——你评博客,我送好书

各位博客园的用户: 最近我的书《构建之法—现代软件工程》上市了,得到了不少读者和老师的好评,出版2个月即告重印。该书的相关信息参见豆瓣页面:http://book.douban.com/subject/25965995/ 《构建之法—现代软件工程》得以出版和畅…

《梦断代码》读后感 - 驱动,责任,交流,远虑

这三篇读后感原来发布在我自己申请的域名 yishan.cc 上面,后来这个域名被墙了。 (原文写于2008年12月) 几个星期前,我给《现代软件工程》课的每一个团队都发了一本 《Dreaming In Code》的中文版 《梦断代码》,要求写读后感。这本书讲了这样的…

软件工程练习:模块化,单元测试,回归测试,TDD

这是《构建之法》实战教学的一部分。适合作为同学们的第二个程序作业。 第一个程序作业: 请看 “概论” 一章的练习,或者老师的题目,例如这个。 作业要求: 软件工程的作业越来越有意思了, 我们在第一个作业中&#xff…

《构建之法》参考书和链接汇总

《构建之法》 参考书和链接汇总 参考书汇总 一些读者对《构建之法》引用过的参考书也感兴趣,因此我把所有参考书单独列出来。其实人大部分的思想都是受某些外部信息的启发影响而来,很多道理看似新颖,其实别人早就讲过了😀。这个参…

现代软件工程讲义 7 分析和设计方法

(这一节在第一版的 《构建之法》中没有, 是《构建之法》电子书(多看版), 和纸版书第二版中新增加的内容,纸版书第二版预计2015年6月出版) 11.1 分析和设计方法 我们写软件就是要解决用户的需求,我们需要表达和传递下面这些…

三周的 软件工程实践课 课程安排建议

不少学校想在暑期安排软件工程实践课, 在这么短的时间内要做到软件生命周期的完整体验是有很多挑战的,下面是一个建议: 软件工程课程设计 - 三周计划,10 次授课,10 次学生报告。 第一周,准备: 在…

现代软件工程讲义 源代码管理

【现代软件工程课件】 源代码管理 -- 以实践促进学习 移山软件学院的学生果冻问老师: 为啥需要源代码管理? 我自己写代码多爽,别人要,就用QQ 传过去好了。 老师问:原始人怎么建房子? 果冻:或者找一个洞&…

现代软件工程讲义 个人项目和结对项目练习 地铁

很多老师反映教软件工程和程序设计的时候没有合适的题目,《构建之法》提供了下面的题目,都是从简单的解题思路入手,逐步增量改进。学生们可以复习基本的编程技能,然后逐步加入模块化,文件处理,单元测试&…

最新软件工程总结,项目模板,软工作业下载

(改了标题吸引目标用户) 老师教课,学生上课,首先要讲明师生关系。 其次,就是要说明这门课的底线是什么。 我们假设所有人写作业都独立思考,认真实践,不断改进,勇于创新... 这个假设通常是不全面的&#xf…