我們的 開發流程 是 黯然銷魂掌 嗎?
金庸小說中有一部我非常喜歡就是 神雕俠侶 ( 雖然 小龍女被… Orz )
離題了…
裡面的 楊過 把 降龍十八掌、打狗棒法、玉女心經、九陰真經、彈指神功
融會貫通後變成自已的「黯然銷魂飯」
呃!是「黯然銷魂掌」
之前提過很多次,很多團隊只要聽到「軟體開發流程」
馬上!立刻!連 3 秒都不到就說…
「啊~~ 你知道我們不是軟體公司啦!所以不需要那麼正式的。」
「軟工? 那要寫一堆文件耶!現實專案中不可能那樣子搞的。」
但自已的專案有沒有自已的流程?
若答案是「沒有」,那真的要好好想一下你到目前為止都怎麼上線的
所以不可能沒有
差異只是在於!是不是每次上線的流程都一樣?
若都不一樣!那就~非~常~地~~恭禧您,可以獲得重高的地位!
因為您要當救世主!來解救客戶和老闆
每次上線一定都會遇到不同又很多的「驚喜」
若是一樣!那也要感到高興!至少團隊中有一種「默契」
可以彼此之間督促,讓以前犯過的錯誤可以降到最低
但,這個默契是大家一起擺爛?
只有在此先為您禱告了!
公司一定有自已的流程!
只是它剛好不是用 CMMI ,也不是用 Agile。
你就想成 是 「XXX」流程 ( XXX 請換成自已公司的名字 )
那麼,CMMI 和 Agile 又是什麼?
正確的來說它們只能算是一種「方法論」
是一種規範,告訴你在專案中這麼做可以解決 XX 問題
但,不會跟你講在你的團隊中應該要怎麼做!
沒有任何一種流程可以「照本宣科」地導入到自已的團隊
沒有考量到自已團隊的流程成熟度和現實情況
一定會無法達到最大效益!
感覺就像是 買一台 法拉利超跑,在台灣的馬路上開是一樣沒 fu 的
而且,路面上還坑坑洞洞,想全程跑 70 可能都還輸小綿羊
這讓小弟想到七、八年前 CMMI 正開始很熱的時候
有一個團隊現身說法
導入 CMMI 就像是 「CMM唉」
因為團隊才三個人,所有的東西都執行還要寫文件
怎麼樣都不可能持續的…
所以!工作就不用記錄?也不用規範工作?
這樣子你的系統就會準時上線?系統品質也都很棒?
這一定有很利害的 PM 準時盯進度!控制成本!
也一定有很利害的 開發人員 只要聽到需求
就可以馬上變出各種的 IoC、Factory、Singleton、Facade等等的程式碼
而且還可以自動測試…
但,現實上 不是每個開發人員都像 保哥 這麼利害
都還沒有看清楚寫什麼,程式就可以執行了!
你會說,我們現在開發流程是「自已有專屬的系統要負責」
不需要跟別人一起協同運作…
這都是指「開發」,那需求呢?測試呢?上線呢?
沒有一個 SOP 規範
會不會因為時間趕,不做需求記錄 就直接開始寫程式?
會不會因為時間趕,沒有經過基本的測試 就直接佈署上線?
會不會因為時間趕,沒有做任何的過版驗證 結果就上線?
會不會因為時間趕,功能先出來再說,以後有空再來改?
會不會因為時間趕,…… 還有很多很多
久而久之,就會出現一堆問題 …
團隊的開發速度若有問題
就會看到「團隊每天加班,結果什麼都沒有」
這種團隊的特性是人員流動率都會很高 ( 不然就是新人待不住 )
小時候是不是有一種同學,看他每天都在玩,結果還可以考很高分?
小時候老師是不是常常講 「讀書要用對方法」
是的
開發流程也是一樣!有用好的方法 ( 適合自已的 )
就可以達到一樣的功效
所以,看看 Agile、Scrum 、 CMMI 的流程能解決什麼問題
要先了解流程概念、運作機制 和 解決的問題
再來考量工具 和 團隊的成熟度
工具是一個很重要的評估指標!
沒有一個好的工具輔助很多資訊是看不到的
沒有資訊!就不知道要怎麼去調整團隊的腳步!
這也是我們常常講的「團隊能見度」
常見的案例是!
上個月還跟你講說我們的進度都有做到
結果這個月要上線時才說「阿!其實要再二個月才能上線」
不然就是說「啊!只有會員登入功能可以用」
若專案曾經出現這樣子的情況就代表
你根本不了解現在專案真正的情況!
將 Agile 的螺旋式開發 ( 漸進式 ) 、CMMI 中的 CM 管理、需求管理、交付管理
XP 中的 TDD 和 Review 、Scrum 的 Backlog和測試 等等挑各種不同的優點
融入到自已的專案 ( 啊!千萬不是要一口氣同時導入這麼多種 )
所以,挑自已團隊適合的項目是一個非常重要的
這是自已以前在導入流程時一些小小的心得
希望可以透過這樣子的方式,讓大家有不同的想法!
ps.. 寫到這裡又餓了~~~ 附一張傳說中的 黯然銷魂飯
@出自食神