為什麼你有許多架構師,專案依然延期並各種問題
為什麼許多專案的技術方案高、大、上,具體實現卻種種問題,程式碼慘不忍睹?
一、架構師欠缺深入程式設計的一線工作經歷,容易泛泛而談
許多架構師自身並沒有長時間的深入程式設計工作的經歷,在技術上的沉澱不足,導致對於軟體工程的理解、目標沒有清晰的認識。在做架構設計時,非常容易泛泛而談,並且給出的方案,太過高屋建瓴,缺乏對具體實現的理解和把握。許多架構設計方案,僅僅停留在PPT上,具體的落實完全依靠一線開發人員。
二、技術選型階段:技術選型不是出於專案需要,而是個人喜好
在技術選型階段,較好的團隊第一件要做的事情,通常並不是侷限在技術本身,而是深入的理解業務,搞清楚自己要做的到底是什麼,並且明確的給出期望的技術指標。
在此基礎之上,團隊會開展多次頭腦風暴,共同探討業務流程中可能會涉及的技術細節,以及可選的方案並制定客戶認可的技術指標,這一點相當重要,在專案中不能單純的追求高技術指標,而是權衡時間成本,人力成本,以及專案經費,制定合理的技術指標。
在這一階段,許多架構師在技術的選型上,往往更傾向使用自己並不熟悉的,甚至完全沒有用過的技術,藉此機會提高自己,充實自己的簡歷。他們可能會選擇更新,更激進的方案,不管專案是不是真的需要;也不太懂得權衡技術與成本,不願意選擇看上去好像落後一些但更穩定,更可靠,綜合成本更低的技術,片面追求高大上,到了實施階段,就非常容易出現種種不可控的技術因素影響專案的進度及品質。
三、實施階段:缺乏對開發團隊強有力的管理,存在技術斷層
這一點幾乎在所有的專案中都存在,架構師在設計好方案或搭建好開發框架之後,團隊的開發工作與進度管控完全由專案經理控制,架構師不參與團隊管理,大部分時間埋頭寫文件或自己研究技術,這種情況的專案,幾乎必然會出現許多技術上的問題並影響專案進度及品質;很多專案的方案非常漂亮,但是具體實現和程式碼編寫卻慘不忍睹,就是架構師失職的重要體現。
架構師除了前期技術選型及框架搭建,最重要的工作,以及架構師這一職位的根本意義,我認為在於對整個團隊的傳、幫、帶。
架構師要能夠放低姿態,對整個團隊進行必要的技術培訓,對程式碼實現的質量擔負第一責任,必要時對開發人員進行手把手的幫扶與指導,關於這一點其實沒有什麼技巧與方法好總結,只能以我自己的經驗來說,過去我帶過一個全部由工作經驗一年以下的小朋友組成的團隊,雖然他們的經驗和能力有所欠缺,但是好在都很好學,在專案的前兩個月中,我每天要花大量的時間用筆、用紙教他們具體怎麼分析怎麼實現,然後再去Review他們的程式碼,剛開始的時候所謂的Review,基本是兩個人做在一起,看著我重寫,這種方式他們進步的非常快,慢慢的在Review的過程中只需要我少少改一部分內容。不用一個月,整個團隊的編碼風格、程式碼品質就已經高度一致(注意我說的是高度一致,不是高水平,但這就夠了)。
四、缺乏與專案經理的通力協作
與上一點所談的問題相輔相成,大多數專案的開發階段專案經理是主要話事人,架構師不參與團隊管理。而理想的情況應該是兩個人協同共管、架構師做為司令員,主管開發品質,技術建設,專案經理做為政委,主管專案方向、進度、人員問題及部門協調、客戶溝通。
專案經理要有一定的包容心,能夠容納一個架構師與己分權,要給予架構師一定的人事權利,甚至是團隊人員績效考評的第一考評人,沒有任何權利的管理工作是很難落到實處的。
關於這一點,大概需要一點緣分。
相關文章
- 為什麼專案會延期?
- 為什麼你總成為不了架構師?架構
- 什麼?專案延期有解藥?
- 架構C01: 什麼是架構?為什麼做架構?架構師需要做什麼?架構
- 掘金 AMA:我是閒魚客戶端架構師 — 宗心,你有什麼問題想問我嗎?客戶端架構
- 專案註定延期時,應該做什麼?
- Django官方為什麼沒有標準專案結構Django
- 什麼是架構師架構
- “你還有什麼事想問”——作為程式設計師如何回答面試官的問題程式設計師面試
- 專案延期
- 為什麼會有這麼多種的資料庫資料庫
- 你和架構師的的區別是什麼?架構
- 程式設計師,你為什麼值這麼多錢?程式設計師
- 為什麼有許多人學java?Java
- 為什麼專案經理拿的錢比程式設計師多?程式設計師
- Scrapy有什麼功能?架構有哪些?架構
- 阿里十年架構師用一張圖告訴你什麼是系統架構師阿里架構
- 關於架構師的輕度思考,你眼中的架構師是什麼樣的呢架構
- 為什麼大部分碼農做不了架構師?架構
- 請問是什麼架構架構
- 漫畫:什麼是架構師架構
- 架構師的工作都幹些什麼?!想做架構師必看!架構
- PHP架構師成長必須做些什麼?你要準備些什麼?PHP架構
- 討論:你的專案為什麼不迭代?
- 也許見笑的問題:為什麼要用spring?Spring
- 為什麼為什麼為什麼為什麼為什麼你要做一名程式設計師?程式設計師
- 為什麼安裝jdonNews時mysql有問題MySql
- 為什麼大部分 PHP 程式設計師做不了架構師?PHP程式設計師架構
- 走出架構誤區,架構師並不是想象的那麼容易架構
- 為什麼你的專案要花這麼長時間?
- 為什麼有這麼多 Python?Python
- 什麼樣的經歷,才能領悟成為架構師?架構
- 為什麼抓包檔案有好幾種型別?型別
- 專案成本管理軟體能為你做什麼?
- 一個對話讓你明白架構師是做什麼的?架構
- 資料結構連結串列各種問題資料結構
- 架構師的定義是什麼?架構師需要具備哪些能力?架構
- React專案架構,掌握前端架構師的核心本領React架構前端