【CSDN】超图研究院院长李绍俊:创新2.0时代的平台软件研发体系

  超图每年投入研发的费用约为8000万,2014年的营业收入约3.61亿元,研发投入约占4成比例。近期,CTO俱乐部走进超图,近距离探访超图的“创新2.0时代的平台软件研发体系”,并采访了超图研究院院长李绍俊,请他就超图研究院的一些软件创新机制、质量保障体系建设等做出分享。

  李绍俊,北京师范大学资源与环境科学系学士学位;中科院地理所博士学位。2000年,加入超图软件,现任超图研究院院长。2014年12月,在由CSDN举办的“2014技术商业500人论坛”上,李绍俊入选“2014 TOP50最具价值CTO”。


超图研究院院长 李绍俊

创新机制:决策评审

  李绍俊介绍说目前超图研究所加上研发中心近200人的规模,在全球做GIS平台软件研发这方面可排到前三甲。

  超图软件创新机制中比较重要的一个机制就是决策评审。决策评审是创新的方向或流向的问题。“超图早期研发中心的创新的机制是从上往下安排为主,公司的领导在技术上包括前沿把握方面相对更为集中一些,创新点都是先上层提出来,后面安排研发中心实现。而发展到后期,在创新机制方向上有一定的调整,相对来说既有自顶向下的创新模式,也有自下向上的一个模式。而现在基本是以自下向上的创新模式为主。” 李绍俊介绍说。

  员工会在创新方面提出申请,因为团队规模较大,很多创新点是来自于一线的员工。提出创新点后,在研发机制里设有一个组织PPAC,可以做员工提出来的创新点的评审工作。在立项评审之后后面还会对它商业计划评审。创新点提出来,一方面是技术上的创新,更关键的是能不能带来客户价值?能不能带来市场回报?这个商业计划决策评审要对它的投入产出比做一个分析。所以这是在软件创新里面第二个非常重要的里程碑。第三个里程碑是发布评审。

  怎样判断创新?是否可行?是否可以进入研发阶段?是以客户价值判断为最重要的准则。包括商业计划评审,包括发布评审,通过决策委员会,发现偏离的时候及时纠正,来调整研发的方向。“现在超图产品的研发已经不仅仅是研究院或者是研发中心这部分的工作,它跨到整个超图将近1000人的公司中,研发阶段中包括一些合作伙伴、二次开发商也都会参与进来,突破了传统上小作坊式的研发方式。” 李绍俊总结说。

  随着软件的发展,软件的开发模式也经历了一些发展阶段的变化,由早期的瀑布开发模式演进到敏捷开发模式。现在超图的软件开发全部采用敏捷开发模式开发,两周一迭代。

生死线问题:质量保障

  伴随着企业的发展,很多公司都会出现产品线越来越长、产品的规模也越来越大的情况,而研发体系的质量保障是非常敏感甚至是一个生死线的问题。超图的产品质量怎样保障?李绍俊介绍说在超图有一套体系——“自动测试+持续集成=品质持续提高”的软件研发体系。据了解,现在超图的软件规模已经非常大了,平台软件总的有效代码数已经突破500万行,代码总量已经相当于半个Linux的代码量了。这么大体量的代码,它的研发管理包括质量控制,对于软件研发体系来讲都是比较大的难题,这就需要一个软件研发体系的支撑。

  以前软件测试往往聚焦在软件测试方法上,包括单元测试之类的,实际上任何事当规模大到一定程度,本身也会由量推演到质变。“超图早期时,研发有个非常明确的岗位叫软件测试工程师。而现在超图研发中心里已经没有这个岗位了。以前软件测试工程师就是做软件测试,大量的工作是拿鼠标点、拿键盘敲,测试软件的响应,也就是结果是否正确。而现在,测试工程师的职责发生了非常大的转变,现在测试工程师已经不像以前那样工作了,是编写测试程序。现在软件测试工程师已不再是以前那个意义上的软件测试工程师了,他本身也是一名软件开发工程师,只不过他做的开发是测试用例开发也就是测试程序的开发。” 李绍俊解释说500多万行代码靠人工点不过来,覆盖不过来,肯定有漏掉的一些领域。现在软件测试已经不再单纯依靠人工的测试,而要依靠自动化的测试。



  在超图的自动化测试体系中,自动化测试程序要求有几类的覆盖:功能点覆盖、需求点覆盖、缺陷覆盖(所有缺陷都要有测试用例的覆盖。确保以前出现过的缺陷新的版本不要再出现)。通过这样的体系超图现在已经累计近2万多个测试程序。每一个测试程序里面少的会有十几个,多个会有几百个测试的功能点。

  软件规模做大了之后,还有一个让人头痛的就是软件编译,针对这个问题,超图现在在研发中心采用网格计算的技术来加快编译的流程。另外一点在软件研发中大量采用了服务端自动化的计算能力。

  除此之外,软件研发里面还有非常重要的机制就是代码审查。比如新员工进来以后新员工写的代码可能有时候各方面考虑不是那么全面。所以超图研发中心原来有一个机制,员工提交的代码一定要经过他的代码指导员审核,包括团队里面技术负责人的审核,代码才能提交到库里面去。也就是说至少要有两个审核点才能集成到这个库里面去。虽然流程描述起来简单,真正做起来的时候其实很痛苦。李绍俊介绍说,后来超图结合第三方软件,打造出了一个代码审查的体系,相当于通过信息化来提升这块的工作效率。不仅仅可以做代码审查,也可以看到研发团队工作量,都是一目了然。

  “我们现在已经形成了一个研发体系,通过一些信息化的手段来提升软件研发的工作效率,实现创新2.0时代的软件研发。“李绍俊总结说。

 

通过这样一些体系,超图在GIS领域也做出了比较大的创新点:

2004年:跨操作系统GIS(高性能支持Linux);
2009年:软件产品二、三维一体化创新;
2011年:全功能移动GIS;
2013年:云GIS软件技术;
2014年:对倾斜摄影三维的支持。