MF99 coding 💻

keep learning; keep coding;

做事的方法

f:id:mouseface99:20200420124635j:plain

這一篇其實想寫很久了,其實我也是這幾年,待過幾個公司、專案、團隊之後,慢慢能夠比較具體的整理出這些概念。

這邊講的會是一些比較概念性的東西,雖然可能無法有立即性的幫助,但是希望可以讓讀者能夠在工作,生活中可以偶而去檢視自己,甚至讓自己更進一步。

或是自己覺得常常停滯不前的時候,也可以試著用這個方法來檢視,是否有可以改善或是提升的部分。

這幾年跟著很多團隊在軟體開發上,跑著 scrum 的過程中,慢慢對於 scrum 裡面的一些 activity 有著進一步的認識,也慢慢可以了解為什麼在完整的流程中必須遵守這些行為。(具體關於 scrum,之後會有更詳細的文章解說)

簡單來說,做一件事,其實有三個步驟:

  • 計畫(Planning)
  • 執行(Execution)
  • 回顧(Review)

可能很多新手只學到了執行,然後稍微資深一點的會開始思考並作計畫。

但是,其實裡面最關鍵的一部在於:回顧

這邊先來具體說明一下這三個步驟的內容

計畫(Planning)

實際動手以前,是否先花點時間去思考。

如何做? 為什麼要做? 是否有更好的方法/作法?

如果是被交付一個具體的任務,則需要思考做這件事情背後需要達成的目標是什麼? 我決定的手段/方法是否能有效地達成目標?

如果是被交付一個抽象的任務,則更需要好好思考,去計畫如何去執行。 需要多少資源(人力/時間)?

在動手前先動腦,甚至有機會的話花點時間去模擬,演練。 去用最快的方法去幾本驗證你的方法是否可行。 提早發現問題,提早在計畫階段就先排除。

另外,這個階段也要進行風險管理,很多風險可以避免,但是大多的風險是無法完全避免的。 能做到的只有盡可能地知道風險在哪,並且做好對應的準備以降低風險發生時所帶來的衝擊。

執行(Execution)

有了具體的計劃後,再來就是搜集所需要的資源。然後準備就緒後,就捲起袖子動手開工吧!

在這個階段,最重要的事時間管理,既然有有了執行計畫,那就要在執行階段不時的檢視目前的進度與狀況,是否符合計畫中的預期。

是否有預知/不可預知的風險發生?

在進度落後/超前的時候是否有應變措施可以執行(有時候,進度超前不一定是好事)

同時在執行過程,做好質量管控。 在有限的人力/時間資源下,做到最好的品質。

回顧(Review)

再來就是最關鍵,但是也最多人忽略的一個環節。

很多人在做完了前兩個步驟,把成品交付了之後,就鬆懈下來了。 就覺得一些都結束了。

但是實際上,這段時間才是對自己最關鍵的黃金時段。

因為沒有了交付的時間壓力,所以這時候最需要的是整個團隊好好坐下來回顧整個計畫/執行過程的時候

這裡不使用檢討,是因為主要不希望這個階段變成批鬥/找戰犯的階段

這時候應該要檢視一下在執行過程中發生的與計畫不符合的狀況。

是否是當初計畫時漏思考到了什麼部分? 是否預估人力/時程過度樂觀/悲觀?

是否遺漏了某個部份? 是否外部依賴(dependency)的協調不到位?

是否出現了不預期的風險? 未來是否還會再遇到? 是否在團隊內部/外部溝通上有什麼能改善的部分?

這部分,其實很像 scrum 中的 Retrospective,團隊應該著重討論以下幾點

在這次執行過程中:

  • 什麼事情該做,但是我們卻沒有做? (What should we START doing)
  • 什麼事情不該做,但是我們卻做了? (What should we STOP doing)
  • 我們做了什麼,讓整個狀況有所改善,所以未來應該持續這樣做 (What should we KEEP doing)

一切的回顧,用意在於讓下次計畫/執行時,能夠更好/更有經驗的去面對下一次的工作。


最後,其實這個方法與步驟,不只適用於工作上。 其實在生活中也是如此。

做任何事情前,是否有先思考過? 做完後,是否給自己一點時間好好回想在整個過程中,是否有還可以改進的部分? 是否有自己疏漏的部分? 如果還有機會,自己會將如何改進?

這整個思考過程,可以讓自己在每一次的成功與失敗中成長,並且讓自己每天更進步!