2020 回顧
2020 年嘅變化比較大,又岩岩轉左工一年。做返個retrospective 記得D learning。與其話係2021 回顧,倒不如話係新工一周年回顧。
文化方面
Culture is like water to fish swim in
之前果幾間公司都好注重engineering culture,加上自己都睇過唔少關於engineering culture嘅文,當中都包括top tier tech companies嘅分享。我以為自己對何謂好嘅engineering culture都好了解,實行上應該都冇咩問題。但係轉左新環境之後,先發現自己係好多細節位,都不知不覺俾自己成長嘅環境文化影響,有好多位可以改善。
文化就好似水對魚黎講咁,習慣就好難察覺。真係到轉左環境,淡水變咸水,親身感受過先知。
Open communication
Open communication係一個好嘅engineering culture,咁先可以有效揾出問題所在,持續改善。我自認溝通上都算做得足同夠透明,但係Manager俾我嘅feedback係開會太靜,需要改善,要俾多D意見。個feedback 對我黎講係幾surprise,咁我讚成大家得出嘅結論,而且我又冇咩更好嘅idea,咁我仲有咩需要講?
E一點可能係出於自己本身嘅文化,D野唔係咁重要,例如一D比較minor嘅意見,就唔洗提出。而新公司喺開會黎講,比起效率更注重每個人嘅意見,寜願花多D時間,都要確保每個人係in sync。
利用流程去支持open communication,去到真係鼓勵每個member提出個人意見,成個concept係有一個差距。
Should not be afraid to disagree
另一個令我surprise嘅feedback係“Should not be afraid to disagree”。我自認都算多反對意見,而且都反對得好直接。E度D反對意見係語氣上差唔多去到嗌交咁(online meeting 睇唔到樣),但係傾完之後又冇咩野,真係對事不對人。
其實成件事係幾好,唔洗下下轉彎抹角,其他人比較容易理解你嘅opinion,可以focus喺解決問題上。但實際參與上黎,都需要時間適應。
Management style
平日嘅工作好多時都需要manager嘅參與,但好多時嘅感覺manager唔係條team嘅一部份,而係top-down咁管理條team。
新工嘅分工同management都差唔多,但個感覺好唔同。Manager 成日講 “Don’t hesitate to utilize me”。其實好多task都係要靠manager去處理,但係唔會用“utilize” E 個concept。成個management style係比較扁平,manager 都係團隊嘅一員,同其他人冇咩分別。
培養團隊文化
其實新公司嘅workflow 同 process 同我以往經歷嘅係差唔多,但係執行出黎嘅效果好唔同。之前我以為只要設計好規則,就可以解決到團隊嘅問題。
但實際上,所有野都係靠「人」去執行,成個工作流程都離唔開人嘅因素。成個團隊嘅成敗,好取決於成員對規則流程嘅態度同理解,係一D抽象嘅團隊文化。
而培養團隊文化係一件好難嘅事。好以上文提及,好多細節位唔經歷感受過係唔會知道,唔係靠推行D policy 或上幾個training就學到。如果請返黎嘅人嘅mindset 差太多,或條team嘅turn over rate太高,都培養唔到團隊文化。團隊文化係要時間浸出黎。
工作方面
基本功嘅重要
大公司有自己嘅tech ecosystem,好多平時用開嘅framework, tool 同 service 都冇得用,要由零開始pick up internal tool 同 workflow。
能夠快速上手嘅關鍵唔在於掌握幾多流行嘅技術,除非你條team係針對開發某種特定嘅technology。對基礎知識同development methodology 嘅理解反而比較有幫助。
推動使用新技術唔係冇可能,但要有充份嘅理由去說服條team。說服其他人除左對新技術有深入嘅了解,要有好嘅溝通能力,可以ramp up其他冇相關經驗嘅teammate。E D野冇好嘅基本功係好難做到。
Business logic 其實冇咩技術成份
我果team主要係做business feature。日常嘅工作都係focus喺解決business problem。因為公司有專門嘅team去maintain D internal tool 同 service,D technical problem一早俾人解決左。好多時tech嘅onboarding都好順利,睇完doc,跟住用就得。
工作嘅時間花係釐清business requirement,明白現有嘅system點樣運作。好多時嘅code changes唔係太多,technical嘅hard knowledge幫助唔大,反而係邏輯能力,能夠有條理咁break down同分析問題,E D 比較soft嘅skills幫助更大。
何為溝通能力?
由於上一段提及嘅工作內容嘅改變,同埋D project主要係改其他team own嘅service。變得需要花好多時間溝通,無論係開會定email communication。好嘅溝通能力喺E個環境變得更加重要。
好嘅溝通能力唔係指修辭技巧,語言能力,而係整理同簡化資訊嘅能力。因為當一個問題複雜嘅時候,會牽涉好多唔同嘅parties,唔係每個人都有full context,下下由零開始解釋會花好多時間。針對唔同嘅聽眾,要有適當嘅簡化同break down,令到個討論有focus,先可能得到結論去push forward。
寧願over-communication都唔好under-communication
須然溝通好花時間,但千祈唔好覺得係浪費時間,溝通都係工作嘅一部份。特別係個system或project 複雜嘅時候,對requirement理解嘅錯誤帶黎嘅成本,大過溝通成本好多。
特別當你用online meeting,同work from home或remote team嘅同事合作,溝通上好易有誤解,寧願over-communication都唔好under-communication。
Project scoping is also a project
返左新工一段時間,發現自己一直忽略左project scoping。之前好多時候個timeline 都係由PM或manager大約俾,冇做過D咩technical scope。反正個timeline都唔會準,我通常冇花時間去plan timeline同仔細咁了解個tech solution,打算邊做邊諗。好多時一有surprise就會delay。
E個其實係個盲點,因為慣左estimation唔準,就算成個workflow有問題,都冇諗住改善。係經歷過新公司個workflow,先知道成件事可以改善,estimation唔係一D可以偷懶嘅野。
E家個workflow,係engineer要先做project scoping,project scoping需要去了解其project 所有相關嘅system,同有關嘅host team開會,做onboarding。成個project scoping 可以用幾個星期。如果個feature 複雜,project scoping 本身都可以係一個獨立嘅project。
Project scoping 喺複雜嘅系統,有好大嘅幫助。完成左scoping之後,基本上已經了解曬成個solution點做,有曬清晰計劃,只係差在未實行。E個時候已經可以開始處理之前預計唔到嘅surprise,例如project coupling。如果做到一半先發現有project coupling,之前嘅implementation可能唔可以重用,成個solution可能要重新plan過,會浪費左唔少時間。
當然,總會有D surprise 唔去到implementation係唔會發現到,但係成個流程令到個planning比較準確,對manager 及business partner黎講比較透明。成條team易D sync up,個溝通暢順好多。
總結
E一年嘅insight主要喺soft skill上,technical 上冇咩特別嘅進步。今年其實都學左唔少internal tool 同 service,但其實同以往用過嘅野大同小異,只要花時間就可以pick up,冇咩突破。不過成件事都幾正常,因為條team係做business feature,除非係做一D特定嘅tech product,否則一般嘅基本功都夠用。