Ruddy Lee 分享空間

Emergent Design 演化設計

Archive for 二月 2015

精實軟體開發之步驟一、識別浪費

leave a comment »

  •    這是為了2015/04/02《集英信誠與大師對談》,特別提前準備的內容。
  • PPTX檔已經完成了,在這裡。因為內容太多了,一定講不完,
  • 所以嘗試將PPTX檔對應到一系列的文章, 這是第一篇: 識別浪費

 

Lean要從哪裡開始呢? 從整理To do list 開始。

.

傳統的工作清單

工作清單(To do list)就是把計畫要作的事情一條一條寫下來。這個動作看起來在單純不過了,但一旦你開始寫下來的時候,便會發覺這些條例下來的工作事項,好像有很多地方都可以再思考一下、再濃縮一下、再修改一下,看起來似乎還有蠻多可調整的空間存在。如果你有這種感覺;就對了! 這是正常的現象,因為它們有著不同的重要性。我們所陳列出來的工作,通常只有少數是絕對必要的工作,有一大部分是非必要或是可有可無,不一定要去作的事情。而這種感覺是在提醒我們;應該對工作進行重要性的排序了,把精力專注在那些較重要的工作上,可以讓我們對工作的輕重緩急看得更清楚些,當然效能也會提高一些。下面是我最近想做的一些事情,先以草稿的方式把它們寫下來。

to do list

再把它們整理到數位裝置上:

TODOLIST_SAMPLE

我採用的是在codeproject.com上,自2004年至今的佳作,就叫做ToDoList(6.9.5)版.

.

將資料轉換到數位裝置上的App裡,馬上可以感受到每個工作項目被屬性化了。這些個工作項目已經不在是簡單的一段描述,而是一張卡片,一張記錄著開始、結束以及許多該注意的特性項目。

.

Task Card

撰寫一支自動發布或更新到OneDrvie上的工作事項卡片

.

對於「列工作清單」這個動作,在許多談時間管理的書本上,都給出了好的建議:

  • 工時長短不是重點,交出有價值的成果才重要!

  • 高效率、高產出的職場工作者都有一個共通點,那就是他們並非「很快地完成工作」,而是動手做之前,氣定神閒地判斷「哪些是有價值而且真正該做的工作?」,以及「真正的問題究竟是什麼?」

  • 一般的待辦工作清單中,有價值且真正該做的工作只有「百分之一」而已(參考自《麥肯錫教我的思考武器:從邏輯思考到真正解決問題》作者: 安宅和人)。

.

從看得見的浪費開始著手 – 先做它一次

有了排出優先順序、重要性的工作清單,接著就是照著做下去。不能只是規劃,紙上談兵的功效不會太有用的,一定要先做它一次;然後把實作的結果和花下去的時間紀錄下來,便能夠知道在這段時間裡,你都花了多少時間並作了些什麼事情? 把它忠實的記錄下來,是事後檢討最好的依據。而正是這些紀錄讓你可以看見自己的生命都花在那些事情上頭,有哪些事情是浪費,那些事情是有增值的? 這是第一步;識別浪費

.

【 二個範例 】

※ 下圖是一個遊戲公司開發一款遊戲的流程。整個作業從有好的構想開始,由把構想寫下來,一直到完成該遊戲然後進行部署的流程。在這個圖示裡面,浪費和價值清楚的標示在圖的下半部,這個圖示可以給開發的公司拿來進行檢討的作業。(有一點我們應該要注意的是,不同的遊戲困難度不同時,可能會有完全不一樣的開發時間,因此對於撰寫遊戲的人員而言,時間的長短僅供參考,流程的改善才是它有價值的部分)

game corp. evelope timeline 2

.

※ 舉一個運行敏捷開發Scrum的網頁開發範例。工程師採用的是微軟的ASP.net 網頁開發架構。並依循Scrum的開發流程,由左側上方的產品代辦事項(PBI),在計畫會議時取出足夠一次迭代(iteration)的工作量(稱為SPI)來進行開發作業。

web page

Using Scrum development asp.net web page.

.

由上圖中,Scrum的四種會議被視為是一種浪費,至於「測試作業」也被視為是一種浪費則是較有爭議的地方。其實;軟體開發的時程在視它開發的難易度而有相當大的差別。舉例來說;在開發一個重視視覺化的網頁時,前端的UI設計工作可能就不止一個迭代循環的時間。所以上圖的時間標示是僅供參考的。開發的流程才是值得我們花時間來控制的部分。

.

結論

加了重要性作排序的待辦工作事項(to do list),看起來井然有序多了,感覺上讓人即便還沒開始做任何事,也能充滿信心,好像已經完成了一半似的。這要歸功於事前的計畫,它總能讓人增加信念。但我們好像忽略了甚麼? 因為很少有人能完全按照計畫表工作的,在現實的生活裡,隨時都有可能受到打擾,一旦有工作插隊進來後,我們便經常必須在同一時間裡做幾好件工作,這就是所謂的多工,也是現實。

所以待辦工作事項(to do list)是僅供參考的理想狀態嗎? 我們又應該如何來讓自己能夠同時作好幾件事情,而依然有著足夠的效能呢? 請看下一篇:幫 To do list 加入狀態: 看板篇

.

廣告

Written by ruddyllee

2015 年 02 月 25 日 at 11:56:06

如何提升個人工作效率

leave a comment »

效能並不能為你換來滿足感的,人生也不見得會因產能的增加而變得更美好。

史蒂芬.柯維《時間有約

