说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

敏捷开发的6个实战经验

HTML文档下载 WORD文档下载 PDF文档下载
Ulf Eriksson根据自己多年的敏捷开发经历,总结了6个实施敏捷开发的技巧:快速迭代、让测试人员和开发者参与需求讨论、编写可测试的需求文档、多沟通&尽量减少文档、做好产品原型、及早考虑测试等。

在大型企业中经常是各种软件开发模式混用,一些采用敏捷开发,一些则是采用传统的瀑布式或RUP(统一软件开发过程)。敏捷开发,相对传统软件开发模式,它主要是针对快速变化的需求,不断优化管理流程,最终推出优质软件。 

原文作者Ulf Eriksson,是一家在线问题跟踪软件公司的创始人之一,他是敏捷开发的忠实粉丝,已经进行了多年敏捷开发的实践。下面内容主要是作者根据自己多年经历进行的经验总结。 


1. 快速迭代

相对那种半年一次的大版本发布来说,小版本的需求、开发和测试更加简单快速。一些公司,一年仅发布仅2~3个版本,发布流程缓慢,它们仍采用瀑布开发模式,更严重的是对敏捷开发模式存在误解。 

由一年发布2个版本转到一个月发布2个版本,这也不太可能。但是现在来看,快速迭代已经成为事实标准,关键是要比目前的版本发布速度更快一些。 

快速迭代,可以逼迫团队不断优化流程、提升工作效率,不要在无足轻重的事情上浪费时间。如果离deadline还有6个月,那么整个工作节奏必然悠哉。如果每月发布一个版本,那么较以前效率必然会更高。如果发布周期过长,导致无法尽快发现用户需求,进而无法及时改进产品。 

2. 让测试人员和开发者参与需求讨论

需求讨论以研讨组的形式展开最有效率。研讨组,需要包括测试人员和开发者,这样可以更加轻松定义可测试的需求,将需求分组并确定优先级。 

同时,该种方式也可以充分利用团队成员间的互补特性。如此确定的需求往往比开需求讨论大会的形式效率更高,大家更活跃,参与感更强。 

确定需求时,不要过度盯在细节上。需求报告过于详细,就是一种不敏捷的习惯,还浪费大家的时间。当然,不能错过好点子,但就是不要太细,因为项目真正实施起来时需求将会产生很大的变动。 

3. 编写可测试的需求文档

开始就要用“用户故事”(User Story)的方法来编写需求文档。这种方法,可以让我们将注意力放在需求上,而不是解决方法和实施技术上。过早的提及技术实施方案,会降低对需求的注意力。 

规划业务需求,可以采用“3W模板”,也就是: 

  • 谁(Who)
  • 是什么(What)
  • 为什么(Why)
上面的3W实际上就是描述了相关利益者是谁,他们想要什么,他们为什么有这种需求。下面举一例子进行说明: 

谁(Who) 是什么(What) 为什么(Why)
用户
希望借助一个应用程序在不同服务器间传输文件
为了存储项目数据

为了更加接近“用户故事”,我们可以改写为:

谁(Who) 是什么(What) 为什么(Why)
消费者/用户 想将归档过程数字化 为了增强沟通,提高分享效率

敏捷项目中编写用户故事有一个常用模板:作为一名[用户类型],我想要[需求],以便于[原因]。应用到这个例子,就是:作为一名用户,我想要将归档程序数字化,以便于增强沟通、提高分享效率。 

多数情况下,需求内容需要更加充实和详细,这一步要放到后面做,开始不要这样。用户故事的方法有时会因过于简短、不断重复而受到批评。这里我们必须明白:需求文档不是散文或诗歌,应该清晰、简明地描述用户需求;需求文档的重点也在于此,不要管形式多变或内容是否重复这样的问题。 

4. 多沟通,尽量减少文档

任何项目中,沟通都是一个常见的问题。好的沟通,是敏捷开发的先决条件。在圈子里面混得越久,越会强调良好高效的沟通的重要性。 

团队要确保日常的交流,面对面沟通比邮件强得多。 

