傳統(tǒng)軟件行業(yè)中技術(shù)團隊的發(fā)展(團隊破局篇)

認(rèn)清它,承認(rèn)它,然后改變它。

1. 前言

在上一篇 傳統(tǒng)軟件行業(yè)中技術(shù)團隊的發(fā)展(現(xiàn)狀篇) 中,我們介紹了傳統(tǒng)軟件行業(yè)公司中技術(shù)團隊的形成淵源,以及特點。

本篇在上一篇的基礎(chǔ)上,嘗試探索傳統(tǒng)軟件行業(yè)公司中,技術(shù)團隊如何破局,遏止住團隊下滑趨勢。

2. 先說結(jié)論

本篇我們反轉(zhuǎn)敘述順序,先說結(jié)論,再解釋其中的細節(jié)。

至于原因嘛?主要考慮到現(xiàn)在很少有人會從頭到尾地將一篇文章看完,但我又特別希望這篇文章的關(guān)鍵信息能夠被潛在受眾看到。

對于傳統(tǒng)軟件行業(yè)中的技術(shù)團隊發(fā)展,我們需要立足于公司實際情況,建立完善的快速人才培養(yǎng)體系,以及科學(xué)高效的工作流程,以不斷降低的培訓(xùn)成本和不斷完善的協(xié)作流程,化被動為主動,助推公司的業(yè)務(wù)發(fā)展,實現(xiàn)技術(shù)與業(yè)務(wù)的相互驅(qū)動。

以上,就是我們個人思考總結(jié)出來的,傳統(tǒng)軟件行業(yè)中技術(shù)團隊實現(xiàn)良好發(fā)展的一條破局之路。

思路其實不難,稍微觀察過一段時間,說出其中的一兩點其實很簡單,所以重點還是方法論 —— 如何實施?

接下來就讓我們逐一解釋,尤其是其中被顯式標(biāo)注的三句話。

3. 完善的快速人才培養(yǎng)體系

“一切問題,最終看來都是人的問題”。在軟件開發(fā)這種人類腦力勞動占據(jù)主要比例的人類活動中,尤其顯得明顯。

前文已經(jīng)提到的,傳統(tǒng)軟件行業(yè)公司對于技術(shù)的要求不高,相較于技術(shù)創(chuàng)新對于業(yè)務(wù)的支撐,如何實現(xiàn)對常見問題解決方案的快速復(fù)用,快速組合來進一步解決各類新的業(yè)務(wù)需求問題,才是公司所看重的。

而要實現(xiàn)技術(shù)解決方案的低成本快速復(fù)用:

  1. 首先當(dāng)然是要有這樣的解決方案的歸納,收集和整理的執(zhí)行者;
  2. 然后就是更重要的,如何讓這些解決方案能夠以不斷降低的成本,更快的速度傳遞給團隊內(nèi)的技術(shù)人員知曉,避免他們的重復(fù)創(chuàng)造。

關(guān)于第一點,不是本小節(jié)的重心,這一點是每個技術(shù)人員的追求,只要引導(dǎo)得當(dāng),很容易找到能夠承擔(dān)這項職責(zé)的技術(shù)人員。(畢竟稍微有點技術(shù)追求的研發(fā)人員都會有一個自己的工具集,里面放著過往遇到問題的快速解決方案)

第二點則是本小節(jié)所要討論 —— 通過建立完善的快速人才培養(yǎng)體系,實現(xiàn)技術(shù)解決方案的低成本復(fù)用。

3.1 初中高級人才的定義

以上面這一條為中心點,我們需要重新明確對于初中高級人才的定義。

層級 主要職責(zé) 工作內(nèi)容
初級 完成單一業(yè)務(wù)功能開發(fā) 1. 學(xué)習(xí)公司的技術(shù)棧體系,知曉公司針對不同的業(yè)務(wù)場景下沉淀的各類技術(shù)解決方案。
2. 將理解的業(yè)務(wù)需求,使用前面學(xué)習(xí)的技術(shù)解決方案,以類似搭積木的方式轉(zhuǎn)換為代碼。
中級 項目技術(shù)負(fù)責(zé)人 獨立承擔(dān)一個產(chǎn)品或項目的技術(shù)負(fù)責(zé)人,帶領(lǐng)初級研發(fā)人員,與產(chǎn)品/項目經(jīng)理協(xié)作,保質(zhì)保量完成研發(fā)工作。
高級 技術(shù)解決方案收集沉淀和普及,流程完善 本文所設(shè)想體系下的關(guān)鍵。他們是經(jīng)過考驗,有專業(yè)性,主動性,行動力的一批人。他們的主要工作是對團隊技術(shù)棧進行迭代,實現(xiàn)開發(fā)效率的穩(wěn)步提升;做好技術(shù)棧的培訓(xùn)方案并實施;收集各類業(yè)務(wù)場景下的解決方案,沉淀之后并推廣下去;觀察找出現(xiàn)有研發(fā)協(xié)作流程的效率桎梏點,提出改進方案并落地實施。

