【CSDN】超圖研究院院長李紹俊:創新2.0時(shí)代的(de)平台軟件研發體系

  超圖每年投入研發的(de)費用約爲(wéi / wèi)8000萬,2014年的(de)營業收入約3.61億元,研發投入約占4成比例。近期,CTO俱樂部走進超圖,近距離探訪超圖的(de)“創新2.0時(shí)代的(de)平台軟件研發體系”,并采訪了(le/liǎo)超圖研究院院長李紹俊,請他(tā)就(jiù)超圖研究院的(de)一(yī / yì /yí)些軟件創新機制、質量保障體系建設等做出(chū)分享。

  李紹俊,北京師範大(dà)學資源與環境科學系學士學位;中科院地(dì / de)理所博士學位。2000年,加入超圖軟件,現任超圖研究院院長。2014年12月,在(zài)由CSDN舉辦的(de)“2014技術商業500人(rén)論壇”上(shàng),李紹俊入選“2014 TOP50最具價值CTO”。


超圖研究院院長 李紹俊

創新機制:決策評審

  李紹俊介紹說(shuō)目前超圖研究所加上(shàng)研發中心近200人(rén)的(de)規模,在(zài)全球做GIS平台軟件研發這(zhè)方面可排到(dào)前三甲。

  超圖軟件創新機制中比較重要(yào / yāo)的(de)一(yī / yì /yí)個(gè)機制就(jiù)是(shì)決策評審。決策評審是(shì)創新的(de)方向或流向的(de)問題。“超圖早期研發中心的(de)創新的(de)機制是(shì)從上(shàng)往下安排爲(wéi / wèi)主,公司的(de)領導在(zài)技術上(shàng)包括前沿把握方面相對更爲(wéi / wèi)集中一(yī / yì /yí)些,創新點都是(shì)先上(shàng)層提出(chū)來(lái),後面安排研發中心實現。而(ér)發展到(dào)後期,在(zài)創新機制方向上(shàng)有一(yī / yì /yí)定的(de)調整,相對來(lái)說(shuō)既有自頂向下的(de)創新模式,也(yě)有自下向上(shàng)的(de)一(yī / yì /yí)個(gè)模式。而(ér)現在(zài)基本是(shì)以(yǐ)自下向上(shàng)的(de)創新模式爲(wéi / wèi)主。” 李紹俊介紹說(shuō)。

  員工會在(zài)創新方面提出(chū)申請,因爲(wéi / wèi)團隊規模較大(dà),很多創新點是(shì)來(lái)自于(yú)一(yī / yì /yí)線的(de)員工。提出(chū)創新點後,在(zài)研發機制裏設有一(yī / yì /yí)個(gè)組織PPAC,可以(yǐ)做員工提出(chū)來(lái)的(de)創新點的(de)評審工作。在(zài)立項評審之(zhī)後後面還會對它商業計劃評審。創新點提出(chū)來(lái),一(yī / yì /yí)方面是(shì)技術上(shàng)的(de)創新,更關鍵的(de)是(shì)能不(bù)能帶來(lái)客戶價值?能不(bù)能帶來(lái)市場回報?這(zhè)個(gè)商業計劃決策評審要(yào / yāo)對它的(de)投入産出(chū)比做一(yī / yì /yí)個(gè)分析。所以(yǐ)這(zhè)是(shì)在(zài)軟件創新裏面第二個(gè)非常重要(yào / yāo)的(de)裏程碑。第三個(gè)裏程碑是(shì)發布評審。

  怎樣判斷創新?是(shì)否可行?是(shì)否可以(yǐ)進入研發階段?是(shì)以(yǐ)客戶價值判斷爲(wéi / wèi)最重要(yào / yāo)的(de)準則。包括商業計劃評審,包括發布評審,通過決策委員會,發現偏離的(de)時(shí)候及時(shí)糾正,來(lái)調整研發的(de)方向。“現在(zài)超圖産品的(de)研發已經不(bù)僅僅是(shì)研究院或者是(shì)研發中心這(zhè)部分的(de)工作,它跨到(dào)整個(gè)超圖将近1000人(rén)的(de)公司中,研發階段中包括一(yī / yì /yí)些合作夥伴、二次開發商也(yě)都會參與進來(lái),突破了(le/liǎo)傳統上(shàng)小作坊式的(de)研發方式。” 李紹俊總結說(shuō)。

  随着軟件的(de)發展,軟件的(de)開發模式也(yě)經曆了(le/liǎo)一(yī / yì /yí)些發展階段的(de)變化,由早期的(de)瀑布開發模式演進到(dào)敏捷開發模式。現在(zài)超圖的(de)軟件開發全部采用敏捷開發模式開發,兩周一(yī / yì /yí)叠代。

