為什麼「流行度」是選擇技術方案的必要因素?

2021-08-28 19:01:38 字數 2002 閱讀 3840

做技術管理的人都會面臨技術方案的選擇問題。總的來說,我們是在選擇「最適合」的技術方案,但是什麼是最適合,卻很難給出乙個十分明確的定義。

一般來說,我們會考慮以下幾個方面:

1、交付的質量

即是否能夠滿足對專案或產品交付物的需求,換句話說,是否能達到交付物的起碼的質量要求。

2、交付的速度

也就是說,能否按時交付。

3、生命週期成本

這個聽起來就有點玄乎了。實際上這個說法的內涵遠比表面看起來要來得複雜。乙個交付物在現實生活中往往不會是一次交付便與開發者脫離管理,後續的維護和公升級同樣要耗費各項成本。以軟體系統為例,可以實現快速交付的技術方案和架構,可能會對未來潛在公升級造成障礙。而對具體能產生多少障礙,才是我們做決策時候判斷的難點。之所以是難點,是因為幾乎一切論據都要基於假設和判斷,而很難或者根本沒有太多鐵一般的事實來作為支撐。這種資訊部完全情況下的判斷是否做的好,實際上正式區分乙個技術管理者經驗和能力的關鍵。

那麼技術管理者要怎麼做?好的管理者其實或多或少都要依賴一定的直覺。直覺並不是非理性,心理學家和管理學者們已經證明,所謂的決策上的直覺,其實來自過去的經驗、對外界的感知和推理的積累中不自覺的形成的大腦的模式識別。

那麼當下流行的因素呢?這個需要考慮麼?

相關技術的流行程度往往很容易主導技術管理者的判斷,而包括筆者在內的技術經理,都曾經對其嗤之以鼻。但事實是,技術的旅行程度正在主宰我們的技術領域。甚至可以稱之為一種技術霸權也不為過。我們必須承認,一項技術之所以能流行開來,多少有一些真正的理由。相信我們的同行不會把寶貴的精力投入到連他們自己都不看好的方向上去。造成一項技術流行與否的因素,不外乎該技術本身面對的就是乙個目前比較活躍的技術市場,而這個技術市場中的眾多同行也的確在自己的實踐中表達了對該技術的認可。那麼如果我們如果想考慮放棄對流行技術的選擇,那就要先真正認真地問問自己為什麼要放棄,就像我們需要真正問問自己為什麼要選擇一樣的認真。

還有另外一種選擇流行技術的理由,就是人才市場因素。在市場經濟下,人力資源也是市場交換的資本要素,其供給和需求之間的平衡關係也是要考慮其商品屬性的。對於不流行的技術,特別是已經被人次市場主流拋棄的技術,實際上你會發現,要招聘或補充相關的人才會變得越來越難。這個難度不僅會危及到未來長期的對交付物的全生命週期維護上,嚴重的時候甚至連初始的團隊都搭建不起來。筆者在工作中不止一次經歷這樣的例子:經理們決定沿用公司現有產品的技術,而整個行業流行技術已經悄然改變,甚至嚴重到原本提供原有技術的公司已經倒閉或者正式宣布停止維護。既然公司有技術積累,一開始貌似沒有什麼問題,但是隨著專案推進,就會慢慢發生團隊成員流失的情況,尤其是有生氣、有闖勁的年輕成員的流失。而當你發現後開始招聘補充人力的時候,突然發現,相關人才已經很難招聘得到:要麼奇貨可居要價甚高,要麼職場新人壓根不想學習,甚至原本從事該技術的開發者也已經開始放棄了。此時大家猜明白,原本看起來順理成章的事情,卻逐漸變成成本流失和成員加班的泥潭。

這個過程中最無奈的是一些「偏門」領域的軟體的技術方案選擇:實際上有些新流行技術並沒有被流行技術的設計者們所考慮,但是為了防止團隊成員因為「不想再學習和使用史前技術導致自己下乙份工作難找」的情緒所左右,團隊技術管理人員還是不得不對是否採用流行技術做出一定的考量,這個考量就是基於穩定和提公升團隊的需要。

為了滿足團隊的成長訴求而選擇某些技術方案,實際上在職業專案中是被認為十分正常的決策,雖然這看起來和很多人的直覺相反——和那些從粗淺的理性所培養出來的直覺相反。

這種從團隊成長和穩定性出發的考量,在專案週期較長(超過一年甚至半年)的情況下尤其要給予足夠的重視。還有一種情況是初創團隊。創業公司如果沒有足夠的資金聘請資歷相當的成員,就難免不得不使用新人。但是對新人來說,比低工資更難以忍耐的,正式過氣的技術,因為過氣的技術意味著未來也得拿低工資,或者雖然有前面說的奇貨可居的可能,但身為奇貨的日子屈指可數,稍有遠見的新人也還是不願意去做的。而此時,乙個看起來蒸蒸日嚐的新流行技術的應用,正是比高工資更容易拴住新人死心塌地、認認真真幹一段時間的「枷鎖」。當然這個「枷鎖」書否能長期有效,最終還得看創業專案是否能及時走向成功了。

所以,技術的流行度本身就可能意味著其先進性,還可能會影響專案或產品的維護成本、團隊的凝聚力等因素,不可不察。甚至那項流行技術即便沒有在你所要進行的專案的領域中流行,但是為了以上的原因,還是可能要考慮引入。

快速選擇演算法的時間複雜度為什麼是O n ?

一 引言 今天學了乙個快速選擇演算法,這個演算法跟快排差不多,只不過專門用來在選擇陣列中第k大 小的數時,可以免去將整個陣列排序後選擇第k個數。將整個陣列排序再選擇第k個數的時間複雜度是o nlog n 快速選擇演算法將平均時間複雜度優化到o n 但最壞的情況還是o n 2 一開始很糾結這個o n ...

以下是我總結的為什麼選擇spring

以下是我總結的為什麼選擇spring 看好spring mvc的速度 spring生態環境的欣欣向榮 spring生態 從安全到各種服務整合具有天生的優勢 spring對rest的支援 spring mvc非常容易使用 附帶,mvc測試 tomcat maxthread 10 使用ab n 1000...

為什麼說大資料技術的核心是Map技術

大資料核心技術 map技術 彭文偉前言 大資料處理關鍵技術一般包括 大資料採集 大資料預處理 大資料儲存及管理 大資料分析及挖掘 大資料展現和應用 大資料檢索 大資料視覺化 大資料應用 大資料安全等 而以上這些關鍵技術都離不開底層的應用技術,鍵值對map的效能。對於c 程式來說 map的使用無處不在...