我最近有幸參與了評審 IJC 的新的核心統一過程(Essential Unfired Process,EssUP),并很高興向大家報告 EssUP 提供了軟件過程改進的一種全新方法。IJC 拓展領域創新并不足為奇,因為其創始人 Ivar Jacobson 是用例、統一過程和 Jaczones Waypointer 之父。與以前的 UP 表示法相比,基本統一過程更簡單、更靈活且更具可擴展性。它以輕量級和友好的方式呈現在大家的面前,使過程的學習更簡單,在某種程度上甚至成為一種樂趣。
從 Objectory 到 RUP ―― 第一代過程
我第一次邂逅 Ivar 是在 1988 年,之后我們通過電子郵件對他在 Objective Systems 的Objectory 早期工作進行了討論。當時,Objectory 是最全面的過程描述之一,也是僅有的面向對象(OO)過程。它由 OO Meta 模型和一個帶有相關工具的綜合超鏈接文檔組成。當時,尚未有人認為過程可以像 OO 編程和 Ontology 一樣進行公式化和具體化。當 Rational 收購 Objective Systems 時,Objectory 及其開發團隊成為 Rational 統一過程的主要影響力量。
通過與 OMG 的合作,Ivar 在 Rational 成功推出 UP 和 UML。Rational 當時選擇保留 RUP 的所有權 。OMG 在供應商自身利益和方法學的支配下,繼續推動 UP 和 UML 沿著他們自己的方向發展,從而堅持了結構復雜的 SPEM 模型、復雜的元架構(MOF)以及具有最少語法或語義說明的 UML 語言(參見 … )。
不幸的是,對于某些開發人員來說,雖然 Ivar 被公認為是 RUP 之父,但 RUP 的命運掌握在 Rational 手中。RUP 的本意是提供一種幫助人們開發軟件的方式,但它迅速發展成為一種綜合的市場商品,Rational 作為獨家過程和工具供應商來銷售它。RUP 迅速擴充為 1000 多頁的超鏈接資料,每個鏈接足以讓開發者望而卻步。它從頭到尾為不懂軟件開發的管理層提供了如何開發軟件的說明性答案,尤其適合迫切想要通過 CMM 認證的企業或政府機構,并提供了所謂的符合 TQM/Six Sigma 和 ISO 9000 標準的軟件。最后形成了用于構建軟件的說明性過程。所有開發人員必須按照指導來操作!可是軟件開發并非如此簡單!
讓過程作為指南,而不是“警察”
我曾與 Ivar 多次討論如何將簡單的、好的創意溶入墨守成規的復雜設計中,這些設計在最初構思或表示時并未考慮到這些好的創意。Ivar 創立了 Jaczone 和 IJC,其目的是遵循他的基于過程和工具的軟件開發初衷,以幫助指導和協調軟件開發,而不是規定和監管軟件開發過程。EssUP 致力于過程的返樸歸真,通過更簡單的表示和開放的設置來歡迎和擁抱集體的貢獻。
過程 = 一組實踐
過程不等于慣例,過程的存在也不意味著必須遵守它!雖然過程和工具日益增多,但企業迅速發現,這并不一定帶來我們所預期的更高質量的軟件。敏捷宣言(Agile Manifesto)標志著敏捷聯盟(Agile Alliance)的誕生,這要歸功于一個成功的軟件開發者社區克服了笨重的過程/方法,站在了大眾的立場上。他們關注如何生產軟件、如何改進軟件的實踐。敏捷轉換(Agile Transition)改變現實的實踐,而不是停留在膚淺的過程表面。這些實踐應用精益方法進行軟件開發,通過度量所交付的軟件對軟件進行持續改進,而拋棄盲目的、無謂的錯誤估計。
核心統一過程
精益概念
EssUP 秉承了精益軟件(Lean Software)開發的精神,強調使用實際需要的實踐,并調整過程使其適應項目的需要。它摒棄復雜的公式化元模型,取而代之的是簡單的可感知的分類法。這避免了哲學挑戰和面面俱到的 Ontology 軟件概念的無謂爭論。使用較少的分類,EssUP 允許對各種過程實踐及其相關工件進行簡單的描述、組織和溝通。
易于學習 ―― 簡煉的表示方法
EssUP 提供了一種全新的表示方法,它使用卡片和指南表來提供實踐及相關工件的一致、簡單的解釋?ㄆń梃b了 OO RDD 設計的 CRC 卡片以及 XP 需求“故事”卡片的成功經驗,使實踐的解釋和理解更容易。EssUP 不會規定過程,相反,它允許用戶使用卡片法來描述所需的過程或實踐。這對于過程的具體化和可視化大有裨益,并且允許僅使用實際所需的過程。EssUP 引入了過程競賽,它汲取了 XP 計劃競賽的精華,允許適合于項目的快速構建和過程溝通。
開放的和可擴展的
過去,過程描述是綜合且自成體系的。供應商和過程組織提供了大量描述,但其中大多數只是重復了書籍和紙張上所記錄的概念。不幸的是,在許多情況下他們甚至忽略了關鍵的初始工作,更有甚者,許多描述質量不合要求,產生誤導甚至是錯誤。保持這樣龐大的過程現已證明是不切實際的!
EssUP 關注本質,并提供了軟件社區初始基礎工作的參考。它并未提供大量的用例、架構或模式,而是簡單地引用最佳的專業文章和書籍。這樣做是為了明確地避免作為權威指導出現,并且清楚地表明,專業人員是知識的主體,知識對于實施軟件開發實踐是至關重要的。
簡單的卡片/指南格式以及非正式的概念分類法更方便大家為過程做出貢獻。IJC 已宣布他們正在研究一種最佳方法來創建開放的 EssUp 社區,以便讓更多的人能夠分享他們的實踐。
結束語
與以前的 UP 表示法相比,核心統一過程更簡單、更靈活且更具可擴展性。它以輕量級和友好的方式呈現在大家的面前,使過程的學習更簡單,在某種程度上甚至成為一種樂趣。IJC 已創建了一組初始的實踐,并作為 EssUp 提供。IJC 已宣布他們正在研究一種最佳方法來創建開放的 EssUp 社區,以便讓更多的人能夠分享他們的實踐。雖然最初的產品只是一個輕量級的 UP 過程,但其他非 UP 過程必將可以用相同的基本概念和方法來描述,無論它們是具有苛刻安全要求的過程還是較為靈活的過程。
文章來源于領測軟件測試網 http://www.kjueaiud.com/