#VSTS定制#全新的模版定制能力
在应用生命周期管理(ALM)领域中,存在各种不同的管理模型,如:传统的瀑布(waterfall)模型,CMMI模型以及最近一些年开始流行的敏捷模型,Scrum模型,kanban等等。每个不同的管理模型都有一些固定的流程,角色,活动和内容模版等内容,在ALM工具中,一般会使用不同的“过程模版”来提供给团队使用,在团队创建项目的时候可以选择某个特定的模版来支持自己的应用开发过程。但实际情况是,每个团队的真实操作场景都不一样,大家都有不同的说法,不同的工作流和不同的工作习惯,比如:我曾经和一个大型开发团队聊了一个小时它们的“项目”流程,最后发现他们所说的“项目”实际是一个个的条目化需求。这种情况下,团队往往会要求在自己的模版中进行修改,以便大家可以按照自己的习惯来进行操作。也许你觉得:让他们改变一下习惯,把原来叫做“项目”的东西改叫“需求”不就完了,其实事情真的没有那么简单,让一个人改变习惯尚且需要时日,让100个人改变习惯那就是个大工程了(甚至可以上升到“组织变革”的层面了)。而且,工具永远应该是人的辅助,所以多数情况下我们需要工具来适应人,而不能被工具绑架。
在TFS/VSTS中,默认提供了3种不同的过程模版,分别是:CMMI,敏捷和Scrum。
很多团队在开始的时候都很迷惑,我到底该选择哪个模版,我现在想做敏捷,但是公司的规范是cmmi;我们有一点Scrum,但不是很规范;到底咋办?我的回答是:模版只是一个起点,一开始的时候先按模版推荐的流程操作,熟练以后慢慢引入自己的实践,这个时候你就需要对这些模版进行定制。
不过说实话,在TFS 2013及以前的版本中的模版定制真心不是件容易的事情,且不说你需要懂得这些模型的各种细节,就是搞定那些复杂的xml和工作流就够你受的。所以,模版定制改进一直是微软TFS的UserVoice上呼声最高的几个feature之一,我们等待了快10年了,现在终于来了。
添加字段
添加字段一直都是我所有客户中最需要的,基本上每个开始使用tfs的用户都会问:我要在这个需求工作项的页面上添加一个“预期完成时间”该怎么办,我之前的回答是这样的:
1. 用Visual Studio下载当前项目的过程模版
2. 安装TFS Power Tools
3. 用TFS Power Tools打开下载的模版
4. 找到你的需求工作项类型,在里面添加字段;哦,别忘了还要添加到页面的布局里面,这个xml应该这么写…
5. 上传到项目中
基本上我还没说完,人家就睡着了 zzz
好吧,看看现在怎么做
- 随便打开一个你要添加字段的工作项,点击右上角的…,选择“定制”

- 在后台的“过程定制”中点击“新字段”,并填写字段名称和类型

- 切换到“布局”,选择显示的位置

- 回到原来的工作项页面,刷新页面,搞定

是不是很简单,以后你不用找我这个顾问了,自己搞定吧!(看来我要失业了)
模版的继承关系
看了上面的演示你会觉得很简单,对吧。要实现这个看似简单的功能,tfs后台的改动可不小。首先一个问题,如果我添加了字段,但是希望新创建的项目也可以使用这个字段怎么做,如果我希望在一个项目中的修改可以让其他部分项目使用,另外一部分项目不使用怎么办?
在 TFS 2013及之前版本中,项目模版是存储在项目级数据中的,所以对于一个项目的定制不会影响其他项目的模版,这样带来的好处是不同的项目可以使用不同的流程。不过有些企业希望统一所有的项目流程,在这种架构下就比较麻烦了,你必须一个个项目的更新模版。
新的模版定制功能中考虑到了这个问题,增加了模版继承机制。你可以从内置的Agile/CMMI/Scrum模版中选择一个创建子模版:
– 父模版的改动会自动影响子模版的项目,
– 子模版的改动不会影响父模版,
– 支持父子模版的切换,你可以把使用子模版的项目再切换回父模版;如果之前有些字段中有数据的话,这些数据仍然可以在工作项的历史纪录中找到
下图是后台的“模版定制”界面,你可以看到模版间的继承关系以及每个模版的版本和影响的项目数量。
选择模版后,我们可以将已有的项目迁移到有继承关系的子模版上
也可以对每个模版设置不同的权限,允许部分用户使用特定的模版,或者干脆停用
其他模版定制能力
当然,在工作项中添加字段只是最简单的场景,我们还需要修改字段的内容,比如:添加下拉菜单;修改工作流程,创建全新的工作项类型等等。这些内容在后续的TFS/VSTS更新中会以2-3周的迭代速度按照以下优先级提供
1. 添加字段修改布局(已经发布)
2. 添加下拉菜单和identity字段
3. 修改工作流
4. 添加新的工作项类型
5. 在字段上添加验证规则
6. 导入/导出定制过程模版
这些功能会首先提供给在线版vsts,按照企业版tfs每3个月一次更新速度,如果你自己部署了tfs,也可以更新到你的环境中。
参考:
ALM 博客:Adding a custom field to a work item
http://blogs.msdn.com/b/visualstudioalm/archive/2015/12/10/adding-a-custom-field-to-a-work-item.aspx
ALM博客:Visual Studio Online Process Customization – Update
http://blogs.msdn.com/b/visualstudioalm/archive/2015/07/27/visual-studio-online-process-customization-update.aspx
VSTS在线版
https://www.visualstudio.com
企业版Team Foundation Server下载
https://www.visualstudio.com/products/tfs-overview-vs
请关注微信公众号 devopshub,获取更多关于DevOps研发运维一体化的信息

