[转载]基于TFS实践敏捷-工作项跟踪
[转载]基于TFS实践敏捷-工作项跟踪
工作项跟踪(1)
可跟踪性是软件过程的重要能力,TFS主要是以工作项来实现过程的可跟踪性。曾有人问:"你们实际项目里的工作项是怎么样的?能不能让我们看看?"我也一直很好奇别的公司TFS里的工作项是怎样的,网上这方面的资料很少。我就以三年前的三维管线项目为例,说一说我们的工作项跟踪,欢迎大家批评指正。
1 需求
敏捷宣言认为:"响应变化 重于 遵循计划",需求的变化,尤其是在中国,经常是无休无止。我们要做的就是要在TFS上做好需求管理, 从而达到响应变化的目的。
1.1 需求管理
我们先新建一个用户情景,标题写上"爆管分析",然后指定区域,迭代,堆栈级别,需求说明写到详细信息里。情景点是跟工作量相关的,我们没有估算工作量,也没有安排时间进度。
用户情景是需求管理的基本单元,跟文档化需求管理有很大的不同,我们没有强调需求基线评审,也没有正式的需求变更审批。需求发生变化时,只管更新到用户情景的详细信息。需求往往会经过反反复复的修改,历史记录里会保存着更改的时间,人,内容。这比跟踪需求规格说明书这样的大文档的版本历史要容易的多。
1.2 用户故事
用户故事是需求建模的一种方式,也是敏捷开发的重要实践。功能点的建模我推荐采用用户故事,可以比可视化建模表达详细的信息。转到上图里的"实现",这时我们看到当前的子项为空,接下来新建一个子任务"编写爆管分析用户故事",经过反反复复的修改最终结果如下:
1 启动爆管分析命令,系统显示爆管分析界面;
2 指定一条管段,三维窗口里显示这条管段的选中状态;
3 输入缓冲区半径后执行分析,系统显示出阀门井列表;
4 双击列表中的一条记录,三维窗口定位到当前的阀门;
5 点击[导出]按钮,列表里的数据导出到excel里了;
(用户故事完成后合并到用户情景的详细信息里,跟需求规格并列)
2 设计
软件的设计涉及到方方面面,同时还有各种各样的设计方法。我认为实际的工作中我们应该只做必要的设计,敏捷宣言认为:"工作的软件 重于 详尽的文档"。工作的软件就是可以运行的程序,和运行所必须的数据。基于代码和数据一样可以作出好的设计,在没有必要写文档时,尽量不要长篇大论。
2.1 爆管分析输出设计
转到用户情景的"实现",创建一个新的子任务,写上标题"爆管分析输出设计",并链接"编写爆管分析用户故事"作为前置任务。
接下来我们看看这个任务的结果,变更集的注释是"爆管分析输出设计.fly",下载打开发现是用skyline软件制作的三维数据,如图所示。
2.2 爆管分析用户界面视觉设计
再创建一个子任务,写上标题"爆管分析用户界面视觉设计",指派给界面设计师,转到"所有链接",链接类型选择"已进行版本管理的项",指定项"$\Pipe2012A1\Documents\设计\输出设计\爆管分析\爆管分析输出设计1.png",写上注释"工作输入"。即"爆管分析输出设计"任务的工作输出是这个任务的工作输入。
工作完成后,我们打开变更集5702,并查看其中的图片"$\Pipe2012A1\Documents\设计\界面设计\爆管分析\爆管分析界面设计1.png"
2.3 爆管分析面向对象设计
再创建一个子任务,写上标题"爆管分析面向对象设计",并链接"编写爆管分析用户故事"作为前置任务。这里的"面向对象设计"已经是详细设计了,我们的做法是直接到代码,需要设计类名,输入数据,输出数据,方法,命名空间等。"代码是最精确的文档",不要在文档上绕来绕去,没有程序员有兴趣看那些华而不实的设计文档。
我们打开"变更集5143",查看"BoomPipeCommand.cs"。
3 构建
构建最主要的活动是编码,由于敏捷开发反对过度的详细设计,所以这里的编码所涉及到不仅仅是实现,还包括:算法设计,设计模式,代码重构,代码调整等等。用代码承载那些精妙的设计,而不是笨重的文档。
3.1 爆管分析编码
再创建一个子任务,写上标题"爆管分析面向对象设计",并链接"爆管分析用户界面视觉设计"和"爆管分析面向对象设计"作为前置任务。这样就不用给该任务链接工作输入了,执行任务的程序员可以直接找到前置任务的工作输出(即变更集)。
任务完成后,我们看到"变更集5115"的链接注释"BoomPipeCommand.cs","变更集5160"的链接注释"BoomPipeControl.cs"。代码大家都很熟悉了,这里就不再详述。
4 测试
TFS的测试涉及非常多的内容,本文我只谈测试用例和Bug。
4.1 测试用例
转到用户情景的"测试用例",创建一个新的测试用例,标题写上"手工输入管段ID进行碰撞分析",然后使用Microsoft测试管理器进行编辑,在步骤里写上:
操作 |
预期结果 |
点击[爆管分析]按钮 |
左边栏显示爆管分析界面窗口 |
从文本框输入"J-A229",回车 |
三维窗口高亮显示ID为"J-A229"的管段,并闪烁爆管的图标。 |
输入缓冲区半径200,点击[开始分析]按钮 |
阀门井列表显示2条记录 |
双击列表中的第一条记录 |
三维窗口定位到控制阀门"FA-331"并闪烁 |
点击[导出]按钮,选择路径"d:\1.xls" |
系统提示导出成功。 |
在excel里打开"d:\1.xls" |
显示2条记录,ID分别是"FA-331","FA-334", |
测试用例完成后结果如下:
4.2 Bug
测试工程师在测试中发现了Bug,这时候应该转到用户情景的"所有链接",新建一个Bug,标题写上"Bug:阀门记录与操作有误",严重级别为"中",然后写上说明,指派给某个程序员。程序员调试Bug之后,会把状态改为"已解决",原因改为"已修复"。指派给测试工程师,测试工程师验证后,如果没有问题就将状态改为"已关闭"。
5 小结
现在让我们回到用户情景的"所有链接",我们将看到如下图所示:
在TFS上,需求管理,项目管理,测试管理,缺陷跟踪等融为一体。无论是从需求到设计,编码,测试,Bug的正向跟踪,还是从Bug向编码,设计,需求的逆向回溯,都不成问题。取得了可跟踪的能力,响应变化也就不再是一句空话了。
- TFS(Team Foundation Server)敏捷使用教程(一):引言
- TFS(Team Foundation Server)敏捷使用教程(二):源代码管理
- TFS(Team Foundation Server)敏捷使用教程(三):定制敏捷过程模板
- TFS(Team Foundation Server)敏捷使用教程(四):工作项跟踪(1)
博客转自:《TFS(Team Foundation Server)敏捷使用教程(四):工作项跟踪(1)》
本文转自SanMaoSpace博客园博客,原文链接:http://www.cnblogs.com/SanMaoSpace/p/5120341.html,如需转载请自行联系原作者
[转载]基于TFS实践敏捷-工作项跟踪相关推荐
- [转载]基于TFS实践敏捷-修复Bug和执行代码评审
本主题阐释了这些功能,以继续这一关注虚拟敏捷团队成员的一天的教程. Peter 忙于编写一些代码以完成积压工作 (backlog) 项任务.但是,他的同事发现了一个阻碍他们工作的 Bug,他想立即修复 ...
- 基于TFS实践敏捷-可视化管理
TFS是基于微软平台一套不错的系统,支持源码管理+运行调试+持续集成+自动化测试+Bug管理+代码评审+任务项管理+文档管理+沟通管理. 基于TFS 2015实践看板管理,让团队的数据可视化,让大家更 ...
- TFS中的工作项(六)
TFS中的工作项 在VS中打开团队资源管理器 工作项有功能,产品积压工作项,任务,测试用例,Bug,障碍,它们之间的关系是:一个产品或应用,有一系列功能,功能最大,可以把一个功能分解成多个产品积压工作 ...
- 工作项跟踪管理系统数据库结构图
该图为今天下午画的ERWin模型逻辑部分(绝大多数部分借鉴了微软TeamFoudationServer中的数据模型) 理解TFS的数据模型很困难,有时候为了理解其数据模型不得不通过一些数据来更深入其设 ...
- TFS 2015 敏捷开发实践 – 看板的使用
看板在现代应用开发过程中使用非常广泛,不管是使用传统的瀑布式开发还是敏捷开发,都可以使用看板管理.因为看板拥有简单的管理方法,直观的显示方式,所以很多软件开发团队选择使用看板进行软件开发管理.本文不在 ...
- VS 中 TFS 的工作项查询功能详解
在团队开发中,一般都要使用一些工具来追踪项目开发进度.在 VS 中可以使用 TFS 的工作项来追踪项目开发进度.下面介绍一下使用 TFS 如何进行工作项的查询. 环境: VS 2017 + TFS 2 ...
- TFS导出工作项、bug,形成excel文件
TFS如何将工作项.BUG等内容导出到excel中呢? 可以通过VS进行操作导出: 打开VS,找到"团队资源管理" 找到"工作项",点击后,再找到"新 ...
- 农行基于TFS工具的敏捷转型实践
" "春天工程"项目组是应用开发二部最早采用敏捷模式的项目组,项目组在项目推进过程中使用Scrum框架,结合"看板+站会"形式,积极探索项目推进新措施 ...
- TFS的Web门户工作项(七)
在TFS的web门户中有更丰富和更全面的设置和数据展示. Web门户如图有A,B,C,D四部分组成.A部分为团队项目和项目切换,登录人员和登录人员切换.B部分是Web门户主要功能的菜单,C部分是当前团 ...
最新文章
- 计算机视觉常用图像数据集标记平台
- SQL的不合理有效性
- 转存储过程实现分页1
- 【译】Googler如何解决编程问题
- 61.新的开始(最小生成树)
- MIT6.830 lab1 SimpleDb 实验报告
- 排序算法(三) —— 直接插入排序
- 人力资源管理系统如何助力提升HR工作效率
- 车票预订系统 搭建服务器,火车票网上订票系统的设计与实现.doc
- SOLIDWORKS Composer生成BOM表属性不显示的解决办法
- Shell常用命令cat用法详解
- 魔窗7式之微信一键唤起App内页
- outlook qr码在哪里_使用python自动发邮件-163、QQ、outlook邮箱
- poi获取excel打印标题行与表头,itext生成pdf设置打印标题行与表头
- 2020年中国数字经济区域发展竞争格局报告
- 51nod大鱼吃小鱼问题
- 负载均衡技术 (3)
- 51单片机手把手教学(二)—— 点亮 LED 灯(GPIO 操作)
- Phonetic symbol 单元音 - 短元音 ɒ(新)/ ɔ(旧) 与 ʊ/u (机打)
- Excel---条件格式与公式
热门文章
- python客户端与服务器端_Python实现的FTP通信客户端与服务器端功能示例
- android socket第三方库,OkSocket 一个Android轻量级Socket通讯框架
- 七乐彩中奖规则表_双色球第2020118期开奖结果出炉!你中奖了吗?
- mysql的读写分离技术_mysql 读写分离方法
- 登陆模板_曝北京国安克星将登陆中超,3年进84球,可成中超新政引援模板
- import pandas as pd什么意思_【医学名词】多发性骨髓瘤MR、SD、PD分别是什么意思?...
- 计算机原理考研题库,2022考研853计算机专业基础综合《计算机组成原理》复习笔记及考研真题题库.pdf...
- 网关转发其他微服务后头信息拿不到_微服务之基于Zuul自研服务网关
- linux中docker容器与宿主系统之间文件拷贝
- mysql临时表如何分页_sql server 与 mysql 分页查询以及创建临时表的区别