iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 18
0
自我挑戰組

那些敏捷開發裡的小事系列 第 18

Day 18 跑敏捷應該要加班把東西做完嗎?

跑敏捷應該要加班把東西做完嗎?

Imgur
常常聽到有人再討論敏捷或Scrum到底要不要加班把東西做完?

業界前輩們怎麼說

先不論跑不跑敏捷,我們看看業界前輩怎麼看這件事情。

我們先用 Clean Code 作者 Bob 大叔的角度來看,他說我們應該每週花 60 小時在工作上。
這 60 小時裡有 40 小時的工作時間是給老闆的,另外 20 小時(每天大約 3 小時)的工作時間是給自己的。

這裡做各簡單的計算,一週有 24x7 = 168 小時,上班 40 小時,20 小時自己的工作時間,睡覺 56 小時(8x7) ,你還有 52 小時可以做其他的事情。

至於加班這件事情,顯然就是說在原本的 40 小時內無法完成功做,必須花額外的時間來工作,而這額外的時間可能就是那 20 小時自己的工作時間

這 20 小時原本的用意是來提升自己的職業發展的,例如練習 Refactor, 寫測試, 參加研習等等增加自己專業的事情,以專業人士為目標所應該做的事情。

所以如果你加班是用來思考今天寫的 Code 應該要怎樣 Refactor,或是應該如何加測試,那我覺得加班很有價值。

如果只是拿來把 Item 做完,這就要好好思考了。

用系統思考的角度來看

如果我們正在工作的 Item 變多, PO或老闆就會覺得我們的能力好,他就會增加我們工作的 Item,如此一來我們手邊正在工作的 Item就變多,這是一個增強回路。

從另一個方向看,如果我們正在工作的 Item 變多,代表每個人需要處理的 Item 量就變多了,當處理的 Item 變多了,錯誤率就會上升,如此一來做錯要重做的 Item就會變多,
當需要重做的 Item 變多,則我們正在工作的 Item 就會減少,這是一個平衡回路。

再從另一個方向看,如果看需要重做的 Item 變多,就要派人去救火,當救火的人變多,可以做工作的人就變少,如此一來每個人可以處理的 Item 就變少。
如下圖所示

(圖待補)

到底該不該加班

假設今天我們加班把事情做完了,老闆會覺得這樣的工作量我們可以吃的下,所以下一次也會給大家同樣的量,甚至更多一點點,因為他不確定我們是否到了極限。

這是因為我們加班所造成的假象也就是老闆認為我們能力夠,而這個假象會反應在我們的 Velocity 上面,也就是說在 Velocity 這個數據上我們作假了。

什麼叫數據作假,簡單的說就是作弊。

關於作弊我聽過一句話

作弊會把你困在一個自己不擅長也不喜歡的地方。作弊成功,那些假的成績就會帶你到一個你不想去也不該去的地方

而在這個 case 裡這個不想去的地方就是無止境的加班。

所以...

如果我們跑敏捷跑Scrum只是為了把事情做完,那你應該加班做完,因為做完是你的目的。

如果我們是為了反應現況,讓我們的缺點暴露出來,讓我們有機會去改善,讓我們有機會變的更好,若以這樣的角度來看,我想我們不應該加班。

所以一切取決於我們跑敏捷的目的是什麼而定。


上一篇
Day 17 工程師是否只需要好好寫程式呢?
下一篇
Day 19 跟大廚學敏捷-準備工作
系列文
那些敏捷開發裡的小事30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言