#VSTS定制#全新的模版定制能力的更多相关文章
- Windows 7 封装篇(一)【母盘定制】[手动制作]定制合适的系统母盘
Windows 7 封装篇(一)[母盘定制][手动制作]定制合适的系统母盘 http://www.win10u.com/article/html/10.html Windows 7 封装篇(一)[母盘 ...
- 鹿定制|Lu Couture|鹿定制·高级西装礼服私享定制品牌|芙蓉中路明城国际1425
鹿定制|Lu Couture|鹿定制·高级西装礼服私享定制品牌|芙蓉中路明城国际1425 联系我们
- 思科WLC5508上传定制Portal展示模版
1. 登录Cisco设备,获取模板样例登录cisco WLC设备后点击help,打开帮助文档Wireless Tab-->Web Login Page-->External Web Aut ...
- 提供VR定制开发、AR定制开发(VR游戏定制、应用定制)
设置输出路径 添加烘培输出的贴图类型 添加“LightingMap”类型 设置烘培贴图大小和目标贴图位置为“自发光” 设置烘培材质,选择“输出到源” 点击“渲染”即可 24.标准材质贴图的烘培光影处理 ...
- VR定制开发、AR定制开发(长年承接虚拟现实、增强现实应用、VR游戏定制开发,北京公司,可签合同)
Cardboard SDK for Unity的使用 上一篇文章作为系列的开篇,主要是讲了一些虚拟现实的技术和原理,本篇就会带领大家去看一看谷歌的Cardboard SDK for Unity,虽然目 ...
- ArcGIS api for javascript——地图配置-定制缩放动画,定制缩放框
描述 本例展示了当用户放大或缩小地图时如何定义地图的动画.zoomDuration和zoomRate是Dojo动画属性,他们确定了动画的duration和帧刷新的rate .这些属性单位是毫秒,zoo ...
- CodeSnippet.info 开源说明 和 环境搭建 (第一版)
Github开源声明 本网站的代码开源,开源的目的如下 技术分享 希望业内同行贡献代码 希望能够让网站更加安全 开源地址: CodeSnippet开源地址 关于代码贡献 任何人都可以贡献代码,一般在 ...
- Docker Dockerfile 定制镜像
使用 Dockerfile 定制镜像 镜像的定制实际上就是定制每一层所添加的配置.文件.如果我们可以把每一层修改.安装.构建.操作的命令都写入一个脚本,用这个脚本来构建.定制镜像,那么无法重复的问题 ...
- 不可或缺的企业OA面临问题,以及解决建议 软件定制开发 森普演示平台
---恢复内容开始--- 随着信息时代的来临,企业管理也相应的信息化,各种管理软件相继而出,各行各业的信息化有过成功,也有过失败(注:是以该项目是否达到用户的预期目标而言).据统计在信息化失败的案例中 ...
随机推荐
- Google Go Programming In Eclipse
http://www.tutorialsavvy.com/2013/04/google-go-programming-in-eclipse.html/ Google Go Programming In ...
- JPHP最新进展 v0.6
项目地址:https://github.com/jphp-compiler/jphp 旧文:http://www.cnblogs.com/x3d/p/3631386.html 旧文2:http://w ...
- 2016 年青岛网络赛---Tea
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=5881 Problem Description Tea is good. Tea is life. Te ...
- mysql安装中出现的问题,
花了一天的时间明天mysql的安装方法: 自己的错误: 主要原因: (1):bin文件坏境配置出现了问题,没有重新在系统中配置文件 解决方法:右击电脑——属性——高级系统设置——变量配置——在path ...
- Lock的实现之ReentrantLock详解
摘要 Lock在硬件层面依赖CPU指令,完全由Java代码完成,底层利用LockSupport类和Unsafe类进行操作: 虽然锁有很多实现,但是都依赖AbstractQueuedSynchroniz ...
- CI框架源码阅读笔记6 扩展钩子 Hook.php
CI框架允许你在不修改系统核心代码的基础上添加或者更改系统的核心功能(如重写缓存.输出等).例如,在系统开启hook的条件下(config.php中$config['enable_hooks'] = ...
- CI框架源码阅读笔记1 - 环境准备、基本术语和框架流程
最开始使用CI框架的时候,就打算写一个CI源码阅读的笔记系列,可惜虎头蛇尾,一直没有行动.最近项目少,总算是有了一些时间去写一些东西.于是准备将之前的一些笔记和经验记录下来,一方面权作备忘,另一方面时 ...
- JVM调优总结:调优方法
JVM调优总结:调优方法 2012-01-10 14:35 和你在一起 和你在一起的博客 字号:T | T 下面文章将讲解JVM的调优工具以及如何去调优等等问题,还有一些异常问题的处理.详细请看下文. ...
- Atitit.事件机制 与 消息机制的联系与区别
Atitit.事件机制 与 消息机制的联系与区别 1. 消息/事件机制是几乎所有开发语言都有的机制,在某些语言称之为消息(Event),有些地方称之为(Message).1 2. 发布/订阅模式1 3 ...
- 初识orcl
一.介绍基本数据库的端口号. SQLServer 端口号:1433 MySql 端口号:3306 Oracle ...