今天這篇是架構師大劉的系列故事
小W要離職了,大劉並沒有挽留,甚至有點慶幸。
小W離職的原因比較簡單,這次升職加薪,大劉提拔了和他同期進來,並且工作年限和他差不多的小L,而小W則是原地沒動,薪水也沒有加,他受不了,提出了離職。
小W就是典型的普信男,明明做的比小L差的很遠,卻又對自己是迷之自信。
他倆到公司已經快 2 年了,在這期間,小L和小W之間的差別越來越大,小L變得越來越優秀,而小W在工作期間卻問題不斷,沒有什么明顯的成長。
離職前,小W覺得還是不服氣,找大劉深談了下,大劉耐心的指出了他和小L的區別:
1. 代碼質量的區別
在大劉他們的 Bug 管理平台上,小W的 Bug 是一片一片的。有許多 Bug 的原因是代碼中方法計算返回的結果出現了錯誤,可引發這些錯誤的輸入值既不是極端值,也沒出現古怪的邊界條件,全是正常的業務參數。
這說明了什么?說明小W他偷懶不寫單元測試,甚至有的都自己沒去測試,等着別人幫他測。
而小L的代碼則非常健壯,Bug 平台里,小L的代碼 Bug 非常少。如果去看項目的 Git,發現小L的單元測試代碼非常的多,甚至遠遠超出了工程代碼。
2. 開發速度的區別
從項目管理平台上,可以看到大家的開發時間統計。相似的一個需求,小L需要的時間是小W的一半。
比如,上次項目需要新接兩個第三方渠道,小W和小L一人搞一個接口,參數相似,流程相似,小L花了 3 天,小W花了 5、6 天。
而且,后期接口出現變化,每次小W都要改個兩三天,而小L只需要半天一天。
究其原因,就是小W每次寫代碼特別不優雅,不靈活,有點變更就需要大改,並且還經常改出 Bug。
而小L從來都是把方案想透徹了才開始寫,還不斷的重構代碼,最終的代碼又靈活又優雅,有需求變更了,特別省事的就可以改好。
3. 思維嚴謹的區別
有一次,小W寫公眾平台的一個對外接口,寫完了拿出去測試,結果鬧了個大笑話。他寫的對外接口,連個驗證簽名也沒有。這事兒幸虧在內部測試的時候,被查了出來。不然直接放出去,整個團隊的專業性都要受到質疑。
而小L同樣寫一個接口,不僅考慮到了驗證簽名問題,他還考慮到了參數需要加一個時間戳,保證簽名不會被重復利用的問題。
4. 團隊合作的區別
打開他們項目的 Git,就看公共工具類,小W一行都沒有提交過。然后,隨意打開一部分代碼,那么多可以共用的代碼,小W從來沒有想過提出來形成工具去方便別人。只管着自己的那攤子事兒,寫完完事兒。什么代碼風格、復用、團隊合作全部扔在了一邊兒。
小L不一樣,不但會主動寫一些工具類,有時候還會弄出一些小框架,減少別人的開發量。
5. 對業務理解的區別
需求會上,小W基本就沒認真參與過,也很少去和產品經理主動溝通分析需求。當開始寫代碼了,小W要么實現出現偏差,要么就出現了遺漏。
有個權限管理的需求,大劉本來想小W個機會,希望他能把這個做好,所以讓他負責。
結果是,這個功能,權限配置甚至連個后台都沒有,業務都沒地方配置權限。就這樣,小W還非說功能實現完了,還和產品們爭吵了起來。最后結果就是被啪啪打臉,人家產品的原型圖和需求文檔說的很明白,而且還連續開了好幾次需求分析會,大家都理解了,就小W出現了問題。
而小L則是非常重視業務需求,會寫出一些文檔,並勾畫出設計實現去拉產品核對。如果出現了疑難問題,會同時叫上產品、運營開碰頭會,並確保大家形成共識后,開始執行。
小W失敗的權限管理開發,小L接手了。他畫了角色和權限的關系圖,然后全部和產品一一過了一遍。確認后,發郵件形成共識,然后開發。一切順利。
6. 工作態度的區別
要知道,產品雖然經常惹技術討厭,但是,大家都是普通人,自然也有想不到的地方。一般來說,小L和產品配合,產品想不到的地方,小L都會積極去溝通,查漏補缺。但是,到小W這里,事情往往推不下去。
曾經有個功能,產品的需求是想在商戶信息出現變動的時候,能通知到公司其他部門的系統。要通知到其他系統,就得先對接公司統一的公共消息系統。
這事兒,小W直接給產品說“對接很麻煩,對方不配合”。雖然有時候跨部門配合是有難度,但是也不能因為這理由就把事情一直拖着。一直到大劉來問進度,才發現根本沒做。
把事兒交給小L后,人家第一時間去和產品解釋了原因和面臨的問題,然后開會協調了一個新的上線時間,把對接公共消息系統的工作量也進行了排期。
再往后,小L又把工位臨時搬到負責公共消息系統的團隊那里,在那里就地開發。此事妥善解決。
7. 解決問題能力的區別
同屬一個技術團隊,小W遇到難題,就去鑽牛角尖,一個技術難題,能摳一周,結果別的工作也全部耽誤了。
曾經,小W遇到過一個輸出數據無序的問題,然后,他當時調試,怎么也找不到問題所在。就這個,墨跡了一周,后來是小L主動問他咋回事,才知道他遇到的問題。團隊里幾個人一起幫他排查了問題,兩個小時解決。而他手頭的工作卻已經耽誤了一周。
而小L則是遇到技術問題,首先是自己努力去解決。如果發現自己解決不了,又要進度延誤的風險,他會立即積極求助,問團隊高手,問技術領導,總之想辦法盡快解決,好進入到工作的下一步。
說完以上幾點后,不管小W是不是認同,大劉還是希望小W以后能發展的越來越好,又說道:
要知道,程序員的官方稱謂是工程師,而工程師是做工程的。在特定的時間內完成高質量的工作才能是合格的工程。能按時高質的輸出工程量,才是合格的高級工程師。
而對於小L,大劉想再看他一年的表現,如果依然表現優秀,大劉決定再給他加一次薪,優秀的工程師必須盡全力挽留下來。
你好,我是四猿外。
一家上市公司的技術總監,管理的技術團隊一百余人。
我從一名非計算機專業的畢業生,轉行到程序員,一路打拼,一路成長。
我會把自己的成長故事寫成文章,把枯燥的技術文章寫成故事。
歡迎關注我的公眾號,關注后可以領取高並發、算法學習資料。