跳到主要內容

當java程式設計工程師心得(外傳2-Team work)2014-滿5.5年

      從事程式設計工程師也好幾年了,合作過的程式工程師也很多人,那就再來發一篇我對於團隊合作的心得吧。

      一個研發團隊最理想的狀態就是可以互相支援對方對方60%~80%的工作,舉例說,有工程師A與工程師B,不論年資,只單純看能力,若是A對於B負責的功能或專案有80%的熟悉度,反之B對A也有80%,那好處就是當A突然有事請假,那專案進度並不會delay到,又或者業務臨時急件要拿B的專案去demo,那A可以馬上處理解決,這樣可以讓整個team給其他部門有好的印象,不會讓人有這部門怎麼什麼都不行的感覺,當你自己有自覺寫的程式不是代表自己,而是代表整個團隊時,那自己就要主動去跟團隊裡每個同事學一下技術,或了解相關進度,這絕對對自己有好處的(若是你想在短時間內有急速成長,並在多年後成為神(註1),就一定要這樣做)。

      雖然是理想,但在現實上要達成是有很大的難度的,我目前待的研發團隊正面臨這個難題,整個團隊也為了這件事開會討論過,當一個團隊出現了有人能力跟不上,甚至會造成對個團隊進度負成長(註2),團隊裡就會開始有不好的氣氛,會有人開始抱怨,每個人對於這種負成長根源解決方式不同,我是把android team的人都找出來,之後用引導對方式向那位上班不集中的工程師問他原因,問他為什麼一個功能只要1小時可以寫完,他需要花上1天,並且我也直接跟他表明目前這個團隊需要的是可以跟上進度,有能力學習、不拖累別人的強者,之後他也承認他上班時都在玩,沒有認真寫程式,當然最後也有請主管與他談,後來他向主管承諾會改善,但這問題並發只有一人,別的小組也有這情形,但那位工程師被主管約談之後,他自己也覺得拖累大家,當天就決定離職了。

      對於團隊合作,我目前所在的團隊討論了一個方式,大家之後會互相把專案功能切開,並把架構、UI、功能都分離,有人專負責架構,有人UI、有人功能,最終由1人整合,每個人都要有UI的基礎,這是基本的,剛進來不會的人就會先被分配去學做UI+流程,再由強的人去打主架構,然後大家都可以實作功能,功能有相同的可以集中成utility(註3),整合的人則是要對全部都很熟,要會寫架構、UI、功能、元件,才有能力進行整合並分配各工作,這樣的做法目標就是要讓每個人的能力都可以拉上來跟上團隊,讓團隊可以對專案的研發速度提升。

      最後下個結論吧,我目前負責整合專案,當然在這裡不止有我有能力整合,但我希望是整個隊團每個人都有能力整合,有這能力就算離開這裡到任何公司去,都可以很快融入團隊裡一起進行開發,並且享受身邊都是強者的感覺,會有種我懂共同的人想做什麼,不用說就知道他想要什麼樣的功能,別人也懂你想要什麼,或許這篇對於剛畢業的學生沒有太大感覺,但我可以說大部份學生在做專題的時候,多多少少都會需要找人合作,這時合作產生的感覺請記住,不管是好或壞,當你的能力提升之後,身邊也遇到了跟你一樣的強者,你就會了解了。


附註:

神(註1):這是我到新公司之後獲得的稱號"神",因為我什麼專案都可以寫,client、server都寫,ui特效 也寫,並可以在時辰內完成XD。

負成長(註2):這裡是指當一個小組的產出是 1(人) + 1(人) = 4(專案),此時又加入了弱或不認真的人,會變成1(人) + 1(人) + 1(人)= 1(專案),原因就是進來的人寫的慢,又寫的一堆問題,而另外2個人必須要去幫忙擦屁股。

utility(註3):把一些大家常用到的功能,例如網路、字串、系統資源取用等等程式集中到一個專案,在java這會打包成jar給大家用,而ios則會包成.a檔。 

留言

這個網誌中的熱門文章

當java程式設計工程師心得(15) 2022-滿14年

 現在是2022年最後一天最後一小時,blog也空了一年沒有撰寫了,來分享這2年我遇到的事情吧,在個人生活部份我完成幾件事情: 1. 2021年底時遇到了非常契合的聰明又漂亮的優秀的另一半。 2. 2022年初買了房子。 3. 2022年創了youtube頻道上傳吉他finger style影片。 4. 2021年開始試著用許多方式自學英文。 工作上也有些轉變及新的嘗試: 1. 2021年將入行多年使用的server、讀寫資料庫程式整理完後以open source方式發佈到maven。 2. 2021年開始參與公司GCP相關專案技術研究。 3. 2022年決定轉型當架構師。 上面每一項都能單獨寫一篇故事來分享給大家,上面每項的故事細節,之後我再回來補上吧 祝大家2023年新年快樂,以及幸福的與身邊的人開心過每一天

