盤點(diǎn):主流敏捷軟件研發(fā)工具平臺(tái)比較(敏捷軟件開發(fā)工具)
無論是創(chuàng)業(yè)軟件團(tuán)隊(duì),還是企業(yè)級(jí)規(guī)?;浖邪l(fā),都會(huì)遇到提升管理能力、提升研發(fā)效率的問題。為了解決這兩個(gè)問題,許多軟件研發(fā)工具平臺(tái)也營(yíng)運(yùn)而生:微軟、IBM、HP、Atlassian、Rally、Collabornet、Polarion……等廠商都推出了各具特色的產(chǎn)品,而近年來新生的Slack、teambition等平臺(tái)也帶來了新的理念和產(chǎn)品,受到了許多團(tuán)隊(duì)的歡迎。作為軟件研發(fā)的團(tuán)隊(duì)或企業(yè),我們?cè)撊绾胃鶕?jù)自身發(fā)展情況,對(duì)這些產(chǎn)品和工具進(jìn)行合理的選擇?一個(gè)支撐軟件高效研發(fā)的工具平臺(tái)應(yīng)該具備哪些特點(diǎn)?未來又將向什么方向發(fā)展呢?
世界范圍內(nèi)軟件研發(fā)工具平臺(tái)產(chǎn)品發(fā)展迅速,國(guó)內(nèi)產(chǎn)品仍是空白
當(dāng)我們?cè)趯W(xué)校里用Visual Studio編寫hello world的時(shí)候,我們就已經(jīng)開始使用工具進(jìn)行軟件研發(fā)。只是那個(gè)時(shí)候,工具的作用還很單一,對(duì)管理能力、研發(fā)效率的整體提升還沒有特別關(guān)照。
在80年代,國(guó)內(nèi)的計(jì)算機(jī)、軟件行業(yè)剛剛萌芽的時(shí)候,國(guó)外的同行已經(jīng)開始研究使用工具提升軟件研發(fā)效率,微軟、Rational(后來被IBM收購(gòu))推出了各自的IDE,并在不斷增強(qiáng)IDE功能的同時(shí),向需求管理和質(zhì)量管理方向拓展。
90年代,又有一些廠商加入到了開發(fā)軟件研發(fā)工具產(chǎn)品的行列中,其中國(guó)內(nèi)同行非常熟悉的莫過于Mercury(后來被HP收購(gòu))的產(chǎn)品,90年代末和2000年前后,大家經(jīng)常使用的研發(fā)工具組合一般是:需求管理用Rational Request Pro,開發(fā)IDE用Micosoft Visio Studio,代碼庫(kù)用collabnet subversion或Rational Clear Case,測(cè)試管理用Mercury Test Director,軟件性能測(cè)試用Mercury LoadRunner。這些工具在軟件研發(fā)的每個(gè)方面都提升了個(gè)人和團(tuán)隊(duì)的效率,也讓越來越多的人看到了工具平臺(tái)對(duì)軟件研發(fā)效率提升的重要性。
進(jìn)入21世紀(jì),敏捷思想及敏捷軟件研發(fā)方法開始逐漸改變?nèi)藗儗?duì)軟件研發(fā)的認(rèn)識(shí)。在軟件研發(fā)工具平臺(tái)方面,ALM(Application Lifecycle Management)逐漸成為各工具廠商產(chǎn)品努力的方向。在短短的10年內(nèi),涌現(xiàn)出一大批優(yōu)秀的軟件研發(fā)工具平臺(tái)廠商,如Atlassian、Rally、Polarion、Versionone、Serena……一些老牌廠商,如微軟、IBM、HP通過收購(gòu)、合并、開發(fā)新的工具產(chǎn)品等方式,更加完善了軟件全生命周期管理的工具平臺(tái)。有了新的軟件研發(fā)方法,配合眾多優(yōu)秀的軟件研發(fā)工具平臺(tái),軟件行業(yè)得到了快速的發(fā)展。此時(shí)國(guó)內(nèi)同行也廣泛認(rèn)識(shí)到工具平臺(tái)對(duì)提升研發(fā)效率的重要性,有條件的企業(yè)或采購(gòu),或自主研發(fā),搭建起自己的研發(fā)工具平臺(tái)。
2010年前后,隨著互聯(lián)網(wǎng)的蓬勃發(fā)展,互聯(lián)網(wǎng)軟件研發(fā)逐漸成為新的焦點(diǎn),DevOps很快成為大家普遍的共識(shí)。很多傳統(tǒng)軟件研發(fā)工具廠商打著“DevOps”的旗幟適時(shí)地推出了一些產(chǎn)品或升級(jí)版本,同時(shí)又有一些新的廠商加入競(jìng)爭(zhēng)的行列。在如何能夠更好地管理軟件研發(fā)活動(dòng)的問題上,像Slack這樣的產(chǎn)品向“傳統(tǒng)”研發(fā)工具平臺(tái)發(fā)起了新的挑戰(zhàn),在看到越來越多的軟件研發(fā)團(tuán)隊(duì)更愿意使用Slack進(jìn)行日常研發(fā)工作時(shí),我們不禁陷入思索:未來軟件研發(fā)工具平臺(tái)將何去何從?
圖1
目前軟件研發(fā)工具平臺(tái)的對(duì)比研究有很多,但實(shí)用性低
2010年以后,多家重要的IT咨詢公司分別開始定期發(fā)布主流軟件研發(fā)工具平臺(tái)對(duì)比研究報(bào)告,各家最近一期的報(bào)告結(jié)果匯總?cè)缦拢?/p>
圖2
這些報(bào)告每一篇報(bào)告單獨(dú)看似乎視角都很客觀,評(píng)估方法似乎都很縝密。但當(dāng)把他們放到一起比較后,會(huì)發(fā)現(xiàn)它們的結(jié)論大相徑庭,不同的廠商也會(huì)精心挑選“適合”自己產(chǎn)品的報(bào)告,懸掛于自己的產(chǎn)品網(wǎng)站首頁(yè)。而這些只有兩個(gè)維度的魔力象限對(duì)于真正需要軟件研發(fā)工具平臺(tái)的團(tuán)隊(duì)或企業(yè)來說,幫助并不是很大。
我們發(fā)現(xiàn)這些IT咨詢公司評(píng)判軟件研發(fā)工具平臺(tái)廠商,及其產(chǎn)品的視角無外乎有兩個(gè):一個(gè)是從ALM的功能視角;另一個(gè)是商業(yè)的視角。在ALM功能視角下,各家咨詢公司會(huì)分別著眼于軟件的需求、設(shè)計(jì)、開發(fā)、測(cè)試、發(fā)布等幾個(gè)主要環(huán)節(jié),詳細(xì)對(duì)比各個(gè)廠商的產(chǎn)品功能,看誰的功能更強(qiáng)大,誰的功能更全面。而在商業(yè)的視角中,他們則更多以產(chǎn)品的市場(chǎng)份額、廠商服務(wù)的覆蓋程度以及盈利的多少、來衡量哪家廠商更加優(yōu)秀。這樣就造成了功能越齊全的產(chǎn)品、體量越大廠商的在類似的比較報(bào)告中越得到好評(píng),反之則被排在后面。
但是,對(duì)于正在尋求軟件研發(fā)工具平臺(tái)解決方案的團(tuán)隊(duì)和企業(yè)來說,尤其是正在進(jìn)行敏捷、互聯(lián)網(wǎng)轉(zhuǎn)型的團(tuán)隊(duì)或企業(yè)來說,上面的這些對(duì)比方法還是顯得陳舊、粗獷,并沒有解答哪個(gè)工具平臺(tái)更加適合我們這些正在進(jìn)行敏捷軟件研發(fā),或者互聯(lián)網(wǎng)軟件研發(fā)的團(tuán)隊(duì)。
在敏捷軟件研發(fā)的影響下,工具平臺(tái)發(fā)生了很大變化
傳統(tǒng)瀑布模式下的軟件研發(fā),注重軟件從概念到上線的流程以及每個(gè)流程節(jié)點(diǎn)上的關(guān)鍵活動(dòng),同時(shí)也重視項(xiàng)目的管理。許多支持瀑布模式開發(fā)的軟件研發(fā)工具平臺(tái),在需求管理、質(zhì)量管理、配置管理、項(xiàng)目管理等方面的功能都十分強(qiáng)大。
圖3
敏捷思想強(qiáng)調(diào)“以人為本”,讓人們主動(dòng)、自我管理、響應(yīng)變化、互相信賴地工作。敏捷軟件研發(fā)方法,如Scrum、Kanban、XP實(shí)踐等指導(dǎo)軟件研發(fā)團(tuán)隊(duì)擁抱需求變化,快速交付客戶價(jià)值,持續(xù)改進(jìn)。要想使團(tuán)隊(duì)或組織真正敏捷起來,需要在人、技、法三方面達(dá)到和諧。這就需要軟件研發(fā)工具平臺(tái)這個(gè)“技”的方面也要敏捷起來。
圖4
敏捷宣言的第一句話是:“個(gè)體和交互勝過流程和工具”,但這并不是說敏捷不需要工具的支持。相反,如果有了更好地研發(fā)工具支持,提高團(tuán)隊(duì)的工作效率,才能真正的敏捷起來。
對(duì)照敏捷宣言的幾句話,我們大致能看到敏捷價(jià)值觀下的研發(fā)工具應(yīng)該具備的特點(diǎn):
1. 個(gè)體與交互勝過流程和工具:研發(fā)工具應(yīng)該能夠突出個(gè)人的工作,并且能夠讓團(tuán)隊(duì)更好地協(xié)作
2. 工作的軟件勝過詳盡的文檔:研發(fā)工具應(yīng)該精簡(jiǎn)文檔及審批流程,讓軟件交付更加順暢
3. 客戶合作勝過合同談判:研發(fā)工具應(yīng)該支撐快速交付可工作的軟件,并且能夠更好地幫助用戶反饋
4. 響應(yīng)變化勝過遵循計(jì)劃:研發(fā)工具應(yīng)該打通需求、設(shè)計(jì)、開發(fā)、驗(yàn)證的循環(huán),持續(xù)交付
同時(shí),我們看到越來越多的工具平臺(tái)正在發(fā)生如下的變化:
強(qiáng)化:
1. 對(duì)敏捷軟件開發(fā)實(shí)踐的支持
2. 對(duì)持續(xù)快速交付的支持
3. 對(duì)團(tuán)隊(duì)協(xié)作的支持
4. 對(duì)用戶反饋的支持
5. 用戶體驗(yàn)的提升
6. 單一工具解決特定問題,平臺(tái)提升整體效率
弱化:
1. 流程及審批
2. 文檔及變更管理
3. 基于時(shí)間的任務(wù)項(xiàng)計(jì)劃管理(甘特圖)
4. 把產(chǎn)品質(zhì)量問題交給測(cè)試人員
5. 項(xiàng)目中角色及權(quán)限劃分
6. 大而全的平臺(tái)解決所有問題
以上的變化讓我們清楚地看到敏捷研發(fā)給工具平臺(tái)帶來的變革,我們也可以總結(jié)一下,敏捷方法下的軟件研發(fā)工具平臺(tái)應(yīng)該具備以下6個(gè)特點(diǎn):
1. 敏捷管理實(shí)踐(用戶故事地圖、故事列表、優(yōu)先級(jí)、估算、卡片墻/看板、燃盡圖/CFD、回顧數(shù)據(jù))
2. 敏捷開發(fā)實(shí)踐-代碼(IDE集成、代碼掃描、代碼審查)
3. 敏捷開發(fā)實(shí)踐-Dev-Test-Ops的Pipeline效率提升(編譯、CI、UT、AT、發(fā)布、部署、運(yùn)維)
4. 用戶反饋與研發(fā)流程打通
5. 注重協(xié)作與用戶體驗(yàn)
6. 團(tuán)隊(duì)能負(fù)擔(dān)的工具平臺(tái)價(jià)格
主流敏捷軟件研發(fā)工具平臺(tái)比較,各有所長(zhǎng)
圖5
上面的表格是我們基于敏捷研發(fā)方法下的工具平臺(tái)應(yīng)具備的功能,結(jié)合對(duì)每個(gè)工具平臺(tái)的深度試用或試用后做出的比較??吹皆诿艚菅邪l(fā)的場(chǎng)景下,各家平臺(tái)的功能各有所長(zhǎng)。
圖6
選擇適合自己團(tuán)隊(duì)的軟件研發(fā)工具平臺(tái)
在軟件研發(fā)工具平臺(tái)中,沒有通用的最完美的解決方案。錯(cuò)誤的選擇會(huì)讓組織的成長(zhǎng)、競(jìng)爭(zhēng)以及產(chǎn)品的成功交付受到影響。
在選擇軟件研發(fā)工具平臺(tái)時(shí),先要確定使用工具平臺(tái)想要使組織在哪方面得到提升,是快速交付的能力?還是為了支撐敏捷開發(fā)實(shí)踐?或是敏捷管理實(shí)踐落地?還是為了更好地收集管理用戶反饋?亦或是為了加強(qiáng)團(tuán)隊(duì)協(xié)作?
確定了目標(biāo),還要結(jié)合人技法三角,綜合考慮用什么樣的工具,即“技”。要充分了解三角的其它兩個(gè)方面,也就是了解團(tuán)隊(duì)或組織的人的能力水平,和目前大家使用或?qū)⒁褂玫难邪l(fā)方法。
只有在人、技、法三方面達(dá)到和諧,才能充分地發(fā)揮工具平臺(tái)的效果,才能真正解決問題,使組織的能力得到提升。
軟件研發(fā)工具平臺(tái)未來的發(fā)展
隨著軟件行業(yè)的迅猛發(fā)展,軟件研發(fā)工具平臺(tái)也必然會(huì)發(fā)生更多的變化。未來的軟件研發(fā)工具平臺(tái)將會(huì)更加突出如下特征:
1. 更快
在需求、設(shè)計(jì)、開發(fā)、測(cè)試、部署、反饋的軟件研發(fā)周期中,研發(fā)工具平臺(tái)會(huì)更多提高研發(fā)整體效率,進(jìn)一步縮短研發(fā)周期。
2. 質(zhì)量風(fēng)險(xiǎn)前移
在代碼檢查、CR、CI、單測(cè)、自動(dòng)化功能、性能測(cè)試、安全測(cè)試等方面,研發(fā)工具平臺(tái)會(huì)更注重質(zhì)量風(fēng)險(xiǎn)的前移,即在開發(fā)階段保證質(zhì)量的優(yōu)秀實(shí)踐的落地。
3. 更多協(xié)作
在團(tuán)隊(duì)協(xié)作、客戶合作方面,研發(fā)工具平臺(tái)會(huì)更好地結(jié)合網(wǎng)絡(luò)社交、移動(dòng)互聯(lián)網(wǎng)等新業(yè)務(wù)新技術(shù),讓軟件研發(fā)這種人與人的協(xié)作活動(dòng)更順暢、更方便。
作者簡(jiǎn)介
王一男,百度研發(fā)工具平臺(tái)資深產(chǎn)品經(jīng)理。10年軟件敏捷研發(fā)管理實(shí)戰(zhàn)經(jīng)驗(yàn),先后在兩家上市企業(yè)成功實(shí)施基于信息化工具集的軟件敏捷項(xiàng)目管理,并成功實(shí)現(xiàn)了基于信息化數(shù)據(jù)的項(xiàng)目持續(xù)過程改進(jìn)。
本文選自程序員電子版2015年12月B刊,該期更多文章請(qǐng)查看這里。2000年創(chuàng)刊至今所有文章目錄請(qǐng)查看程序員封面秀。歡迎訂閱程序員電子版(含iPad版、Android版)。