l

2012年10月30日 星期二

只有一位開發人員的專案也需要了解如何消除七種浪費

Oct. 30 07:50~09:10

螢幕快照 2012-10-22 下午6.19.58

Teddy昨天幫「敏捷軟體專案開發流程改善策略:從減少七種浪費做起」這個講座打廣告之後,有一位鄉民留言問了一個問題:

請問一下:『從減少七種浪費做起』這個主題適合專案只有一位程式開發者的人參加嗎?」

答案很簡單:非常適合 微笑

***

消除七種浪費的作法來自於《Implementing Lean Software Development: From Concept to Cash》這本書。該書將「Toyota Production System (TPS)」所提到藉由減少七種不必要的浪費來提昇產品品質的精神,套用到軟體開發中,用以降低開發成本並且改善軟體品質。這七種浪費分別是(括號為TPS所採用的原始名稱):

  1. 半成品,Partially Done Work (In-Process Inventory)
  2. 多餘功能,Extra Features (Over-Production)
  3. 重複學習,Relearning (Extra Processing)
  4. 交接,Handoffs (Transportation)
  5. 工作切換,Task Switching (Motion)
  6. 延遲,Delays (Waiting)
  7. 缺陷,Defects (Defects)

這系列的主題,Teddy在2010年10月的時候就已經在部落格上介紹過前六種浪費,請參考《消除浪費 (1):Partially Done Work》、《消除浪費 (2):Extra Features》、《消除浪費 (3):Relearning》、《消除浪費 (4):Handoffs》、《消除浪費 (5):Task Switching》、《消除浪費 (6):Delays》。在《笑談軟體工程:敏捷開發法的逆襲》這本書的「Part 3 精實生產,減少不必要的浪費」中,Teddy也完整地介紹這七中浪費以及消除這些浪費的方法。

從2010年寫完這一系列的文章,2年後的現在回頭看,Teddy覺得了解這七種浪費,對於軟體從業人員,無論是產品經理、專案經理、Scrum Master、軟體架構師、程式設計師、設計師、測試人員等,都非常有用。

為什麼一個人的團隊也適用?

只要是開發軟體,無論是一個人開發,或是團隊開發,都有機會遇到這七種浪費。以下簡單說明一個人的軟體專案為何也需要了解這七種浪費。

  1. 半成品:廣義的來講,半成品就是無法交付給客戶的(軟體)產品。例如,尚未被實作的需求、尚未送交到版控系統的程式碼、尚未被測試的程式碼、尚未部署的系統。就算是一個人開發的專案,還是會產生以上這些半成品。在開發專案的時候,只要能夠減少半成品,就可以減少浪費並專注於思考如何增加客戶的價值。
  2. 多餘功能: 多餘的功能就是已經做好但是客戶卻不需要的功能。做出客戶不需要的東西,耗費人力、物力,當然是一種浪費。這種浪費,不管是一個人的專案,或是一個團隊的專案,都有可能會發生。
  3. 重複學習:這個浪費也叫做 「額外處理」。一個人的專案應該就沒有什麼「重複學習」或「額外處理」的問題了吧?錯,還是有。例如,手動測試就是一種重複學習。原本寫好的程式用人工的方式通過測試,但是只要程式稍有修改,「理論上」整個人工測試就必須要重做一次,這也算是一種重複學習(重新學習、確認有沒有任何東西被打壞)。
  4. 交接:嘿嘿,一個人應該就沒有「交接」的問題了吧?一個人的專案的確是大大減少交接的浪費(因為沒有交接的對象啊 挑眉質疑),但是也不能完全排除這種浪費。例如,雖然系統是自己一個人開發的,但是需求有可能是PM(專案經理)告訴你的,這就算是一種交接。好,那如果從需求訪談、實作、交貨都是自己一個人包辦的話,這樣就幾乎沒什麼交接的浪費。但是,因為只有一個人做案子,所以有可能無法加速專案開發,或是自己遇到問題卡住,而增加了「延遲」這種浪費。由於需要自己一個人完成專案所需的所有不同類型的工作,因此自己需要在不同的工作中進行切換,也可能會造成 「工作切換」這種浪費。
  5. 工作切換:至少有兩種情況會造成一個人的專案產生「工作切換」這種浪費。首先,如果這一個人同時接了兩個以上的專案,就會造成「工作切換」這種浪費。其次,因為案子只有一個人,同時間除了寫程式以外,可能還需要回覆客戶的email或是電話或是聯絡配合的軟體體廠商,這些都算是工作切換。
  6. 延遲:在一個人的專案中,很容易發生自己遇到問題無法解決卡很久,而造成延遲的浪費。也有可能是客戶無法即時釐清需求導致於你要等待客戶的答覆,或是等待配合的軟硬體廠商把需要的設備送過來。
  7. 缺陷:只要有寫程式,就可能會發生缺陷,所以這個浪費無論是一個人的專案,或是多人的專案都會發生。

***

結論:只要是開發軟體,不管鄉民們在專中扮演何種角色(產品經理、專案經理、高階主管、Scrum Master、設計師、開發工程師、測試工程師),都很合適來參加這個講座。報名網址再貼一次:http://www.accupass.com/go/1211improve

***

友藏內心獨白:消除七種浪費真的很有用啊。

沒有留言:

張貼留言