Jazz讓軟件交付變得更爲透明

孫振方是北京天宇郎通通信有限公司的配置管理主管,他在軟件設計研發和軟件配置管理方面有着七年的經驗,也爲很多大型企業成功設計了自動構建系統。在他看來,構建管理的重要性至少佔到配置管理的1/3,而在實際的構建過程中,卻存在着很多的問題:沒有一個協作的平臺顯示構建的變化狀態,每個構建機器上的構建日誌無法統一,開發人員需要排隊領取構建資源,而且在以前,他們需要單獨的團隊來開發軟件構建的管理工具,造成人員的極大浪費。

肖勇是北京恆訊時代信息技術有限公司高級諮詢顧問,在系統集成分析和系統設計方面有着豐富的經驗,就他過去的從業經驗而言,很多軟件開發的失敗一方面是因爲開發者沒有辦法統一、協同地創建並管理軟件分析設計工作,另一方面,是由於大量的開發人員不是很瞭解架構背後的商業點,這讓他們在開發過程中不能很好地維繫架構,不能將架構很好地映射到開發之中。

李璐是IBM的軟件開發經理,在過去開發和測試的職業生涯中讓她頭痛的事情是無法設計一套適合項目的開發流程,讓管理者能夠根據實際的項目開發過程和進度加入或減少一些流程。另一方面,由於項目開發的規模較大,作爲項目管理者,她無法瞭解每個人的具體工作情況,瞭解哪些資源還可以利用,還有哪些工作是可以改進,並且需要改進的。

他們所談到或碰到的問題並不是個案,有很多與他們從事相同工作的人也有着這樣的困惑。軟件開發過程的不透明、團隊協作效率較低,造成了客戶對交付的軟件應用不滿意。IBM公佈的數據顯示,在全球範圍內,只有37%的用戶對軟件應用是滿意的,只有42%的客戶對軟件交付的質量是滿意的,而在中國,這個數據還要低一些。簡單地說,就是大部分客戶對開發的質量、項目的執行和開發速度的需求一直在改變,而目前所交付的項目能夠使客戶滿意的不到一半。

隨着軟件交付由最初的個人操作系統作業,到小型局域網,到目前的Web2.0技術,客戶對軟件交付的要求也越來越高,包括提供可用性,提高團隊效率,改進產品生命週期和可跟蹤性,減少總體擁有的成本和對兼容性的支持等等。在這樣的情況下,客戶對於軟件開發協作平臺的需求是非常迫切的。也正是在這樣的背景下,IBM推出了基於Jazz平臺的產品,希望能夠通過這個開源的產品,來改善軟件交付的質量和應用。

協作構建軟件

目前的軟件開發規模很大,動輒數千人,甚至在某些時候是一個全球分佈式的開發,大家可能不在同一個時區,語言也多樣,那麼如何保持開發者互通信息?如何知道每個人在項目裏是什麼角色,能在什麼時候完成什麼工作?開發者之間通過什麼方式進行協作,能保證在你完成了你該完成的工作以後,別人完成他自己的工作,最後所有人的任務疊加在一起,順利地完成項目?這些都要求團隊成員之間有很好的協作。

而在Jazz平臺上,通過內部即時通信工具和電子郵件,團隊成員可以進行交流。團隊成員在自動登錄時可以看見登錄成員,並自動獲得影響其自身工作內容的變更,瞭解其他人工作的完成情況,讓整個團隊直接在基於工作內容的上下文下直接協作。

另外,就是工作任務動態分配,讓一個龐大的羣體以一種有序的方式來提供一份高質量的代碼。在過去,有一些開發工具能夠讓開發者瞭解開發任務分成幾大部分,各大部分有多少任務,但這樣的工具沒有提供開發者協作功能,讓開發者及時瞭解到每個人的工作狀態是什麼。畢竟,捕捉靜態的人在開發工作中的信息是很容易的,但是要捕捉在一個動態的開發過程中人的變化就不容易了,而這正是開發者在基於Jazz平臺進行開發工作的過程中能得到的最大的益處。包括項目的管理層,也可以在Jazz平臺上看到項目進展到什麼程度、出了什麼問題。對於用戶來說,也可以及時看到當需求發生變化時,開發人員的代碼和測試是如何隨之改變的。

流程自動化和透明化

作爲一個開發經理,一部分最重要的職責的一部分就是每天保證能夠了解其團隊的每一個人在做什麼,每一件事情如何進行;需求在哪兒,客戶是誰,需求以何種形式交付到系統裏,根據這樣的需求又應該產生哪些文檔,開發進程如何滿足這些需求;每日構建的狀況到底如何,有多少成功的構建,有多少失敗的構建?基於這些構建的測試的曲線是怎樣的,如何通過各種各樣的報表能彙總出這結果,迅速地傳達給整個產品管理的團隊,並且對這樣的進展做出及時的反饋。

在開發的每個階段都有很多的需求一直在變化,把整個軟件開發生命週期各種不同的情況串聯在一起,包括做一些配置管理,讓參與者的工作流程更透明、更自動化,是每個開發團隊都需要的。

在Jazz平臺上開發軟件,可以定義整個項目的名稱、項目描述,並管理組員,這可以通過加電子郵件的方式,也可以通過定義整個項目人員的角色以及限制他們的操作權限來進行管理。比如,可以對一些審批人員進行限制,他們可能只有審批代碼的權限,但沒有更改代碼的權限,包括測試團隊,可以根據不同的需求增加角色,並且給每個角色賦予一定的權限。

同樣,在團隊任務中,還可以做很多基於模板的定義。在創建整個項目的時候,你可以選擇已經內置打包的各種模板,同時也可以在團隊開發過程中根據自己的經驗去定製或修改模板作爲整個團隊的模板去使用。這就體現出整個流程和過程的透明化

而在工作過程中,開發者可以對類型項目進行定義,比如把一些工作項目定義成開發團隊的,有的定義成測試團隊的,也有的是屬於需求團隊的。同時也可以定義出完成的時間、週期。

靈活的過程定義

在軟件構建中,沒有嚴格的流程對項目完成肯定是不利的,那麼用一套非常規範的流程來控制構建,是不是就能有很好的效果?

通過實踐可以看出,用規範化的流程來控制開發並不能取得好的結果。開發不僅有大項目,同樣也有小項目,在實際的項目中,如果按照固定的開發流程來做,沒辦法定義那麼多人,也沒有辦法定義到每個人具體的工作,同時開發工作也會非常沒有效率,因爲本來一個人可以幹10件事,如果按照這樣來定義,他可能只能幹一件事。這就是一個管理流程過於複雜的問題。

而作爲管理者,需要知道自己的流程是複雜的還是簡單的,管理者應有辦法能夠更靈活地按照實際情況來定製一套適用的開發流程,讓每個開發者以自由的方式參與這個協作,但又在一定程度上保證管理的效率。管理者應在一定程度上可以授權一些人去管理一個子過程,而自己又可以減掉一些流程,加入一些由於開發過程或難度變更而引入的新流程。這是流程靈活的需要

而在Jazz平臺上,開發團隊可以通過不同的項目規模來進行流程的制定。企業級的客戶,比如摩托羅拉、諾基亞,都有自己的規定和管理,他們也可以通過Jazz的方式來界定自己的流程、模板庫。從最基本的個性化制定,到大型企業的制定,在Jazz平臺上都可以實現。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章