再回首,已十年

2021-02-09 Michael Zhou

新春将至,总是会不由自主地回顾过往、筹划未来。一年来,我们的团队克服各种困难,再创佳绩,在客户服务、研发等方面均有诸多收获。恰逢拙著《软件过程之美:软件配置管理策略及主流工具实战》出版10周年,感慨良多,今天就和各位分享一下我在软件配置管理方面的一些感悟。

时光回到2002年,那时候如日中天的Borland公司收购了Starbase公司,StarTeam成为了Borland公司产品家族的一员,笔者也是在那时候开始接触StarTeam,并将StarTeam引入到公司,以帮助公司通过CMM3级认证。那时候的商业配置管理工具市场群星璀璨,有Rational Clearcase(当时已被IBM收购)、Telelogic Synergy(后来也被IBM收购,当然IBM看中的更多是Telelogic公司的DOORS和Rhapsody这样的产品以及Telelogic公司的优质客户群)、国产的Firefly等,从事软件配置管理的人员也非常多,企业一般会专门设置软件配置管理岗位,社群也非常活跃,经常会有由公司或社群志愿者发起的研讨会,探讨软件配置管理领域的一些前沿课题,例如盛极一时的Clearcase UCM。那时候在一些外资企业,聚集了很多配置管理的专业人员,比如北电、爱立信、摩托罗拉,摩托罗拉更是一度达到了八九十人的规模,市场上也有很多关于配置管理方面的专著出版,还有专注于软件配置管理的论坛和网站,例如cmcrossroads,scmlife等,很多工具也打通了和软件配置管理工具的集成,例如Borland的开发工具序列(Delphi、JBuilder、C++Builder等)、微软的开发工具,一时盛况空前!
上面这两张图,一张来自于Rational,一张来自于Borland,背后的理念基本相同,强调的都是资产变更要与活动(任务、需求等)关联起来。Borland这张图我一直用到现在,我在向客户介绍Polarion如何支持软件配置管理时,就会经常引用这张图,10多年了,工具在变,内核不变!
通过各个渠道的大力宣传,软件配置管理的理念开始深入人心,版本、分支、组件、基线、活动这些概念为大家所理解。如果要开始一个软件开发项目,首先要搭建的就是软件配置管理环境,因此,软件配置管理工具已成为软件研发最为重要的基础设施,贯穿于软件产品研发的始终,基本上已经杜绝了代码丢失、版本覆盖这样很低级情况的发生,做得好的,分支也开始合理使用起来了,笔者就曾经在2008年帮助一家大型客户通过合理使用分支,实现了从项目型定制开发到基于产品研发模式的转型。

不过,这种情况似乎更多发生在软件开发领域。这里分享一个有意思的真实案例,为了避嫌,略去时间、地点等关键信息,笔者曾经见过一个规模达到2亿的大型咨询项目,仅仅是由几个初入职场的新人来通过FTP管理项目上产生的大量文档、源代码等交付物,其管理效率之低下令人感叹,而在当时,CVS、SVN这样开源免费的版本控制工具早就已经面世多年。这次经历,真的给笔者带来了巨大的精神冲击,其项目规模之大、管理手段之低下,形成了巨大的反差,时常让笔者反思为什么会出现这种“春风不度玉门关”的现象?有了这次经历,后来我从电信、金融再去转战汽车、医疗设备等制造行业时,对于所出现的变化就有了比较好的“铺垫”了~

2007、2008年前后,敏捷方法论逐渐登场,并渐次发展为主流,这主要归因于外部市场环境发生了剧烈的变化,传统的瀑布、长周期交付模式,逐渐被敏捷、端到端的短迭代模式所取代,由此也给软件配置管理带来了相应的变化,持续集成、持续交付成为软件配置管理领域新的热点,因此,IBM Rational收购了BuildForge、Borland收购了Gauntlet,在开源领域,Jenkins(前身为Hudson)则成为当红炸子鸡。大量的Devops工程师开始出现,Devops发展大热,攻城略地,不再局限于持续集成和持续交付领域,而是扩展到整个生命周期,以互联网行业尤甚。

这种变化同时也带来了一个副作用,那就是似乎我们“丢掉”了软件配置管理的核心,今天我们再去招聘网站,已经难以找到一个理论功底扎实的经典配置管理工程师了,大家摇身一变改名为Devops工程师了,但就狭义的Devops来说,必须要建立在稳健的配置管理基础之上。

时代在变化,我们越来越强调全生命周期、一体化的研发管理,越来越强调工程效率自动化,甚至连人工智能在软件工程领域的应用也初现端倪,但这些愈发凸显经典软件配置管理的核心基础作用,合理的版本规划、合理的分支结构、与流程更紧密更自动化的结合、更强大的自动化等等,才能帮助我们应对越来越复杂的产品研发场景:如何搭建合理的仓库结构,以支持从项目型开发到产品型的开发?如何实现基于组件的复用?如何实现基于平台的复用?如何实现软件BOM?如何管理产品从创建到维护退出市场这一可能长达10多年的生命周期?如何对接OTA?如何实现对Docker的版本控制?…

这些是摆在今天每一个追求卓越软件配置管理的工程师面前的课题,要实现良好的软件配置管理,对人员的能力要求非常之高,良好的规划能力,与软件架构师的对话能力以实现架构解耦以便实现更合理的分支,自动化工程实现能力,对标准(CMMI、ASPICE)等的理解能力,注定了软件配置管理工程师是一个复合能力要求极高的职位。

感到自豪的是,这么多年以来,通过Teamlive团队的持续努力,我们将这些理念灌注于Polarion平台,落地实现了一些软件配置管理的理念:我们实现了SVN、Git、Perforce、PlasticSCM等和Polarion的集成,以达到开发活动与开发资产的一致性管理;我们实现了内置的代码评审;我们研发了针对SVN的集中式权限管理产品AthenaSVN(http://marketplace.teamlive.com.cn/htmls/AthenaSVN/product_detail.html),以满足软件配置管理理论中对于控制的要求(标识、控制、审计、报告是配置管理的核心四要素);我们研发了Polarion与Jenkins的连接器,以实现持续集成(http://marketplace.teamlive.com.cn/htmls/JenKins/product_detail.html);我们研发了QA Hub,以便以开箱即用的方式来打通各种编译、代码静态分析与自动化测试工具链(http://www.teamlive.com.cn/company/events/20200428-polarion-webinar.html)...

 

图:通过AthenaSVN实现对SVN仓库的集中式、流程化权限控制

 

前路漫漫,但我相信,只要我们多多思考、多深入一线、多参与社群,就会实现软件配置管理领域的更辉煌明天,由此与有志于从事软件配置管理工作的诸君共勉。

顺便打一个广告:Teamlive正在广纳贤才,ALM咨询顾问,当然也包括软件配置管理的专业人士。
祝新春佳节万事如意,牛气冲天!

微信扫一扫
关注该公众号