今天看了一下Brian Harry大叔的博客,才发现2016年3月17日,是Team Foundation Server的10岁生日。
Today marks the 10th anniversary of the day we shipped the first version of TFS – TFS 2005. It doesn’t seem that long ago but we sure have come a long way. The other day I recorded a Radio TFS interview with Martin Woodward and Greg Duncan. Check it out if you are interested. I have to admit I haven’t listened to it. I never listen to my own interviews – it just feels creepy I sure had a lot of fun doing it though.
https://blogs.msdn.microsoft.com/bharry/2016/03/17/10th-anniversary-of-team-foundation-server/
会算数的小伙伴可能会奇怪,TFS第一个版本明明是2005,那么今年应该是11岁了。其实这里面有个故事。TFS 的开发工作开始于2002年,那时候布莱恩大叔本来准备离开微软,回到北卡的家里加入其他的创业公司,因为他其实一直都不太喜欢大公司的氛围。这位布莱恩大叔本来其实是一名农民,到现在为止,他在北卡还经营着自己的牧场,养着牛,养着马,不管TFS的时候开着拖拉机在牧场上赶牛。如果要说TFS,还是要从微软那个坑爹的Visual Source Safe(VSS)说起。
布莱恩大叔大学毕业的时候(当然那时候还不是大叔了),曾经加入过2家创业公司,第二家公司的产品后来被微软收购,就是这个Visual Source Safe(VSS)。进入微软后,布莱恩主要负责.NET CLR的开发工作,这个事情一直持续到CLR 1.1的开发完成。这段时候每当有人问其他,他都会跟大家说他在微软只会呆3年的时间。直到2002年,他终于决定离开微软回到北卡和他的家人在一起。但是,这时微软决定开始开发TFS,并且允许布莱恩在北卡设立自己的研发团队,于是Brian大叔就如愿以偿的回答家乡并在他的客厅里开始TFS的开发。这事儿一下子就干了3年,他的团队也从开始的2个人慢慢扩展到将近30人。TFS的第一个版本本来计划在2005年11月发布,所以被命名为TFS 2005,但是直到2006年1月份仍然没有一个稳定版本可以发布,为这事儿布莱恩也被他的老板狠狠的批了一顿,但是老板也告诉他:大家不会记住一个迟到的产品,但是会记住一个满是bug产品。最后,TFS 终于在2006年3月17日正式发布。
说够了野史,我们来说说正史,布莱恩大叔全名Brian Harry是微软院士,也是微软ALM产品线的总经理。微软院士是微软内部技术等级的最高级别。
TFS 2005
TFS2005基本上已经具备了管理软件研发的主要功能,工作项,源代码和构建功能都已经完备,使用上虽然不如现在方便,但是并没有特别严重的问题。唯一严重的问题就是安装,基本上那个时候装个TFS需要2-3天的时间,并不是这个玩意儿有多大,而是里面的坑太多,因为TFS依赖与IIS和SSRS服务,如果这些服务的配置中有一点不对,安装都无法成功,这些前置条件又没有详细的文档,当时坑了很多人。
这是当时的Team Explorer界面,据布莱恩大叔说,这个Team Explorer的代码基本上都是他自己写的。
小编也是从那个时候开始用TFS 2005的。05年刚好回国设立研发中心,VSS服务器在澳洲总部,签入一个文件需要10分钟的时间,非常折磨人。因为TFS的源代码管理是基于HTTP的,这样问题就解决了,效率大幅提升。所以在05年底到06中的一段时间,我的主要工作就是将公司的产品代码从VSS迁移至TFS。
TFS 2008
这个版本中主要改进了一些易用性问题,速度上有所提升,但并没有特备重要的功能性提升,安装配置还是那么坑爹。
不过这个版本对于小编来说很重要,因为使用这个版本我设计并运作了第一次TFS培训:VSTSRealWorld,当时汶川大地震刚刚发生,我们组织了来自20家不同公司的开发人员一起在TFS上开发了一个孤儿领养应用。这也是我第一次采用演讲+动手实验+真实应用的方式进行培训,这种方式一直延续到现在。
TFS 2010
这个版本在TFS的发展上是个里程碑,里面对于安装配置和用户使用体验都进行了大幅改进。第一次引入了管理控制台程序,帮助管理员完成安装和配置工作,装TFS终于不再是个问题了。
也是在这个时候,TFS开始在微软内部大幅度的推广使用。从2005版本开始,布莱恩大叔就要求自己的团队使用自己的TFS来管理TFS的开发工作,他管这个叫做吃狗粮(dogfooding)。到2010版发布,微软内部的TFS用户已经从最初布莱恩团队的30来个人,扩展到整个开发工具事业部(DevDiv)的将近3000人规模,这个过程中,TFS经历了多次大手术,特别是TFVC源代码控制的核心代码,很多都是被完全重写的。这也造成了2010版本在数据库结构上的大幅修改,开始出现了项目集合数据库的概念(Project Collection Database)。
在2010上的另外一个重大改动是,增加了浏览器访问的能力。当然,这个TFSWA与现在大家看到的区别仍然很大,这是当时微软所收购的一个叫TeamPrise的产品,直接集成进去了。
TFS 2012
在TFS的发展史上,这是一个里程碑式的版本。从2012版本开始,TFS中开始出现了非常明显的敏捷开发流程,同时版本的发布节奏也从2年缩短到3个月。
这其实就是2010那个TFSWA的改进版,不仅仅漂亮了很多,而且里面出现了如backlog,sprint,burndown等很多敏捷开发,或者说Scrum中的概念。这其实也标志着微软内部的敏捷转型已经取得了很大的进展。
从2012版本开始,TFS的发布周期从2年改为3个月,所以也就出现了Update 1, Update 2, Update 3和Update 4这样4个小版本。小编我也是在这一年,从原先的Windows Networking方向MVP,转而投奔Visual Studio ALM方向。这都是因为那一年遇到了布莱恩大叔,并被满屋子的ALM MVP的开放讨论氛围所吸引。
基本上,国内的TFS业务也在这一年开始爆发,这一年中我就给华为,深圳招商国际信息,京东商城,南京国电南自,上海百威英博等公司实施了TFS项目;也开始接触更多的客户。
以下这两篇博客就是在那个时候写下的:
http://devopshub.cn/2013/07/21/tfs-is-huge-in-china-part1/
http://devopshub.cn/2013/07/21/tfs-is-huge-in-china-part2/
TFS 2013
这个版本的TFS已经相当成熟,用户体验进一步提升,同时对非微软开发平台的支持开始逐步加强,比如:对Java Eclipse,IDEA,XCode的支持。
另外一个重大的实践就是 Visual Studio Online的发布 http://www.visualstudio.com ,现在这个服务叫做Visual Studio Team Service,是微软托管在Azure云裳的在线TFS版本。不仅仅如此,这个在线版本采用更短的发布周期,每3周就会发布新功能。
同时,TFS开始向DevOps的方向拓展,通过收购IN RELEASE提供发布管道支持,这就是现在大家看到的Release Management的前身。
TFS 2015
终于回到500年后了,这就是现在大家看到的版本了,这个版本对于敏捷开发的支持进一步加强,可以看到TFS中的电子看板,支持灵活的栏目定制和泳道。
另外3个值得注意的改进是
– 基于node.js的跨平台持续集成引擎,可以支持在Linux, Mac上的自动化
– 浏览器中的Release Management
– 全新的插件市场,可以对TFS中的任意功能进行灵活的定制
具体的功能说明可以查看以下链接:
http://devopshub.cn/tag/vsts-log/
陪伴了TFS走过了10年,能够看到一个产品的整个发展历程是一件很让人兴奋的事情。
TFS 10周年生日快乐!