2023 個人回顧

原本以為前幾年的冒險已經夠精彩了,沒想到今年更加刺激,簡直就是甘迺迪的登月大計。

到了年終,又開始要做個總回顧,再對來年許願。去除一些不便揭露的事情,以下是簡單的回顧。

如何衡量敏捷對於軟體研發效能的利益?

面對敏捷或 DevOps 藥方,病人可能帶著各種不同的動機而來,但終歸都會提出同樣的疑問:我怎麼知道敏捷有沒有效?怎麼衡量成效?

這問題,可能在導入之後的某個時刻會問,但更有可能像戰國時代梁惠王那樣,才剛第一次接見孟子,居然劈頭就問:「叟,不遠千里而來,亦將有以利吾國乎?」

孟子見梁惠王

孟子見梁惠王

對這議題,常有兩種極端的反應。

變動的時代,為什麼工作分解技能更是必備?

很多人認為,在變動較少的舊時代 1,一次到位的工作規劃、工作分解是必備技能,但是到了現在這個變動頻仍、朝令夕改、隕石滿天飛的時代,做再多工作分解的規劃只是不切實際的浪費。

你怎麼看?

我反而認為,正是因為變動頻仍,就更需要及早進行工作分解。只不過這種工作分解,不是舊時代那種一次到位的無差別分解,而是要能夠區分近光燈與遠光燈的不同層次,也就是敏捷陣營所講究的 “granularity gradient"。

這個論點,我曾在去年的兩場導讀會,透過兩本書,作為公司內推動敏捷轉型的心態導正。2 最近我發現,這類誤解仍然普遍存在於敏捷轉型的業界,因此特地將去年那兩場導讀會的觀點稍作整理,誌於此文。

Generated by ChatGPT4 + DALL·E 3

Generated by ChatGPT4 + DALL·E 3

Agile Success Recipes: Example Agendas for Efficient Scrum Ceremonies

If you’re new to leading Scrum events, knowing what to do can be tough. Having a set agenda can make things easier for you and your team. It helps everyone know what to expect.

I’ve got my own agendas that work for me, but it’s a good idea to get different takes. Why not ask ChatGPT to suggest some? The examples you’ll see here came from ChatGPT 4 and were adapted by me. Use them as a guide and tweak them to fit what your team needs.

Generated by ChatGPT4 + DALL·E 3

Generated by ChatGPT4 + DALL·E 3

[Code Review 碎碎念] 簡化巢狀條件判斷式

讀別人的程式是一件苦差事,不僅需要具備對應的領域知識,也得了解對方的程式書寫邏輯與風格。因此,為了讓程式碼容易被人理解,整潔程式碼是必須持續精進的技藝。

在 code review 進行實質審查之前,我喜歡先做一點點形式審查,尤其是某些 code smell,臭味暴風半徑大到甚至連領域知識的外行人都聞得到。

我很常遇到不必要的巢狀迴圈或條件判斷式。經驗告訴我,除非真的是要設計出什麼高大尚的演算法或者刷題,否則,這有相當大的機率是需要進一步 refactor 的。

像以下這段程式,即使我故意把領域知識相關細節用 conditionXX 馬賽克掉了,你還是可以明顯聞到 bad smell:迴圈 + 條件判斷式,ABCDEF 深達 6 層,你能夠很快捕捉到箇中邏輯嗎?