生死線問題:質量保障

  伴随着企業的(de)發展,很多公司都會出(chū)現産品線越來(lái)越長、産品的(de)規模也(yě)越來(lái)越大(dà)的(de)情況,而(ér)研發體系的(de)質量保障是(shì)非常敏感甚至是(shì)一(yī / yì /yí)個(gè)生死線的(de)問題。超圖的(de)産品質量怎樣保障?李紹俊介紹說(shuō)在(zài)超圖有一(yī / yì /yí)套體系——“自動測試+持續集成=品質持續提高”的(de)軟件研發體系。據了(le/liǎo)解,現在(zài)超圖的(de)軟件規模已經非常大(dà)了(le/liǎo),平台軟件總的(de)有效代碼數已經突破500萬行,代碼總量已經相當于(yú)半個(gè)Linux的(de)代碼量了(le/liǎo)。這(zhè)麽大(dà)體量的(de)代碼,它的(de)研發管理包括質量控制,對于(yú)軟件研發體系來(lái)講都是(shì)比較大(dà)的(de)難題,這(zhè)就(jiù)需要(yào / yāo)一(yī / yì /yí)個(gè)軟件研發體系的(de)支撐。

  以(yǐ)前軟件測試往往聚焦在(zài)軟件測試方法上(shàng),包括單元測試之(zhī)類的(de),實際上(shàng)任何事當規模大(dà)到(dào)一(yī / yì /yí)定程度,本身也(yě)會由量推演到(dào)質變。“超圖早期時(shí),研發有個(gè)非常明确的(de)崗位叫軟件測試工程師。而(ér)現在(zài)超圖研發中心裏已經沒有這(zhè)個(gè)崗位了(le/liǎo)。以(yǐ)前軟件測試工程師就(jiù)是(shì)做軟件測試,大(dà)量的(de)工作是(shì)拿鼠标點、拿鍵盤敲,測試軟件的(de)響應,也(yě)就(jiù)是(shì)結果是(shì)否正确。而(ér)現在(zài),測試工程師的(de)職責發生了(le/liǎo)非常大(dà)的(de)轉變,現在(zài)測試工程師已經不(bù)像以(yǐ)前那樣工作了(le/liǎo),是(shì)編寫測試程序。現在(zài)軟件測試工程師已不(bù)再是(shì)以(yǐ)前那個(gè)意義上(shàng)的(de)軟件測試工程師了(le/liǎo),他(tā)本身也(yě)是(shì)一(yī / yì /yí)名軟件開發工程師,隻不(bù)過他(tā)做的(de)開發是(shì)測試用例開發也(yě)就(jiù)是(shì)測試程序的(de)開發。” 李紹俊解釋說(shuō)500多萬行代碼靠人(rén)工點不(bù)過來(lái),覆蓋不(bù)過來(lái),肯定有漏掉的(de)一(yī / yì /yí)些領域。現在(zài)軟件測試已經不(bù)再單純依靠人(rén)工的(de)測試,而(ér)要(yào / yāo)依靠自動化的(de)測試。



  在(zài)超圖的(de)自動化測試體系中,自動化測試程序要(yào / yāo)求有幾類的(de)覆蓋:功能點覆蓋、需求點覆蓋、缺陷覆蓋(所有缺陷都要(yào / yāo)有測試用例的(de)覆蓋。确保以(yǐ)前出(chū)現過的(de)缺陷新的(de)版本不(bù)要(yào / yāo)再出(chū)現)。通過這(zhè)樣的(de)體系超圖現在(zài)已經累計近2萬多個(gè)測試程序。每一(yī / yì /yí)個(gè)測試程序裏面少的(de)會有十幾個(gè),多個(gè)會有幾百個(gè)測試的(de)功能點。

  軟件規模做大(dà)了(le/liǎo)之(zhī)後,還有一(yī / yì /yí)個(gè)讓人(rén)頭痛的(de)就(jiù)是(shì)軟件編譯,針對這(zhè)個(gè)問題,超圖現在(zài)在(zài)研發中心采用網格計算的(de)技術來(lái)加快編譯的(de)流程。另外一(yī / yì /yí)點在(zài)軟件研發中大(dà)量采用了(le/liǎo)服務端自動化的(de)計算能力。

  除此之(zhī)外,軟件研發裏面還有非常重要(yào / yāo)的(de)機制就(jiù)是(shì)代碼審查。比如新員工進來(lái)以(yǐ)後新員工寫的(de)代碼可能有時(shí)候各方面考慮不(bù)是(shì)那麽全面。所以(yǐ)超圖研發中心原來(lái)有一(yī / yì /yí)個(gè)機制,員工提交的(de)代碼一(yī / yì /yí)定要(yào / yāo)經過他(tā)的(de)代碼指導員審核,包括團隊裏面技術負責人(rén)的(de)審核,代碼才能提交到(dào)庫裏面去。也(yě)就(jiù)是(shì)說(shuō)至少要(yào / yāo)有兩個(gè)審核點才能集成到(dào)這(zhè)個(gè)庫裏面去。雖然流程描述起來(lái)簡單,真正做起來(lái)的(de)時(shí)候其實很痛苦。李紹俊介紹說(shuō),後來(lái)超圖結合第三方軟件,打造出(chū)了(le/liǎo)一(yī / yì /yí)個(gè)代碼審查的(de)體系,相當于(yú)通過信息化來(lái)提升這(zhè)塊的(de)工作效率。不(bù)僅僅可以(yǐ)做代碼審查,也(yě)可以(yǐ)看到(dào)研發團隊工作量,都是(shì)一(yī / yì /yí)目了(le/liǎo)然。

  “我們現在(zài)已經形成了(le/liǎo)一(yī / yì /yí)個(gè)研發體系,通過一(yī / yì /yí)些信息化的(de)手段來(lái)提升軟件研發的(de)工作效率,實現創新2.0時(shí)代的(de)軟件研發。“李紹俊總結說(shuō)。

 

通過這(zhè)樣一(yī / yì /yí)些體系,超圖在(zài)GIS領域也(yě)做出(chū)了(le/liǎo)比較大(dà)的(de)創新點:

2004年:跨操作系統GIS(高性能支持Linux);
2009年:軟件産品二、三維一(yī / yì /yí)體化創新;
2011年:全功能移動GIS;
2013年:雲GIS軟件技術;
2014年:對傾斜攝影三維的(de)支持。