![]() |
| https://puma.taipei/hackathon/finalists |
前幾天聽朋友說 puma 競選總部辦了黑客松,邊緣人我在截止前幾分鐘得到消息,趕緊報了一人隊伍「牙敗來不及組隊啦」還幸運抽中參加資格。原本想說這麼瞎的隊名也能通過,真是神奇,結果看到其他隊伍的名稱...... 突然覺得我這人還算挺正經的 www
![]() |
| https://puma.taipei/hackathon/finalists |
前幾天聽朋友說 puma 競選總部辦了黑客松,邊緣人我在截止前幾分鐘得到消息,趕緊報了一人隊伍「牙敗來不及組隊啦」還幸運抽中參加資格。原本想說這麼瞎的隊名也能通過,真是神奇,結果看到其他隊伍的名稱...... 突然覺得我這人還算挺正經的 www
TL;DR 總結論
使用 as a - I want to - so that I can 的格式撰寫 user story,就不容易漏掉開發時需要的背景資訊,可以節省工程師反覆追問使用情境的時間
使用 cross-functional process flow 的格式繪製 user journey,就不容易漏掉 happy path 以外的操作邏輯,可以節省工程師反覆確認產品行為的時間(感謝強者前同事 19 教我這個招式)
使用 given - when - then 的格式撰寫 acceptance criteria,就不容易漏掉驗收時需要一併檢查的先決條件和分支路線,可以節省功能交付後才回過頭來東敲西補的時間
把 acceptance criteria 變成自動化測試的 test cases,就不容易記錯預期的產品行為,可以節省工程師翻閱 source code 回答 PM 問題的時間,也可以降低重構時把既有功能搞壞的機率
去年中的時候,也就是我轉職前端工程滿四年無法再藉由自稱菜鳥來逃避責任的時候,因為團隊裡寫規格的人手不夠,開始兼任文件寫手的工作
轉職前端的頭兩三年,團隊很小,PO、QA、客服由同一條龍同一位同事擔任,任何事情問他就能得到最終答案。因為有這麼一個會走路的 single source of truth,開發過程中幾乎沒有寫文件的必要,同事從客戶那邊帶回新需求時,會找前後端一起討論,我出 wireframes 確認以後,大家就各自散開寫 code。當時這個以一條龍為祭品 conversation over documentation 的模式,從工程師的角度看,覺得運作得蠻順暢的
後來團隊跟著產品一起出售,來到一間比較大的公司,產品變複雜分工變細,溝通協調的難度也跟著變高
首先遇到的問題,是層層轉達造成的資訊衰減。客戶的意見過了 N 手、抵達工程師這裡時,我們只知道「決定要做某某功能了」,但究竟是為了滿足什麼需求、要在什麼情境下被如何使用,這類脈絡性的資訊往往會遺失
除此之外,由於產品範疇變大功能變多,超過一條龍一個人可以負擔的程度,工作自然會被拆到不同人身上。當設計跟前端由不同人處理,對介面行為的認知就會有不同版本;當 PO 跟 QA 由不同人擔任,對驗收標準的認知就會有不同版本;隨著時間過去,每個人的認知還會漸漸變模糊。由於不再有人能擔任祭品產品規格的 single source of truth,單靠 conversation 的溝通就不容易收斂出具體的結論
於是,為了讓資訊不會在多次傳遞之後衰減或佚失,以及為了找回產品規格的 single source of truth,文件的需求就浮上檯面來
去年因為跳坑議程委員的關係,要幫研討會的會眾們代客選修,每個選修工具人都要看完兩百多份稿件,而且這些稿件還會不斷新增和變更內容,因為數量太大、版本太多,單純開個試算表已經無法應付,因此替自己做了審稿工具。
事後在 coscup telegram 頻道討論審稿流程的時候,得知 pycon 有超完整的文件,這種有條有理的做事方式,個人真的非常喜歡 😍
原本想寫一篇完整的審稿心得文,不過因為豬血糕生病的關係,就只停留在和朋友閒聊然後記錄在 SNS 的階段了。
前陣子跟友人聊到政府辦黑客松,也在這邊記錄一下個人的想法。
黑客松的特性,是利用 bottom 模式產出多元的成果,因此適合運用在發散的情境。
政府單位辦黑客松,第一件事是搞清楚手上任務是發散性質、還是收斂性質。例如,政府提供 1 份素材讓民間發展成 N 個遊戲或教案,是發散性質;民間提供 N 個靈感讓政府收斂成 1 個官方網站,是收斂性質。
發散性質的任務,適合百花齊放的黑客松;收斂性質的任務,則適合諮詢少數深入瞭解脈絡的專家顧問。
由於 bottom up 模式相當不受控,想讓黑客松的成果符合主辦單位的意志,常會用獎金當餌,引導參與者使用特定 api、開發特定用途的產品等。
既然提供了獎金,就必須有公平的方式分獎金,因此勢必得加上評審跟排名規則,於是競賽元素成為許多黑客松的基本配備,也變成很多人對黑客松的刻板印象。
有競爭,沒合作。競賽型黑客松的特性,是每個隊伍壁壘分明,參賽過程中彼此互不交流。
政府的角色通常是和利害關係人對話、 促進多方協力,因此政府辦的黑客松其實通常不適合採用獎金制跟競賽制。獎金制吸引獎金獵人的同時也會排擠利害關係人,而競賽制會遏止參與者之間的溝通合作。
發表在 mastodon 上的原文 https://g0v.social/@etblue/105697295645156851
![]() |
| Steps to Civilization Cliff / 通往文明斷崖的階梯 |
我必須修習政治學與戰爭學,我們的後代才能擁有修習數學、哲學的自由;我們的後代必須修習數學、哲學、地理學、博物學、造船學、航海學、商學及農學,他們的後代才有學習繪畫、詩歌、音樂、建築、雕刻、繡織和瓷藝的權利。
I must study politics and war, that our sons may have liberty to study mathematics and philosophy. Our sons ought to study mathematics and philosophy, geography, natural history and naval architecture, navigation, commerce and agriculture in order to give their children a right to study painting, poetry, music, architecture, statuary, tapestry and porcelain.― John Adams, Letters of John Adams, Addressed to His Wife
如果後代醉心於哲學、藝術,而遺忘了我們這一代所學過的政治學與戰爭學,那他們的後代就必需重新開始做我們這一代的事。
If their children forget about the politics and war we've learned, then the next generation will need to start over.
開源烏托邦的理想,是屬於藝術世代的浪漫;而我們目前面對的,是戰爭世代的問題。
The open source utopian is the romance belongs to the art generation. However, the problems we are dealing with right now, belong to the war generation.
![]() |
| 以下是一隻菜鳥在無窮迴圈之森與變數未宣告之谷中逃出生天的掉漆冒險故事 |