Jazz 是一個能夠延伸的可調式團隊協同作業平台,用於在整個軟體生命週期中,無縫地整合各項作業。
在團隊中開發軟體,就像在樂團中演奏樂器。 每位音樂家既各司其職,又彼此同步,保持和諧。 他們既需同意溝通的方式,也要留意相互送出的信號,否則,演出便會失敗。 優秀的協同作業及個人的精湛技藝,缺一不可。 同樣地,軟體開發人員也是既需著眼於建置優良的程式碼,又要協調彼此的活動,使所有片段都能夠吻合。
Eclipse 之類的整合開發環境 (IDE),業已成功提升個人的生產力。 不過,如同撰寫程式碼一樣,開發人員也積極參與團隊的協同運作。 「Jazz 平台」正是為此而來,它將焦點從個人的生產力轉向團隊的生產力。
設想一下,團隊如何去追蹤及修正一項虛擬的錯誤。 在團隊內修正錯誤流程的工作從發現問題、報告問題的 Mike 開始,接著是 Rick,他審查送入錯誤報告以及將工作指派給 Susan,Susan 修正錯誤,然後又回到 Mike 來進行驗證。 錯誤修正程式本身也在團隊內流動,從在程式碼串流中修正問題的 Susan,流向在含有修正程式的建置中驗證修正程式的 Mike。
這些流程可能很脆弱。 如果移入了修正程式,但未更新錯誤報告,或沒有鏈結可將修正程式連接到特定程式碼串流和建置,團隊內的流程便毀損了。 這些毀損可能會在團隊內造成混淆,並妨礙進度。 更糟的是,一時之間,團隊有可能根本沒人知道發生毀損。 除此之外,與領域相關的工作(如撰寫軟體產品的程式碼)還會和主要是與維持團隊協調相關的工作(如:將錯誤標示為已修正)交錯。
雖然 IDE 整合了許多工具,但開發人員仍需手動進行許多重複的簿記工作,對於維護團隊的有效協同運作而言,這個工作很重要,但又很容易遺忘或出錯。 如果 Susan 只需簡單告知 IDE 她正在修正特定錯誤,情況會比較好。 當她完成修正和測試案例之後,便可以指示她已經完成。 她不需要有進一步的動作,系統會確定已變更的檔案,且會將它們關聯於錯誤報告、更新建置附註,以及將錯誤報告標示為已關閉。 如果工具依照這個方式來自動完成簿記工作,便可以確保錯誤報告與程式碼移入之間的重要連線是可靠的,團隊也會因而更有效。 同時個別團隊成員的效率也會更好,因為冗長乏味、容易出錯的簿記工作會自動進行。
Jazz 是適用於完整軟體生命週期的團隊協同作業平台,它設計成能夠含跨軟體生命週期的所有階段來支援無縫整合各項作業(早期範例實務涉及生命週期中段的若干一般作業)。 「Jazz 平台」設計成用戶端和伺服器兩端都能夠延伸,且可以從非常小的團隊調整成大型企業架構。 它納入了工具支援程序指引的概念,工具瞭解團隊的開發程序,可以協助團隊成員遵循這個程序,且不會造成妨礙。
「Jazz 平台」並不只用來整合現有的點工具,它也提供一個平台,用來建置比先前所可能提供者還要多的整合式生命週期工具功能。 當在生命週期中,依照這個方式來整合開發工具時,只要有一組綑綁起來的點解決方案,就可能實現許多難以想像的成果。 這類全套整合起來的工具,可以協助團隊更有效建置軟體,同時軟體開發活動也變得更好玩。
「Jazz 平台」設計成能夠含括整個軟體開發生命週期來提供綜合性的支援。 貫穿專案所有階段的執行緒便是團隊成員同意遵循的程序。 在教導「Jazz 平台」這個程序之後,它便能夠以程序特定的方式來協助團隊。 這個程序支援可以有各種各樣的形式(完全沒有界限),從即時規則檢查到提供線上(如 F1 鍵)程序說明,再到自動化簿記工作等等都是。 「Jazz 平台」支援程序的方式如下:
「Jazz 平台」設計和建置成能夠執行下列動作:
「Jazz 平台」的主要角色是為工具撰寫者提供一些使用機制及遵循規則,來導向以無縫方式整合生命週期的工具。 這些機制是透過完整定義的 API 而顯現。 另外,「Jazz 平台」也提供很有用的建置區塊和架構來協助開發新工具。