目錄

  1. 澄清Lean跟Lean Startup

  2. 運用精實原則來提升個人工作效能

  3. 結語

.

1. 澄清Lean跟Lean Startup

我們先來澄清一些觀念: 所謂的Lean跟Lean Startup 其實是二回事。

.

精實精神跟「好點子」無關

精實精神可以幫你提高效能。但它跟精實創業所謂的好點子,還真是沒有太多關係。常常聽到有研究生在報告裡說到:「創新的成功方程式就隱藏在敏捷(Agile)和精實創業(Lean Startup)裡。」看得人一頭霧水,實在會吐出血來。網路社會上這類的錯誤報告真是多得難以言喻,在這裡陳清一下。

 .

Lean的由來: 精實Lean這個詞彙為John Krafcik,1988 年在他的一篇文章 “Triumph of the Lean Production System"裡所首先提出來的。他稱之為精實製造Lean production,指的是製造業的精實理論。你一定猜得到,這是典型豐田製造的成果,沒錯!它們都來自於製造業,這些精神基本上都是在追求高產能的管理原則。這幾十年來一直被其它非製造業的行業所學習與模仿著。軟體界的精實軟體開發便是其中的一個例子。老實說;它跟創意無關。明確的說;應該說精實精神就是藉由持續改善而達到追求高效能的一種精神。精實創業Lean Startup則是一種發展商業模式與開發產品的方法,是由Eric Ries在2011年首次提出了企業開發產品的方法。很多人把他們連想在一起,但實際上是無關的。

.

2. 運用精實原則來提升個人工作效能

如果你急著嘗試的話,做法如下:

步驟一、排序你的 To do list –運用電子看板把它依序排列好。

步驟二、加入狀態欄,形成基本看板牆–To do list 放在第一欄。

步驟三、提供現實的緩衝區,以反應等待狀態–讓流程的欄位盡量符合實際的工作流程。

步驟四、加入多工(WIP: 半成品)限額 –為實際上的工作量設定限制數量。

步驟五、啟動拉動系統 Pull System –只又在前面流程有空間的時候 才可以拉入新的工作項目,稱之為拉動系統。

步驟六、每日解讀,持續改善–必須持續對看板系統進行檢討與改善,才會持續維持在高效能狀態。

.

步驟一、排序你的 To do list。

把自己的日常工作用to do list 陳列出來,然後依照優先順序由上往下排列。切記;沒有必要一口氣把整個星期的工作都排好,因為那樣作就太不切實際了,要熟悉如何去應付變化才是生存之道,生活會因為你的高適應性而顯現得更美好,你周遭的人也會更快樂。這樣的思維方式就稱之為敏捷Agile。

1

這個 To-do 稍稍大了些

步驟二、加入狀態欄,形成基本看板牆。

基本的看板具有三個欄位: 代辦事項、進行中及完成。這三個欄位是用來充分反映準備衝刺時的人性面。這好比我們跑百米時的「各就各位-預備-鳴槍」。人性面所指的是我們足夠預備好做好衝刺的準備。

2

基本的看板具有三個欄位: 代辦事項、進行中及完成

步驟三、提供現實的緩衝區,以反應等待狀態。

在真實的世界裡,即使整個案子就是你一個人,等待還是難以避免的現象。而處理這種無法控制的現象,則是設法在看板上留下明顯的痕跡(例如:起始的時間),讓我們可以較清楚的知道狀態。此時規劃緩衝區是一個好選擇。可以讓我們一目了然作業的狀態。

3

緩衝區讓我們知道工作已經完成,正在等待拉動的行為

步驟四、加入多工(WIP: 半成品)限額。

眾所皆知,同時做好幾件事會造成效率的下降,尤其在交換工作的時候,不但會浪費時間,還容易產生錯誤。但是做人就是這樣,單工作業是理想的狀態。所以我們必須做(1) 有意義的多工(對產能有實質幫助,而不是只增加了半成品量)。 (2) 合理的多工(只在必要的時候做多工作業)。所以我們在欄位上設定限制半成品的數目,強制規定可以獲得最佳產出的半成品WIP限額。(請參考利特爾法則 Little’s law)

4

設定限制半成品的數目

另類的多工顯示:

5

在泳道上顯示正在工作的專案,可以清楚知道專案的狀態

步驟五、啟動拉動系統。

看板系統遠遠勝過To do list的地方就在它是動態的,他以工作流程的方式將系統的行為顯示出來,而拉動的方式則是由左到右進行,只有在前方的欄位有空見時,才允許拉動新的工作來做。我們稱這種行為為拉動系統。它有別於一般直接指派工作的推動(Push)系統,可以具有即時性的半成品特性。

6

步驟六、每日解讀,持續改善

即時改善是拉動系統的一大特色。當你嘗試對看板進行調整的時候,各種工作狀態會一一反應在看板上面。這個時候你便可以透過解讀狀態,在作改善的措施來加強膩的工作效能。

7

阻塞的現象

3. 結語

你一定會困惑,看到看板上的種種現象後,該如何來應對呢? 答案是: 請依據精實軟體開發的七大原則,來做決策。

  1. 消除浪費 Eliminate waste

  2. 增強學習 Amplify learning

  3. 盡量延持決策 Decide as late as possible

  4. 盡快交付 Deliver as fast as possible

  5. 授權團隊 Empower the team

  6. 崁入完整性 Build integrity in

  7. 著眼整體 See the whole

Written by ruddyllee

2015 年 02 月 04 日 at 23:09:52