敏捷开发鼓励日常的协调会议和碰头会,5~7人参与的会议尽量控制在10分钟内。碰头时,要过一遍昨天完成了什么,今天要做什么,哪些问题仍待讨论。可以用Burndown Chart(燃尽图)来形象展示工作进度。每次迭代的时候也都要开一个计划会议和评审会议,一般需要的时间可能会长些,比如半天。这些会议的目的就是对工作查缺补漏。 

评审会议很重要,传统开发模式往往略过该环节,导致一些错误做法不断重复,好的做法无法推广。 

开会时,可以将原先的分组打散,让整个团队都参与到项目的需求讨论和测试中来,这样可以突出成员个人,让大家更乐意参与。 

5. 做好产品原型

建议使用草图和模型来阐明用户界面。并不是所有人都可以理解一份复杂的文档,但人人都会看图。 

一个常见的问题是软件新的功能与用户想要的不一致。为了避免这一问题,可以模拟真实操作,改进模拟操作过程中难以理解和不清楚的操作行为。 

6. 及早考虑测试

及早地考虑测试在敏捷开发中很重要。传统的软件开发,测试用例很晚才开始写,这导致过晚发现需求中存在的问题,使得改进成本过高。较早地开始编写测试用例,当需求完成时,可以接受的测试用例也基本一块完成了。 

敏捷开发中一个常见问题就是开发者没有对已有的代码库进行充分的回归测试。迭代周期很短,从开始到交付就是4周的时间,这样可以对迭代的设计、实现和底层测试一块进行回归测试。 

一系列迭代之后,可以只针对测试活动再补充一个迭代。这个迭代可以将重点放在系统测试、与其他系统的集成度、性能等方面。敏捷开发过程中,可能会导致过少的测试文档。如果迭代周期为1个月左右,可以不必对测试文档过于要求,但要制定好测试策略。 

最后

可能大多数公司或团队还没有开始尝试敏捷开发,不过可以开始从点滴做起,比如开碰头会、为项目管理采用一个更加高效的管理工具等等。最后,希望上面的建议能够为大家的软件开发管理带来帮助。(编译/王殿进)

