使用Rational工具提高軟件過程改進的實際效果

發表于:2011-02-08來源:作者:點擊數: 標簽:軟件開發rationalRationalRATIONAL答案
很多正在實施軟件過程改進的公司或許有這樣一些困惑:他們實施過程改進有一段時間了,花費的時間和金錢也不少,但是卻為何收效甚微? 的確,不少公司花費了巨資請了 CMMI 的咨詢機構對公司的軟件開發過程體系進行咨詢和培訓,從無到有建立了軟件過程改進小組(

  很多正在實施軟件過程改進的公司或許有這樣一些困惑:他們實施過程改進有一段時間了,花費的時間和金錢也不少,但是卻為何收效甚微?

  的確,不少公司花費了巨資請了CMMI的咨詢機構對公司的軟件開發過程體系進行咨詢和培訓,從無到有建立了軟件過程改進小組(SEPG),制定了一套比較完善的流程框架體系,同時對研發人員進行過若干次培訓。經歷了這些努力后,期待著公司研發人員的行為比以前要規范,軟件質量比以前要好,客戶比以前更滿意,但實際情況是這樣的嗎?答案往往不盡如人意。不少公司甚至出現沒有預料到的負面現象:開發人員比以前更抵制流程,流程執行表面化,開發效率反而降低,產品質量沒有明顯的改善。因此,他們不禁要問,到底是什么出了問題?

  筆者所在的公司同樣遇到類似的問題,經過長期實踐,我們終于發現,造成上述問題的癥結主要是在流程的執行環節上,沒有一個從上到下的自動化的流程執行體系,導致過程改進始終停留在書面文檔上,沒有真正落到實處。筆者就這個話題,結合所在公司幾年來的實際經驗,介紹如何利用軟件工程工具來切實提高軟件過程改進的實際效果。

  發現短板

  過程改進的實施是一個綜合的系統工程,最終實施的效果取決于多方面的因素??▋然?梅隆大學軟件工程研究所(SEI)很早就描繪出了著名的“質量三角形”,形象地 說明了產品質量和生產率一般是由三個主要的因素決定:人、流程和技術/工具。如圖1所示。

  圖1:質量三角形

  其實這個圖也可以用時下比較流行的“木桶”理論來進一步的解釋,即過程改進的效果是由三塊木板拼成的一個木桶,實施效果取決于構成整個木桶的最短的那塊木板。我們需要找出其中到底是哪塊木板最短。而在實際情況中,我們會發現,大部分公司往往重視的是“流程”和“人”這兩塊木板,在完善流程和大力培訓人員的同時,忽略了“工具”的同步改進?!肮ぞ摺北愠蔀橹萍s過程改進實施的短板。

  以項目管理工具為核心

  我們知道,大部分的公司或多或少都需要用到項目管理理論中涉及的一些知識體系,如項目計劃、風險管理、人力資源管理、溝通管理等等。據我們觀察,中小型企業在項目管理的活動中,在工具的運用上還是僅僅限于項目進度的管理,即只管理到計劃本身,沒有綜合管理項目過程中的管理活動。其實流程改進的很多的活動,最終也是會體現在項目管理的活動中,如果忽略這些活動的管理,流程的貫徹和執行就會進入一個黑盒子狀態,SEPG的人員不清楚制定的流程是否合理的運用,SQA的人員不清楚流程執行中的細節狀態,找不出偏差和問題,公司領導也不知道質量問題的發生根源在哪里。針對項目管理在產品開發過程的重要性,我們考察了業界一些項目管理工具的優缺點后,發現很難有一個現成的工具產品符合我們對項目管理和流程管理有機結合的需求,于是筆者帶領了一支有豐富開發經驗的技術小組,開始了自行研制開發基于WEB的綜合項目管理系統的工作,歷時一年之后,我們的系統ProgramConsole開發完成。這個系統在公司推廣后,收到很好的效果。ProgramConsole可以很方便的了解到目前全公司各部門正在執行的項目情況,包括計劃進度、問題列表、風險列表、流程執行情況、人力資源使用情況和質量情況。同時,由于ProgramConsole設計之初就定位為綜合項目管理信息門戶,所以集成了即互相獨立,又緊密關聯的其他工具的內容。這些工具包括流程管理系統、文檔管理系統、缺陷跟蹤系統、需求管理系統和測試管理等。

  以流程管理工具為引擎

  流程(Process),即一系列有關聯的、有順序的活動的集合。流程是以前好的經驗的總結,是不斷重復以前正確做事的方法。更精煉的說,流程要告訴我們的是:正確的人,在正確的時間,做正確的事情,將會得到正確的結果。CMMI其實就是一個以流程改進為核心的一種軟件企業能力提高的模型。因此流程改進在一定程度上成為過程改進的核心工作。

  一般來說,流程體系可以用一個金字塔來描述,最上面一層是公司級政策性文件(Policy),中間是具體的開發流程,如軟件開發流程、測試管理流程等。最下面的是一些更詳細的指導文件,如檢查表(Checklist)、模板(Template)等等,如圖2所示。

  圖2:流程體系框架

  正如前文所述,很多公司往往把注意力放在流程本身的完善上面,始終把制定書面流程作為工作重點,而忽視了流程如何更好的執行,更好的被貫徹到日常工作中。其實,對于大部分的研發人員,甚至包括領導層,都沒有太多的時間去閱讀繁雜的、枯燥的流程內容,無法記住流程中太多的規定,如果要靠個人的自覺性來保證流程的執行,其難度可想而知。

  筆者所在部門也承擔著流程制定和改進的重任,在意識到流程執行不力的真實原因后,決定引入流程自動化工具來保證流程的順暢執行,讓工具通過email的方式來提醒每個人在什么時候 做什么事情。從而避免了大家因為不知道或者忘記了,導致流程沒有被執行。

  流程管理工具在業界有很多的選擇,筆者所在部門經過全面考查,仔細分析各種流程工具的優缺點后,最終選擇了美國Serena公司的TeamTrack工作流產品作為我們的流程管理工具。TeamTrack具有流程設計靈活,可視化顯示流程執行狀態,支持強大的二次開發等特點。有了流程管理工具后,我們把很多的書面流程都轉化成了電子化的流程,這樣就很方便的把需要多人、跨部門、有上下游協作的工作通過電子化的流程固化下來。大大降低了流程執行的難度,有效的提高了流程執行的效率,收到很好的效果。同時,由于TeamTrack可以很方便的和我們自主開發的綜合項目管理系統ProgramConsole有機的結合,可以在ProgramConsole上面進行流程任務的計劃、發起和查看狀態。

  舉例來說,變更管理(Change Control)是過程改進中比較重要的環節,面對瞬息萬變的市場需求和公司內部的變化,有效的變更管理可以防止變更在最后一分鐘才通知到受影響的部門和個人,最大限度的降低變更帶來的負面影響。而變更的種類很多,例如需求變更、計劃變更、人員變更等等,所以針對不同的變更,有相應的虛擬組織—“變更管理委員會”(Change Control Board,CCB)來評估和批準變更。通過流程工具的實現,建立變更管理工作流,可以把變更發起、評估、批準、實施等變更生命周期有效的管理起來,自動讓一個虛擬團隊在一個集中的平臺上協同工作,極大的提高了內部的溝通效率。

  我們比喻流程管理工具為過程改進的引擎,它讓過程改進的活動有序的轉動起來。

  以軟件生命周期為主線,構造完整的工具平臺

  軟件生命周期在不同的公司可能會有不同的描述,但不管是采用傳統的瀑布式,還是用RUP的迭代開發,或者是采用Agile(敏捷開發)模式,在微觀上,都會存在需求、編碼、測試、軟件發布等活動。所有的這些活動,其實都有相對應的工具進行輔助執行。以軟件生命周期為主線,把各環節的工具整合起來,就可以構造一個完整的過程管理工具集。

  圖3展示了我們已經應用的以軟件生命周期為主線的,完整的軟件工程工具平臺。

  圖3:軟件工程工具平臺

  圖3中列出的工具平臺中,項目管理工具ProgramConsole、需求管理工具RequirementConsole、測試管理工具TestConsole、軟件發布管理工具ReleaseConsole這四個產品都是筆者所在公司軟件工程部結合自己多年的過程改進實施經驗,借鑒業界通用的產品,而自行研制開發的。前文已經詳細介紹了ProgramConsole和TeamTrack,這里就其他幾個產品進行簡單的介紹。

  ◆RequirementConsole, 需求管理工具

  需求管理工具主要是對需求的生命周期進行管理,把需求管理的對象細化。從以前傳統的一篇需求文章,細化到一個一個條目化的需求項。這樣更方便需求的追蹤和驗證。

  ◆TestConsole,測試管理工具

  測試管理工具是對測試活動和測試用例的生命周期進行管理??梢怨芾韽?STRONG>單元測試、集成測試、系統測試、Beta現成測試等所有測試環節的用例數據庫,自動匯總測試報告。同時可以集成RequirementConsole,設置需求的測試狀態。

  ◆ReleaseConsole,發布管理工具

  發布管理工具是對發布給客戶的軟件包進行管理,可以集成自動化編譯平臺進行自動構建。非常適合多模塊的復雜軟件包的發布。

  ◆ClearCase、ClearQuest,配置管理工具

  ClearCase和ClearQuest是IBM Rational的產品,也是業界廣泛采用的軟件配置管理工具。ClearCase是一個非常優秀的軟件源代碼版本控制工具。而ClearQuest是一個靈活的缺陷跟蹤工具。

  這個工具平臺中列出的軟件工程工具,它們即可以獨立運行,之間又可以互相有機集成。例如RequirementConsole中的需求項可以追蹤到TestConsole中的測試用例,這樣可以很方便的了解到哪些需求被實現了,是否通過測試。ClearCase中的代碼版本修改,可以關聯到ClearQuest的具體缺陷,了解是什么原因導致代碼的修改。在ReleaseConsole發布的軟件版本中,可以了解這個版本解決了哪些ClearQuest中的缺陷,新增了哪些RequirementConsole中的需求。而ProgramConsole可以把一些領導們關心的,分布在各個系統中的數據進行統計,顯示在界面上。

  經過兩年多的實際應用,我們切實體會到了軟件工程工具給我們的軟件過程改進帶來的實實在在的好處。我們的流程執行更規范了,項目相關人員之間的溝通也更順暢了,領導層更方便的了解和監控產品開發的全過程,決策也更快速和準確。

  沒有最好,只有最適合

  筆者認為,選擇工具的原則是“沒有最好,只有最適合”。不管是自行開發,還是購買市場上成熟產品,最終的目標是應該選擇最適合自己公司實際情況的產品,從而能夠解決在過程改進中遇到的實際問題,為提高過程改進的實際效果起到積極的作用。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97