3.2 人才定義再細化

以上三個級別又可以細分為初中高。這樣就可以進一步覆蓋實際環(huán)境。

  1. 對于招聘來的人員,因為其對于公司技術(shù)棧和現(xiàn)有業(yè)務(wù)場景解決方案不熟悉,所以一律以當(dāng)前級別的初級起步;待試用期結(jié)束時再根據(jù)其對于公司技術(shù)棧的熟悉程度來確定對應(yīng)的級別。
  2. 進一步細分也可以讓我們更靈活應(yīng)對熬年限所帶來的評級困境——你做再多的項目,如果你無法培養(yǎng)出能夠接替你工作的人,如果你每次都必須通過手把手,口傳心授的方式,以極高的成本才能培養(yǎng)出一個能夠接替你當(dāng)前職責(zé)的人,那你就永遠在中級待著吧。

3.3 中高級的分水嶺

誠如上面已經(jīng)提及的,在傳統(tǒng)軟件公司,中高級的重要分水嶺,不會是技術(shù)深度這類的硬實力,而是能夠?qū)⒆陨淼募夹g(shù)能力以低成本復(fù)制出去的能力。

作為一個在傳統(tǒng)軟件多年,一直吃技術(shù)這碗飯的職員,多年的觀察下來,讓我一直有一個疑問:"為什么我們會有這么多’技術(shù)類問題‘?"

這么多年走過來,雖然筆者限于自身原因,一直在迭代自身的技術(shù)體系,但就實際工作中使用到的技術(shù),八成卻都是筆者在進入這行頭一兩年所知曉的那些內(nèi)容。

這么多年項目下來,絕大部分時候的技術(shù)問題往往不是因為深度不夠?qū)е聼o法解決造成的業(yè)務(wù)延期;而恰恰是因為一線研發(fā)人員的精力被投入到了重復(fù)性的問題解決上 。

這里我們先不談那些流程上的問題導(dǎo)致的重復(fù)工作,我們先單單討論常見問題的解決方案,總是A團隊某個人率先遇到,可能因為當(dāng)事人技術(shù)能力強一些,然后不聲不響地自己解決了,交差了事。過了幾天,團隊里的另外一個人也遇到了類似的問題,他自己換了種方式又解決了一次,并且因為能力上的差距,其所消耗的時長更多,而且因為原本業(yè)務(wù)壓力就大,加上前面在技術(shù)預(yù)演上消耗了較多時間,那接下來就別扯什么長遠的設(shè)計,代碼可讀性了,趕緊把需求趕完的吧。

之后團隊經(jīng)歷了數(shù)次人員迭代,類似的情況不斷上演,所以對于一些時間稍長的項目,你會發(fā)現(xiàn)其中簡直是技術(shù)大雜燴,開源組件集中營,同一類問題,有多種不同的開源組件被集成進來。

同一個小組團隊尚且會出現(xiàn)上述問題,當(dāng)范圍擴大到整個部門,以上情況只會愈演愈烈,超出任何個人的控制范圍。

能夠意識到上面這個問題,并且愿意為之付出行動謀求改變,這就是傳統(tǒng)軟件公司中,中級晉升為高級的關(guān)鍵所在。

不需要先達到終點,只需要你走在了路上,你就已經(jīng)是事實上的高級人才。

3.4 既要TA待遇要求低,又要TA十項全能,想啥呢?

雖然嘴上承認(rèn)“既想馬跑得快,又想馬兒吃得少”不現(xiàn)實,但不少傳統(tǒng)軟件公司的領(lǐng)導(dǎo)層身體倒是誠實得很,恨不得招聘來的每個人都是十項全能,而給出的待遇卻始終在低位徘徊,美其名曰“物美價廉”。

哪那么多的物美價廉,你這企業(yè)是有著美名在外,讓業(yè)內(nèi)新人趨之若鶩嗎? 正是因為數(shù)量少,所以才有“漏網(wǎng)之魚”的說法。

