Process (包括CMMI) 可以休矣

去年12月初去參加在北京舉行的 Asia Pacific Software Engineering Conference,Ivar Jacobson (UML的開發者之一)的Keynote Speech令我印象深刻,推薦大家到 APSEC 2008 的網站下載他的演講投影片。

摘錄幾句他對Process的觀點:
Every process tries to be complete.
– As a consequence every successful process will grow until it dies under its own weight.
• Every process usually becomes just shelf-ware.
– Law of Nature: People don’t read process descriptions.
• The process is out of sync with what the team does…
– …and the project – process gap get wider and wider
• The project has to adopt an entire process.
– No-one uses an entire process or limits themselves to practices from one process.
It’s no wonder no-one likes process.

Jacobson認為practice比process重要:
Practices are First Class Citizens. Process is just a package of practices.
什麼是practice?
A practice provides a way to systematically address a particular aspect of a process.
Practices focus on the essentials. It is the key things to do and the key things to produce.

個人的感想是:
沒有一個process是特別好的,包括CMMI。
真正能執行的是program code,有助於產出正確program的活動就是essential,就是good practice。

留言

  1. 這就應了Agile Alliance的Agile Manifesto的第一項:"Individuals and interactions over processes and tools.",當然這項宣言並非說tools與processes不重要,而是人們(發展者)有效地一起工作(people working together effectively)更重要,也就是說寧願有好的人而沒有流程,不能有流程但沒有好的人,有一句諺語是說"Perfect practice makes perfect" (來自Sensei Rick Willemsen)也許可以做為Ivar Jacobson主張的註解。

    「註」Sensei Rick Willemsen提倡日本傳統的Martial Art(諸如武士道、太極拳等等)。

    回覆刪除
  2. 我想針對作者提到的"沒有一個process是特別好的,包括CMMI"提出一些想法。CMMI應該不是流程,而是一個集成很多practice的framework。
    另外,流程可作為團隊合作的一個common understanding,而團隊若要follow流程,最好是follow"自己制訂"的流程。

    回覆刪除
  3. 我個人還是贊成流程的。不過 CMMI 是可以廢掉的。一個 Practice 久了以後就需要把它訂成 Process,讓不熟悉 Practice 的人來練習,習慣。CMMI 還是得評鑑,只要評鑑就會流於形式。

    過去 CMMI 在熱的時候我就很擔心大家把它當成救世主(銀色子彈),主管趁機會叫下面的補用不到的文件、流程。現在我就很擔心大家又很恨流程,趁火打劫把所有的流程、文件都踢出組織,Programmer 反撲式的嗆主管說流程沒有什麼用,只有寫程式碼才是老大。過與不及都是不好的。

    這年頭誰能給軟體公司一條可以長遠遵循的路?

    回覆刪除
  4. Process還是存在的,一個開發團隊把他們有共識的practice集合起來就是process。
    有助於產出正確program的活動不只是coding本身,當然包括testing、documentation等。

    回覆刪除
  5. 如果說「Process可以休矣」似乎大可不必,不過「CMMI可以休矣」我倒贊成,至少不要迷信它,因CMMI好像已經逐漸商品化,不是評比的指引。至於流程,沒人說不要它,即使Agile Manifesto也不過說,"People over process",Ivar Jacobson也說"Using practices to build a process",這個流程舉XP為例,XP有12項practices,這12項practices可以組合成為符合你專案所需要的流程,這個時候,XP就是流程。

    回覆刪除
  6. 假如CMMI只是一個招牌而已,那就太沒有意義了,如果能讓本來的process更好,那就是發揮本意了。我個人覺得process是必要的,有了process就容易幫開發團隊(還有所有stakeholders)如何有效率的解決問題,還有定義各個參與者的角色,知道什麼時候該作什麼。

    Process則是需要在不同的專案或狀況下有所調整的,不曉的這方面有沒有人可以分享一下經驗呢?

    回覆刪除

張貼留言

這個網誌中的熱門文章

CMMI是什麼?

CRC cards - 非正規物件導向發展技術

談談OCP