我始終鼓勵所有人與團隊建立執行 Side project 的習慣,它可以為我們帶來許多好處,在昨天的文章中,我也提到 Side project 可以是擠出時間的機會,今天再讓我們來看看它還有什麼好處。
敏捷原則有幾點提到團隊能力相關,例如:
持續追求優越的技術與優良的設計,以強化敏捷性。
最佳的架構、需求與設計皆來自於能自我組織的團隊。
並且,持續俢正也是相當重要的:
團隊定期自省如何更有效率,並據之適當地調整與修正自己的行為。
那麼,有什地方可以安全的追求技術、持續超前改善、自由反省與修正呢?我認為 Side project 是個很好發揮的對象,也是讓團隊主動精進的機會,避免長期陷在沒有成長的迭代中。
這邊描述的 Side project 是一種非工作崗位必要做的,例如:我們在開發某個產品,該產品的發展就是首要任務,而其他因為興趣而起,或觀察到任何可改善的需求時,以個人或團體名義發起的小型專案。
我們需要鼓勵團隊成員能夠從工作中發現問題,更好的是可以 Side project 形式試著解決這些問題。我們會賦予 Side project 非常高度的自由,規則由發起人制定,只要它不危反法律、公司規章與善良風俗。因為有這種自由度,成員可以在其中任意發揮,成為想法變現的一個絕佳實驗場。
此外,Side project 不僅僅是由程式邏輯堆疊出來的產物,它也可以是一種教案、一種團隊活動,它可以用各種的樣貌展現出來。
而 Side project 具體有哪些好處呢?繼續看下去。
參與 Side project 的成員可以決定使用任何一種技術,可能是不同的程式語言、不同的軟體框架、不同的協作開發模式,這會為團隊帶來各種新鮮的東西,增加個人與團體的技能豐富度,帶來正面積極的變化。
由於在線的產品或專案多半有既定要滿足的目標,通常無法承擔這種極度新的思維,因此 Side project 是個很適當的發揮機會,盡情嘗試,失敗了也無妨。
在 Side project 的開發過程中,累績的經驗可以進一步回饋到正式工作當中,這無疑是一種做中學,而且又賦予了更鮮明的目標,成員會有個產出標的要去努力。
軟體開發有個有趣的現象,要不是不太思考,寫完才砍掉重練,不然就是瘋狂思考,寸步難行。沒有人規範一個 Side project 的規模究竟要多大,它甚至可以是個簡短的小實驗,拿這個機會驗證了某個問題,留下實驗記錄,與大家分享,讓問題不再是空談。
從學習的角度上來看,做中學也是相當有意義的,軟體人可以思考一下,自己學習 Git 的歷程,難到只需要單純看文件學嗎?當然,這個動手要有效果,本身也不能是應付性質,總不能「跟世界打聲招呼」就結案吧?
Side project 無論成功與否,都會帶來價值,無論是過程中累積的經驗、嘗試過的錯誤,或是真的取得成果,讓它作用在生活與工作當中。
以我的經驗,最正向的成果回饋就是我們團隊針對開發過程中遇到的困難,開發出對應的工具,以自動化或半自動化的方式大幅加快了開發過程,至今我們很難想像,若少了這些工具,那工作的樣貌會是什麼樣子。
我會這樣描述 Side project,它可以提升成員的成就感、成員的自主權、增加經驗的回饋、讓新技術得以發展、有機會讓團隊運作更有效率,綜觀這些優勢,不難發現它背後帶來的「多贏」觀點,不只是成員本身,團隊、部門、企業也都可能因此受惠。
除了鼓勵團隊成員發起,也需要在制度方面有配套措施,讓成員可以安心參與。
例如:
在本文,Side project 終究是個名詞,如果您認為有件事情很有價值,值得以這種模式進行,那由您發起帶頭是更有意義的,如同前面提到的「動手」,去行動吧!
至於時間不足的問題,與面對的心態,可以參考昨天文章,要記得時間確實很容易不足,但我們如何投入與運用,都會產生不同的影響,眼光可以再放遠一點,別被短暫的障礙困住了。