人員數(shù)量,人員質(zhì)量,人員成本的不可能三角,這一客觀規(guī)律,不論你口號喊得多響亮,打進去多少雞血,它只會在那冷冷地看著你,看著你摔倒一次又一次,最終或者知道疼了被迫正視它,或者你帶著不甘走向墓地。

想要破除不斷增長的人力成本困境,除了完善的人才培養(yǎng)體系外,流程則是最大的依憑。

4. 科學(xué)高效的工作流程

正式開始前,先讓我引用一下我在去年閱讀過的一篇獲益匪淺的極客時間專欄- 《10x程序員工作法》 里的一段話:

程序員解決的問題,大多不是程序問題。


軟件行業(yè)里有一本名著叫《人月神話》,其中提到兩個非常重要的概念:本質(zhì)復(fù)雜度(Essential Complexity)和偶然復(fù)雜度(Accident Complexity)。

簡單來說:

  1. 本質(zhì)復(fù)雜度就是解決一個問題時,無論怎么做都必須要做的事,
  2. 而偶然復(fù)雜度是因為選用的做事方法不當(dāng),而導(dǎo)致要多做的事。

比如你要做一個網(wǎng)站,網(wǎng)站的內(nèi)容是你無論如何都要寫的,這就是“本質(zhì)復(fù)雜度”。而如果今天你還在用匯編寫一個網(wǎng)站,效率是不可能高起來的,因為你選錯了工具。這類選錯方法或工具而引發(fā)的問題就是“偶然復(fù)雜度”。
再比如類似打包,發(fā)布,配置管理這種事情本來應(yīng)該用自動化和不斷優(yōu)化的流程來完成,但現(xiàn)在卻因為大量依賴于人工操作來執(zhí)行,導(dǎo)致各種"抄近路"橫行,最終造成溝通成本居高不下,大量的精力被浪費在無盡的扯皮上,留給真正需要關(guān)心的業(yè)務(wù)實現(xiàn)上的精力捉襟見肘;那么項目延期,加班等等情況的發(fā)生也就不足為奇了。

上一篇文章中已經(jīng)總結(jié)了,天然形成的工作協(xié)作方式中勢必存在大量的抄近路人工操作,導(dǎo)致所謂的流程對人的倚賴非常重,尤其是在部分關(guān)鍵節(jié)點上,甚至可以直接癱瘓整個流程。

我們需要重構(gòu)當(dāng)下這過分依賴人治的工作流程,改變當(dāng)下人推著流程走的模式,最終實現(xiàn)流程推著人走的新工作流程。

而且,正如上文已經(jīng)論述的,傳統(tǒng)軟件公司涉及到的大部分技術(shù)問題特點也決定了自身更需要在流程上下功夫,找出突破口。

4.1 流程可以降低對人的依賴

科學(xué)高效的工作流程,最大的特點就是最大限度地降低對人的依賴,保住產(chǎn)品的下限。

“人決定產(chǎn)品的上限,而流程決定產(chǎn)品的下限"。過往我們將最終交付物的質(zhì)量基本完全寄托在當(dāng)事人的責(zé)任心和職業(yè)技能成熟度上,這種無奈的根源恰恰是因為我們的整個流程都是倚靠人治建立起來的。

科學(xué)高效的工作流程,將過往被關(guān)鍵節(jié)點所掌握的流程信息和操作固化到流程中,將原本飄忽不定的審核標(biāo)準(zhǔn)公開明確,借助機器鐵面無私的規(guī)范執(zhí)行特點,以及一絲不茍,不打折扣的工作態(tài)度,顯著降低流程執(zhí)行過程的溝通交流成本,減少關(guān)鍵節(jié)點數(shù)量,降低對于流程節(jié)點人員的要求。

4.2 流程可以不斷進化

相較于流程而言,人的能力提升之后,一來你要擔(dān)心他是否有二心,二來你這也得打鼓"老虎也有打盹的時候"??傊?,人是最大的變數(shù)來源。

而對于流程你完全沒有這些擔(dān)心,忠誠不二,一絲不茍地執(zhí)行指令外,我們對于流程的優(yōu)化會進入 —— 發(fā)現(xiàn)問題,優(yōu)化流程,再發(fā)現(xiàn)新問題,再優(yōu)化流程的正向循環(huán)里面。

