正式進入新團隊至今已有一個多月的時間禁筏,習(xí)慣性回顧這段時間的工作交付雄嚣,收獲頗豐:
1. 一個從對scrum陌生媒楼,到具備scrum基礎(chǔ)的團隊:
- 用戶故事是 開發(fā)團隊寫
- 驗收標準是 開發(fā)團隊寫
- 計劃也是開發(fā)團隊出
- 自動化單元測試是 開發(fā)團隊做
- CI/CD pipeline 是 開發(fā)團隊做
- TDD 持續(xù)重構(gòu) 也在堅持踐行
開發(fā)團隊里面沒有人跳出來說哥纫,這樣不行擎颖,那樣不做,反而是蔓钟,"我"如何能做到更好永票,如何提升能力
但是,聲明一點滥沫,這個團隊還不能稱之正式進入 Scrum 的世界侣集,還在門口。
P.O. 是個虛擬出來的人兰绣,所以不用challenge產(chǎn)品規(guī)劃如何如何世分,能否賺錢如何如何,這是這個階段團隊解決不了的事情缀辩。
2. 養(yǎng)成團隊正向的認知和三觀
1). 遵循工程師文化
- A. 永遠嘗試通過技術(shù)的手段解決管理的問題臭埋;
- B. 誰牛(技術(shù)踪央,思想,方法等)聽誰的瓢阴;
- C. 自己的狗糧自己吃畅蹂;(EAT OWN SHIT).
2). 保持對技術(shù)的追求和好奇心
不要去否認任何自己不清楚的東西,對于新的荣恐、不明白的液斜,反應(yīng)應(yīng)當是 “cool,這是怎么做到的叠穆?我該如何才能也可以做到少漆?需要學(xué)習(xí)什么?
而不是 臥槽, 這不可能,做不到
我們現(xiàn)在做不到的事情硼被,不代表全世界沒人能做到示损。往往是因為我們的認知、知識嚷硫、能力沒有cover到检访,
3. 一個還不夠完善的可持續(xù)擴展、可持續(xù)重構(gòu)演進的高性價比框架
進入團隊時论巍,項目已經(jīng)進行了幾個月了烛谊,依然是熟悉的配方风响,Spring Boot + 一堆拼湊的模塊與服務(wù)嘉汰,為了微服務(wù)而微服務(wù),形成一個強耦合状勤、僵化易脆鞋怀、且效率低下的框架,幾乎接近于代碼堆砌持搜。
這種情況并不少見密似,這個是大多數(shù)java系給我的不好體驗。歡迎來打臉葫盼,show出你好的架構(gòu)和代碼給我學(xué)習(xí)残腌。
一開始,我沒想改變框架贫导,因為換語言換框架抛猫,團隊未必接受。尊重團隊的選擇孩灯,很重要闺金。
(我曾經(jīng)在Z公司,告訴大家說我們想用 Ruby 代替 PHP 開發(fā)核心架構(gòu)峰档,結(jié)果就有幾個PHP明確告訴我败匹,換語言他們就不干了寨昙,差點收不了場。但是最終掀亩,我們只需兩個ruby開發(fā)人員舔哪,一個我一個初學(xué)者,就完成了 CoreAPI 與 OpenAPI的工作归榕,上線后跑出來的數(shù)據(jù)說明一切)
我只是在一開始尸红,嘗試他們正在做的東西,用 Elixir + TDD的方式實現(xiàn)給大家看刹泄,并且把每一個分解的盡可能細外里,先寫自動化測試用例,再寫實現(xiàn)代碼特石,再根據(jù)需要重構(gòu)代碼盅蝗。每一步都把痕跡(commit)留下,清晰的展示給團隊姆蘸。
團隊也一直在看墩莫,一個星期后,他們提出逞敷,能否用Elixir來重寫整個應(yīng)用狂秦?
在跟所有人分析這樣做的代價與成本和未來收益后,一致同意轉(zhuǎn)Elixir推捐。
而我裂问,則7x16的用了將近一個月的時間,通過TDD的方式把整個架構(gòu)搭建起來牛柒,并且把系統(tǒng)容器化堪簿,全自動的持續(xù)集成與持續(xù)部署。
在這個基礎(chǔ)上皮壁,我可以放心的讓這個非常junior團隊椭更,學(xué)習(xí)TDD方式實現(xiàn)功能。
因為蛾魄,只要通得過自動化測試的虑瀑,質(zhì)量爛不下去;
只要通得過自動化代碼檢查的滴须,代碼爛不下去舌狗。
為何選用Elixir,而不是JAVA PHP
許多人會challenge: 為何不用 JAVA PHP 這類大路貨描馅,而選擇 Elixir 如此小眾的語言 (Ruby已經(jīng)夠小眾了把夸,Elixir比之更小眾)?
我的回答是铭污,成本與性價比最大化恋日。
成本 當前膀篮,一個能用TDD方式進行開發(fā)的JAVA程序員月薪是多少?
太多copy-paste黨岂膳,又貴水平又弱誓竿。
在相同成本情況下,我能讓Elixir的程序員產(chǎn)生兩到三倍以上與JAVA程序員的有效交付(同等質(zhì)量)谈截。想了解更多的筷屡,歡迎交流。
性價比最大化
性價比 = (產(chǎn)出 / 成本)
性價比最大化簸喂,通潮兴溃可以用以下三種方式獲得:
- 成本最小化,通過不斷的壓縮成本喻鳄,把分母變小扼倘。
- 產(chǎn)出最大化之加班,通過延長工作時間(不斷加班再加班)來獲得更多的產(chǎn)出除呵。
- 產(chǎn)出最大化之提升單位時間產(chǎn)出再菊,通過提升團隊的能力,令到團隊在同等單位時間有更多的產(chǎn)出颜曾。
前面兩者纠拔,簡單直接粗暴見效快,最最重要的是有這很高的可操作性泛豪,因此也成了眾多公司的銀彈稠诲、不二法寶。
最后者候址,操作難度非常大吕粹,時間周期長种柑,還需要有合適的指導(dǎo)教練(老司機)岗仑,這也是為何敢選擇這條路的公司比較少。
我一直認同一句話聚请,如果一個團隊的產(chǎn)出垃圾荠雕,
成本最小化,產(chǎn)出就更垃圾驶赏;
通過加班最大化產(chǎn)出炸卑,就是在用更快的速度產(chǎn)生更多的垃圾。
最后玩死項目坑死公司煤傍。
任何交付的改進盖文,其根源都來自于團隊能力的提升。
管理蚯姆、過程五续、質(zhì)量保證這些都只是輔助左右洒敏。
下面的圖,很貼切那些裸奔型團隊:
展望
每一個事物猶如硬幣的兩面疙驾,有優(yōu)點也有弊端凶伙。
我們在享受一項新技術(shù)(Elixir)和Scrum敏捷帶來的巨大好處、收益最大化的同時它碎,
也需要面臨風險最大化的問題函荣,國內(nèi)市場上Elixir程序員極其稀缺,同樣市場崗位供給少扳肛,愿意轉(zhuǎn)用Elixir的程序員也就少傻挂。
因此,享受紅利的同時挖息,也就需要肩負起相應(yīng)的責任:
布道Scrum踊谋。
布道Elixir,提供更多的崗位旋讹,力所能及的回饋社區(qū)殖蚕,共創(chuàng)生態(tài)。
事情一多沉迹,才發(fā)現(xiàn)這篇總結(jié)寫了一個多月放在那里都沒發(fā)出來睦疫,拖延癥嚴重。
標題也不想改了鞭呕,后續(xù)還有打臉的事情發(fā)生蛤育,有空再分享吧。