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

简介:
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/







本文转自SoftwareTeacher博客园博客,原文链接:http://www.cnblogs.com/xinz/p/3852390.html,如需转载请自行联系原作者


目录
相关文章
|
6月前
|
监控 项目管理
软件工程IT项目管理复习之 三:项目管理过程组:案例研究
软件工程IT项目管理复习之 三:项目管理过程组:案例研究
122 0
|
1月前
|
敏捷开发 安全 测试技术
软件开发的要点有哪些?
软件开发过程包括需求分析、设计、编码、测试、上线与维护五大阶段。每个阶段需注重团队合作、文档编写、安全性和性能优化。建议采用敏捷开发、CI/CD、建立用户反馈机制及持续培训,以确保开发高效、产品质量高且能快速响应市场变化。
|
4天前
|
敏捷开发 Devops 持续交付
软件开发中的敏捷方法:从理论到实践
软件开发中的敏捷方法:从理论到实践
|
开发框架 程序员
软件工程概念——是什么?软件工程的过程PDCA?生命周期模型有哪些?
在刚结束完的机房,它就是一个软件,我们如何使这个软件能够供更多人去使用,软件如何更加规范化,就需要使用软件工程的思想啦!
|
项目管理
软件工程高效学 | 实战案例:TAPD进行需求管理
软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对人员(People)、产品(Product)、过程(Process)和项目(Project)进行分析和管理的活动,其根本目的是让软件项目尤其是大型项目的整个软件生命周期(从分析、设计、编码到测试、维护全过程)都能在管理者的控制之下。本篇通过TAPD进行需求管理。
500 0
软件工程高效学 | 实战案例:TAPD进行需求管理
|
调度 项目管理
【软件工程基础知识】进度管理的基本原则
【软件工程基础知识】进度管理的基本原则
280 0
|
JavaScript 前端开发 测试技术
《软件测试技术实战:设计、工具及管理》—第1章 1.1节软件测试的基本理论
软件测试的基本理论是软件测试的基础。在本书的开始,我们先学习和回顾一下软件测试的基本术语,这样可便于更深入地探讨软件测试的其他知识。
4932 0
下一篇
无影云桌面