1. 過程裁剪的理念
所謂過程裁剪(process tailoring)就是通過增加、刪除、替換方法、修改順序、組合等方式對軟體開發模型進行優化,使之符合團隊和專案的具體特點。
由於各種生命週期模型在軟體工程領域已經有深入的研究,業界對於瀑布模型、迭代模型、增量模型、螺旋模型等經典軟體開發模型的使用場合等也基本達成了共識。因此,專案只需要將專案的實際特點與生命週期模型的應用場合相匹配,選擇合適的生命週期型別即可。同時,敏捷開發方**也深入人心,對於scrum、極限程式設計、精益思想和看法方法的理念和具體工程實踐也獲得越來越多的應用,這就為我們建設符合自身特定的過程體系提供了輸入。
進行過程裁剪的第一步是明確可裁剪的物件。可裁剪物件確定了裁剪的範圍,可裁剪物件不僅限於過程元素和活動,還包括標準、方法和工具、輸出的工作產品及模板等。其次,需要明確裁剪所考慮的要素。對於某個裁剪物件,其範圍、頻度、正式度等都是裁剪要素。如,對於已有類似開發經驗的專案,可以適當減少過程培訓、業務培訓等活動;對於開發周期較短的專案,可以適當合併一些評審活動,如概要設計和詳細設計評審合併進行。當我們對活動、文件、度量指標等進行裁剪並形成新的過程體系之後,一般也需要評審該過程體系並把它上公升到基線標準。
採用簡單易用的圖、表等形式展示裁剪的指南有助於裁剪工作的推進,對上述提到的裁剪物件、裁剪的方法應都有描述,可以針對不同型別的專案或不同型別的活動提供裁剪後的幾套模板,並確保裁剪指南的描述沒有二義性,確保減少溝通的誤差。
2. 過程裁剪的幾種表現形式
通過過程裁剪我們形成了一定的過程體系,這些裁剪活動也具有層次化特徵,即不同級別所應用的裁剪方法和結果可以是不一樣的。我們分別從應用級別、團隊級別和行業級別描述過程裁剪的幾種表現形式。
(1)應用級別
顧名思義,應用級別的過程裁剪指的是每個應用對裁剪的標準和原則是不一樣的,經裁剪所獲得的過程體系自然也不一樣。結合各個應用的自身特點靈活應用軟體開發過程很大程度上滿足敏捷的價值觀。下圖展示的就是將不同的敏捷工程實踐在不同的應用之間進行過程裁剪的示意圖。
有些應用的開發可能偏向純敏捷型,而有些則可能帶有傳統瀑布模式下的工作方式。對前者而言,短週期迭代是必須要採用的一種工程實踐,但對於後者而言,可能很難具備固定的迭代週期,則可以從每日例會、回顧會議、持續整合等與生命週期關係並不是很緊密的工程實踐入手。
(2)團隊級別
下圖展示的另一種過程裁剪的維度,即團隊級別。開發團隊根據其是否專職於某一項職能、是否分布式在不同的地理位置、是否有專職的敏捷管理人員等可以分成不同的型別,也就可能會採取不同的開發流程和工程實踐。
舉例來說,如果乙個開發團隊內部包含技術、測試、產品、專案等多個角色,那麼推行scrum這樣的全生命週期的過程管理框架相對會比較容易一些;反之,由於不同職能團隊之間需要較多的跨團隊協作,優先使用持續整合、回顧會議和視覺化管理可能是不錯的選擇。
(3)行業級別
我出版了《系統架構設計:程式設計師向架構師轉型之路》、《向技術管理者轉型:軟體開發人員跨越行業、技術、管理的轉型思維與實踐》、《微服務設計原理與架構》、《微服務架構實戰》等書籍,並翻譯有《深入rabbitmq》和《spring5響應式程式設計實戰》,歡迎交流。
表現形式CSS
css cascading stylesheets的縮寫 翻譯為 層疊樣式表 或者 級聯樣式表 簡稱樣式表 cascading stylesheets 的首字母縮寫,意思是層疊樣式表。有了css,html中大部分表現樣式的標籤就廢棄不用了,html只負責文件的結構和內容,表現形式完全交給css,ht...
多型的表現形式
目錄 1.多型的定義 2.多型的三種形式 3.多型的編譯和執行 4.多型的轉型 5.多型的好處 6.多型的弊端 多型 封裝和繼承是物件導向的三大特性。多型需滿足三個條件 1 有繼承 2 有重寫 3 有父類引用指向子類物件。最終多型體現為父類引用可以指向子類物件 父類型別 變數名 new 子類型別 1...
程序的表現形式
1.程序生命週期 執行 該程序此刻正在執行。2.程序表示 include linux sched.h中有結構體struct task struct 表示了程序的所有資訊。struct task struct 程序限制 rlimit cpu 按毫秒計算的最大cpu時間 rlimit fsize 允許的...