最終的效果是流程越來越智能,最終的目標(biāo):“人解決問題,流程負(fù)責(zé)執(zhí)行解決方案”。

4.3 流程可以讓人員精力集中

關(guān)于這一點,直接舉個例子就清楚了。

當(dāng)下的項目團隊里,為什么很多時候技術(shù)負(fù)責(zé)人忙成狗,卻又不讓新人上手,還不是因為當(dāng)下流程里完全沒有度量系統(tǒng),沒有門禁,沒有檢查??蛻艟褪俏覀兊臏y試人員,測試周期長,反饋慢,可不得事事都自己上放心嗎? 萬一中間出點啥問題來回溝通更費勁。

通過設(shè)置層層檢查關(guān)卡,將問題盡量消除在引入階段,除了大幅降低錯誤修復(fù)成本外,也使得中高研發(fā)人員可以放心地將一些低級任務(wù)交給初級人員練手,一來可以減輕中高級人員的壓力,集中精力到更有價值的事情上,二來也是對于初級人員的鍛煉,讓他們快速成長起來,從而讓團隊進行良性發(fā)展迭代之下。

5. 立足于公司實際情況

這一點可以算是前兩者的基礎(chǔ)了,再精煉一下其實就是教員的那句"實事求是"。

那么實際是什么?

  1. 人員技術(shù)能力差, 主觀意愿也不高,"just a work" 是常態(tài)。
  2. 公司業(yè)務(wù)特點決定了,相較于技術(shù)深度,公司更看中技術(shù)的可復(fù)制性,技術(shù)方案的快速性。

所有的一切改變,都必須以上面這些"實際"作為前提。

面對現(xiàn)實是解決問題的開始。

“能力太差”,“責(zé)任心太弱”;寄希望于這種短期內(nèi)不見效的變化來改變自己的境遇,甚至就是以此來解釋這件事情,很多事情都沒做好的原因。

這些理由錯了嗎? 沒有。

但是你要的是什么?是解決問題?還是證明問題不是“我”導(dǎo)致的,與我無關(guān)?

6. 最后

本系列文章所描述的問題,屬于一個非常大的課題,一個只能無限接近,卻始終無法真正解決的問題,業(yè)界一直在為此努力。

這個問題的解決方案,是需要個人和公司共同努力才能實現(xiàn)的。

在這個過程中,成為參與者甚至是主導(dǎo)者,讓這個小世界按照你的意愿去發(fā)生你所希望的改變;還是作為冷眼旁觀的看客,最終只會是取決于你自己。

合作是共同選擇的結(jié)果,我們一直期望有更多的人走過來。

7. 作者其人

跌跌撞撞直到而立之年,才開悟如何才能追尋到心中的目標(biāo)。

曾經(jīng)也是憤世嫉俗:”我私下研究了這么久的技術(shù),為什么生活得還是這么慘,待遇還是這么差“,"為什么沒有伯樂慧眼識英才?”。最終被迫認(rèn)清:機會很難得,別人沒有義務(wù)和意愿給你。 信任是一件很稀缺的東西。

也不曾有過這樣的熱情

在阿朱的會上,我問了他一個問題:為什么明明知道企業(yè)應(yīng)用軟件行業(yè)的利潤率不高,還是會選擇做這個行業(yè)?

他說:“的確如此,金山的雷軍也這么說,這個行業(yè)會有發(fā)展的瓶頸。但是,他仍然相信,傳統(tǒng)的產(chǎn)業(yè)機會巨大,信息技術(shù)的創(chuàng)新只要應(yīng)用進去,哪怕只有一點點,帶來的改變和機遇都是巨大的。所以,他愿意做這樣的努力來看到這件事情的發(fā)生”。

我佩服這樣有理想的人。

筆者本人呢,只是一個報復(fù)心比較強,對于沉淪時期的種種遭遇耿耿于懷的俗人。

只是因為不甘心過于平庸,被迫面對現(xiàn)實,在一個不高的起點,思考如何切實有效地解決眼前的困境,以讓自己已經(jīng)足夠糟糕的生活能夠出現(xiàn)轉(zhuǎn)機。

8. 參考

  1. 《走出軟件作坊》讀后感
  2. 微軟老將 Philip Su 的離職信:回首 12 年職場生涯
  3. “能夠高效地自我復(fù)制”是傳統(tǒng)軟件行業(yè)公司中高級人才認(rèn)定的關(guān)鍵
  4. 中華田園式敏捷開發(fā)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容