从一个简单的程序来了解PHP -PHP初学入门教程3 PHP语法基础 -PHP初学入门教程4 建设一个简单的交互网站(一) -PHP初学入门教程5 建设一个简单交互的网站(二) -PHP初学入门教程6 建设一个简单交互的网站(三)密码验证 -PHP初学入门教程7 PHP文件上传 -PHP初学入门教程8 为站点添加投票功能 -PHP初学入门教程9 广告条轮播-PHP初学入门教程10 操作MySQL数据库实现简单的留言板-PHP初学入门教程11 使用PHP来操作Oracle数据库 -PHP初学入门教程12 技术杂项PHP教程结束篇 -PHP初学入门教程13 .NET中DataSet和DataReader的区别与转换 CGI技术及其开发(二)-Delphi资料 CGI技术及其开发(一)-Delphi资料 COM/DCOM中如何传递数组-Delphi资料 COM与DCOM的区别与联系-Delphi资料 Cookie的建立使用-Delphi资料 Delphi 3中Cookie的建立使用 Delphi 中 串 行 通 信 的 实 现 Delphi4.0 开发WEBMAIL程序 Delphi4的Winsocket编程 Delphi4开发WEBMAIL程序 Delphi编写网络程序的安全措施 DELPHI 和 THE INTERNET Delphi开发Web Server程序如何返回图像 Delphi开发Web Server程序响应用户的输入 DELPHI与INTERNET(二) DELPHI与INTERNET(一) Delphi中串行通信的实现 Email 服务器的简单实现-Delphi资料 Internet编程技巧-Delphi资料 很菜的问题 关于red hat9的小问题 不知是程序写多了还是失恋的缘故!我头上有一块地方不长头发了,医生说是斑秃!不知程序员里有斑秃的吗? 一IT美女的悲惨遭遇◎! .net2003的编译器如何为类添加消息映射啊???? JAVA的文本编辑,实现修改和排版 Jmai发送邮件问题? 高分求c++ test 我成功配置了一备用数据库,与主库连上了,可是主库坏了,我怎么打不开备用库啊? (SDK)怎样用SendMessage函数反选一个checkButton control(checked->unchecked)呢? 求救,为什么关于VB的帮助的事例看不到? 有拒绝爱情的吗?我还在念大学 做一个不是很大的网站,是用类好,还是用模块的好? 如何对本地机的共享文件夹设置密码 一个讨厌的QQ木马网站如何防治,最好有人能黑了它! 谁写得有能随机生成数字和字母的函数,借来用用? 快速排序的问题。求救 使用 CDatabase 读写 excel 文件的问题。 水园的朋友们,你们好!!!学校的网页!!! how can I show the correct word? 我的机出现了网络重名~~改IP也没用 庐山印象(ZT)----让我想起我小学写的作文哦!看了会起鸡皮疙瘩的! 请问谁有avphone控件3。0的破解版 学校的网页!!!! 500分! 求win2k下探测和阻塞ping的源码. 有关CASL的一个菜问题,请各位帮忙看一下 关于window.confirm的问题,简单问题解决后既散分 请问doc,pdf等文件在iframe中的显示 怎样给datagird的列定义标题? 怎样判断一个文件是否存在呀? 超市系統的報價?? 如何取得类名为#32770的窗口句柄? 我在web.xml里这样设置首业为什么不可以? 请问AMD的CPU对现在市面上的各种软件都能兼容吗? 电脑操作过程中,有时会弹出一些非法操作的窗口,如何把它保存下来? asp中调用javascript的小问题, 今天终于有时间,想看《黑客帝国2》,哪位提供一点信息? 显卡和声卡的作用不太清楚? 请提供结构化布线的下载地址,谢谢! DataList的绑定内容怎么出不来? VB、ASP或相做软件销售的有志创业者,请与我联系 想做一个分页的程序。如何让jdbc 每次只返回20条数据? 小弟想考MCAD,高分寻求指点。 求jbuilder 4.0 序列号 XP上没有待机的选项怎么设置 如何将weblogic7的jdk换成1.4.2? 请问C#怎样实现可拖动的工具条 VB、ASP或相做软件销售的有志创业者,请看 朋友想开一家软件公司,您能为它取一个好听的名字吗? 小弟想考MCAD,高分寻求指点。 TDC数据岛中有个SORTCOLUMN属性设置排序,XML数据岛中不能用该属性? 一道化学,D项肿么算? 多数载流子和少数载流子的意义 浓度为2.5%的盐水60克,要制成浓度为3%的盐水,需要加入多少克相同重量的盐和水? 09的opi nail envy现在还能用么 求受到朋友的帮助.最感激的话语.简洁的最好.我是要按短信发出去的,麻烦大家帮下忙.求受到朋友的帮助.最感激的话语 .简洁的最好.我是要按短信发出去的,麻烦大家帮下忙. 49的平方是多少 英语翻译I always think that i am a fucking qualified boyfriend 为什么梦过了,但以后会出现梦里的现象 D项怎么计算 .怎么算d D怎么计算 新闻分析:格鲁吉亚大选后内政外交如何新闻人物:格鲁吉亚当选总统马尔格韦拉研究:飞机座椅加宽1英寸 乘客睡眠质IPCC中国宣讲会:21世纪末全球气欧洲一航空公司推“慈善空姐日历” 泳德媒曝美国10年前已监听默克尔通讯 美国国安局:奥巴马并未参与讨论监听默印度反对派竞选集会遭袭 死亡人数上升美研究称因感到受尊敬50岁以上人群更澳大利亚一墓园将举行”恐怖”派对 迎俄罗斯兴起“护花行动”保护夜行年轻女代言虚假广告?陈忠和喊冤下一篇恒大迅速反弹拒绝参与盗窃却主帮助转移赃物 糊涂男说说最美广州电信服务有望“私人订制”政府推新指导价如何监控哪些留学国原始生活有碍珠三角发展双色球开1注1000万苍天霸主禁区之王混在西汉末位面劫掠者道术法诀重生之无憾今生草根闯官记金纹勋章异世双界天下无道奥秘海鲜市场旅游维多利亚旅游献殿旅游侍女像旅游周柏唐槐旅游读书台公园旅游东极仙谷自然风景区旅游贺龙故居旅游苦竹古寨旅游前南峪旅游石博园旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