EssUP (Essential Unified Process)與Coach之間

in

EssUP結合了敏捷(Agile)、EUP、CMM三者的長處,從敏捷學來了靈活、從RUP學來了結構,從CMM學來了過程改進,敏捷注重於人,RUP注重於過程,而CMM注重於製品。三者都是軟體發展的一個方面。敏捷注重人,所以創造力最好,但是缺少品質的保證,而且對個人能力要求太高;RUP注重過程,不會有繁瑣的文檔也可以保證一定的創造性,但是靈活度不大,適用範圍不廣;CMM注重製品,因此品質很有保證,但是無用功作得太多。

EssUP則注重於實踐,明確的定義與Coach 或者 扮演Architect 或 指導者 角色 的互動,也無形中讓團隊與Coach產生正向回饋,不再像過去常常發生顧問不work的窘境,並且視Coach為團隊資源執行該做的任務,同常有助於團隊品質的提升及改善,亦有ROA(Return of Asset)的味道,EssUP實踐將人和物質界,將產品和製作產品的過程結合。

接下來,我要簡單的介紹EssUP,EssUP包含八個基本軟體開發實踐(Practices),茲將分成兩個方向,簡要條列如下:


 在開發與技術實踐上

● Iterative Essential

● Architecture Essential

● Use-Case Essential

● Component Essential

● Model Essential

 在社會工程、流程和其他支援實踐上

● Product Essential

● Process Essential

● Team Essential


請各位留意,EssUP用了Essential這個字眼來表達每個實踐,Essential在中文翻譯為「本質」,何為本質?其表達的是一切事物的根本,譬如:屬人的身體一定要吃飯、睡覺跟運動,這就是本質,那麼軟體的本質是什麼?EssUP認為是上述八個本質的實踐,茲將分別說明如下:

1. Iterative Essential:


使用該實踐來將專案分解進入一系列Smaller、自給自足(Self-contained), time-boxed, mini-projects過程,其要做的事情如下圖:



2. Architecture Essential


使用該實踐來主動的聚焦在面對專案的技術風險和建立一個合適的架構,其要做的事情如下圖:



3. Use-Case Essential


使用該實踐用易被理解的表單使用在觸發軟體發展來擷取需求,和客戶一起工作來擷取真正本質的需求(truly essential requirements),大家一起有效率工作來快速發展可用的方案,定義和交付系統的期望價值,其要做的事情如下圖:



4. Component Essential


使用該實踐來發展複雜的系統,讓其變成較簡單的、較小的、可協作的元件一起組結果。將問題切成校小部分且一個一個解決這皆較小的問題,以可延伸及維護方式發展複雜系統,發展和驗證系統分出的部分獨立性及可平行,發展和利用可以重用的元件,最後好好的利用Third party frameworks和component libraries,其要做的事情如下圖:



5. Model Essential
使用該實踐來建立一個適當風格和不同型式的model,用以觸發開發活動。團隊溝通系統的需求、結構(structure)和行為(behavior),觀察系統不同的觀點和了解他們之間的關係,利用正確model來符合需求,並且採用敏捷的方式來產出塑模跟文件,留意聚焦在本質,避免塑模上的完全停頓和產生一些不必要的文件,其要做的事情如下圖:



6. Product Essential


使用該實踐來管理軟體系統的成功演化開發,像一系列的產品發表(Product Release)。團隊可發展對產品而言的business case,然後規劃一系列的主要產品發行的專案,這些交付均對實際商務有效毅,包含關係人一起參與決策過程,確保產品產出符合關係人實際的需要,並且管理軟體的演化,確保可控制和聚焦在商務(Business or market)上。其要做的事情如下圖:



7. Process Essential


使用該實踐對團隊改善和採取相關的實踐,通常包括定義、準備和組裝一些適用的practices和支援專案目標的工具。視需要個別的和逐步的介紹新的實踐(Practices)。平衡和整合標準和地方性的實踐,當團隊聚焦到他們做不好的事情時,能夠維持團隊快速的走回好的實踐。並且逐步基於團隊經驗和Lessons Learned來成長團隊的實踐。其要做的事情如下圖:



8. Team Essential


使用該實踐帶領專案團隊在一起和建立一個有效的工作環境。採取合適的領導力和組織樣式。建立和逐步發展團隊工作環境。介紹工具和技術來幫助團隊達到目標。發展有效率的方法來協作(collaborate)和組織(organize)團隊工作。將所有團隊成員的貢獻他們的能力達到尖峰,已達成物以類聚的結果。其要做的事情如下圖:





資料來源:EssUP

分類: 專案管理