今天看了一下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周年生日快乐!

TFS 10周年生日快乐 – TFS与布莱恩大叔的故事的更多相关文章

  1. Windows 10 周年更新正式版下载 + win10 快捷键

    Windows 10 周年更新正式版  360云资源总汇(施工中): https://yunpan.cn/c6Svi7Az52XBs (提取码:e5dd)今后提到周年更新版.1607版或RS1版,都是 ...

  2. In-Place upgrade to Team Foundation Server (TFS) 2015 from TFS 2013Team Foundation Server TFS TFS 2015 TFS upgrade TFS with Sharepoint

    This upgrade document gives detailed step by step procedure for the In-Place upgrade from TFS 2013 t ...

  3. Jetty 9.3庆祝20周年生日快乐,并添加HTTP/2支持

    本文来源于我在InfoQ中文站翻译的文章,原文地址是:http://www.infoq.com/cn/news/2015/06/Building-Distributed-Systems 今年6月12日 ...

  4. VS访问不到TFS、VS连接TFS报TF30063

    =============================================== 20170704_第一次修改                       ccb_warlock === ...

  5. 【TFS】TFS2015链接TFS出现TF31002/TF400324问题解决方案

    安装VS2015后链接TFS发现出现TF31002错误,然后用浏览器打开TFS URL能正常访问,在TFS online中点击用vs打开按钮,提示TF400324错误 1. VS2015中打开: 2. ...

  6. Git 10 周年之际,创始人 Linus Torvalds 访谈

    点这里 十年前的这一周,linux 内核社区面临一个根本性的挑战:他们不再能够使用他们的修复控制系统:BitKeeper,同时其他的软件配置管理遇到了对分布式系统的新需求.Linus Torvalds ...

  7. .NET十五周年生日快乐 (3月7日发布Visual Studio 2017正式版?)

    今天 是.NET 对世界首次亮相15 周年.2002 年 2 月 13 日,第一版本的.NET 发布作为 Visual Studio.NET 的一部分.它仿佛就在昨天为微软建设成"下一代 W ...

  8. 【Hadoop 10周年】我与Hadoop不得不说的故事

    什么是Hadoop        今年是2016年,是hadoop十岁的生日,穿越时间和空间,跟她说一声生日快乐,二千零八年一月二十八号,是一个特别的日子,hadoop带着第一声啼哭,来到了这个世界, ...

  9. TcaplusDB 10周年 风雨兼程破浪行 自研存储见成长

    从找不到需求险些被叫停,到支撑亿级DAU的数据库行业标杆,腾讯云数据库TcaplusDB在风雨中走过了整整10年.辉映日月破风浪,十年一剑破九天.百万行代码就像淙淙流淌的数据溪流,终于在十年后汇成不可 ...

随机推荐

  1. 【记录】WCF IIS 404

    WCF IIS 发布报"404错误": 修改 Web.config 如下: <system.webServer> <handlers> <remove ...

  2. 利用免费的Spire.XLS控件制作Excel报表

    我们小组上个季度接手了一个项目其中需要实现创建excel文档的功能,寻找实现这个功能的控件的任务分配给了我,通过百度搜索我找到了一个免费的控件,它是由E-iceblue公司推出的spire.xls控件 ...

  3. 总结JavaScript事件机制

    JavaScript事件模型 在各种浏览器中存在三种事件模型: 原始事件模型 , DOM2事件模型 , IE事件模型. 其中原始的事件模型被所有浏览器所支持,而DOM2中所定义的事件模型目前被除了IE ...

  4. reflow和repaint(摘录自张鑫旭的翻译)

    //正文开始 关于回流(reflows)与重绘(repaints),我已经在twitter和delicious上发布,但是并没有在演讲中提到或是以文章形式发布. 第一次让我开始思考关于回流(reflo ...

  5. hibernate笔记--缓存机制之 二级缓存(sessionFactory)和查询缓存

    二级缓存(sessionFactory): Hibernate的二级缓存由SessionFactory对象管理,是应用级别的缓存.它可以缓存整个应用的持久化对象,所以又称为“SessionFactor ...

  6. Java中的反射机制

    Java反射机制 反射机制定义 反射机制是Java语言中一个非常重要的特性,它允许程序在运行时进行自我检查,同时也允许其对内部成员进行操作.由于反射机制能够实现在运行时对类进行装载,因此能够增加程序的 ...

  7. 【手记】F5调试报"由于缺少调试目标xxx无法开始调试xxx设置OutputPath和AssemblyName"

    问题如图: 如果先点[生成]项目,再按F5调试就不会报错,但稍后修改代码后再次调试,会发现VS启动的是代码修改前的程序,也就是说,深一层的问题其实是调试时不会先生成,而是直接打开debug/relea ...

  8. html5 前端图片处理(预览、压缩、缩放)

    现在手机图片是越来越大了,上传图片流量耗费巨大.同时预览也是一个问题,所以利用HTML5 file和canvas来解决这个问题. var upload = { _o: null,//对象id _aut ...

  9. 适配器模式 - Adapter

    Adapter Pattern, 适用场景: 接口匹配兼容: 客户代码统一调用同一接口: 在.NET中,DataAdapter用作DataSet和数据源之间的适配器以保存和检索数据. 参考:

  10. 异构SOA系统架构之Asp.net实现(兼容dubbo)

    我们公司技术部门情况比较复杂,分到多个集团,每个集团又可能分为几个部门,每个部门又可能分为多个小组,组织架构比较复杂,开发人员比较多. 使用的编程语言也有点复杂,主流语言有.net(C#).Java. ...