當java程式設計工程師心得(16) 2023-2週自學Golang

      距上次發文又超過半年的時間了,這次就來分享學習Golang吧,因應工作需求我要自學Golang,在這轉換過程約1個月的時間我從完全不會寫go、也不懂如何部署程式GCP上,到目前已經有初步成果寫成文章分享給大家,預計會分成3篇: 1. 我如何開始自學Golang? 2. 如何在學習GCP相關知識? 3. 如何從不懂CI/CD到規劃GitOps並在GCP上串接CI/CD? 這篇先分享第1點 我如何開始自學Golang?    我習慣做事會用 Sublime Text 做筆記,因此我初期先列出我要學的幾點 1.詢問很強的Golang大神朋友(很感謝Minchao給了我超多建議) 2.學習Golang的開發工具,我初期有用Visual Studio Code寫了hello world,後來IDE改用 Goland ,它真的太強大了      Visual Studio Code :          優點:免費          缺點:plugin要找適合自己的下載試用     Goland :         優點: 官方 有附詳細的附加功能使用說明,並且你想得到的通通都內建         缺點:試用只有30天,費用訂閱制,月付或年繳 3.了解基本型別、module、function宣告方式、常用package,例如string、array、File I/O等等…可以參考這篇 Golang roadmap 自學再加上網路搜尋大量的文章花1~2星期閱讀加上練習 4.學習 gin web framework 撰寫RESTful API(API文件可使用 Swagger )、 gorm 讀寫資料庫 5.單元測試(go test)、code format(go內建有)、code style、build執行檔相關工具或指令     有關code style其實可以參考 google官方 再加上 Uber go style 6.學習專案程式資料夾框架 project-layout    在學習過程我也發現學習Go千萬不要用JAVA的物件導向去學,反而要把JAVA的觀念拋開讓自己歸零去學習一種新的程式語言會更好吸收,也才不會讓自己觀念會卡住,Go本身的設計讓其彈性很大,對初學者建議掌握下列幾點: Struct Receiver Pointers 基本型別 容器&特

當java程式設計工程師心得(14) 2020-滿12年

今年我想分享兩件事 第一件事:       推薦最近看完的三本書的心得,書的內容對於想加強自身軟體開發能力以及朝架構師前進有些幫助 第一本 Code Complete 2: 有些章節適合project manager閱讀,可了解好的軟體開發集結的人、方法、工具,更推薦有2年以上開發經驗的軟體工程師閱讀,加強自身軟體開發觀念且功力大增,書裡寫了許多累積10年以上工程師經驗的做事方法 我個人覺得這書太晚讀到了,否則能少走好幾年的路,對我來說這本書裡提到90%以上都會了,但是這書還有一個功用,就是拿來用書裡提的數據打臉一些code亂寫的工程師🤣 第二本 無瑕的程式碼 書裡面提到許多設計原則,有些於軟體設計模式裡要應用,有些則是在系統架構上應用,也有用硬體面去套入原則,如果有碰系統架構也有寫軟體的工程師可以買來閱讀,這書能讓自己理清一些盲點。 第三本 Working Effectively with Legacy Code中文版:管理、修改、重構遺留程式碼的藝術 強烈推薦軟體工程師看這本書,內容講解如何對既有系統的code進行重構後可被測試,進而加新功能或提高程式的閱讀性及維護性,並且始終確保程式原功能不被破壞,書內介紹許多重構code高超技術,有讀有保佑,沒讀會出事🤣!裡面附的範例code為JAVA80%及C++20%,強力推薦大家閱讀來增強程式功力 第二件事:       我在google上搜尋"java吉他手"意外搜尋到一篇文章提到我,點進文章看原來是5年前曾來我網誌向我詢問過問題的網友寫的,我印象中有個網友向我詢問他想轉職相關的問題,最後我有給些建議,沒想到這位網友已經轉職且與我同行都是做後端,看文章內容也已經經歷了軟體業的洗禮了,在此一樣祝福他能工作更順利,朝自己的目標前進並加油努力,也對於還有這位網友記得我的網誌,我非常開心,我經營網誌撒出去的種子終於開花結果了(拉人入坑軟體業),哈哈哈。             最後聊聊今年心得,在工作上我也經歷了自身單內的部門對立、惡鬥、也曾深信一個人的人性,變成被這個人抺黑、我被拱成該部門共同敵人,對於這些事一開始會無法接受並讓自己陷入負面情緒狀態,慢慢的學會人要放下,不隨波逐流、也不被陷入對方的圈套或操弄而起舞,每個人進入這行追求的目標都不一樣: 有人追求薪水普通、工作不求質不求快、上班時上網網購