為什么許多項目的技術方案高、大、上,具體實現卻種種問題,代碼慘不忍睹?
一、架構師欠缺深入編程的一線工作經歷,容易泛泛而談
許多架構師自身并沒有長時間的深入編程工作的經歷,在技術上的沉淀不足,導致對于軟件工程的理解、目標沒有清晰的認識。在做架構設計時,非常容易泛泛而談,并且給出的方案,太過高屋建瓴,缺乏對具體實現的理解和把握。許多架構設計方案,僅僅停留在PPT上,具體的落實完全依靠一線開發(fā)人員。
二、技術選型階段:技術選型不是出于項目需要,而是個人喜好
在技術選型階段,較好的團隊第一件要做的事情,通常并不是局限在技術本身,而是深入的理解業(yè)務,搞清楚自己要做的到底是什么,并且明確的給出期望的技術指標。
在此基礎之上,團隊會開展多次頭腦風暴,共同探討業(yè)務流程中可能會涉及的技術細節(jié),以及可選的方案并制定客戶認可的技術指標,這一點相當重要,在項目中不能單純的追求高技術指標,而是權衡時間成本,人力成本,以及項目經費,制定合理的技術指標。
在這一階段,許多架構師在技術的選型上,往往更傾向使用自己并不熟悉的,甚至完全沒有用過的技術,借此機會提高自己,充實自己的簡歷。他們可能會選擇更新,更激進的方案,不管項目是不是真的需要;也不太懂得權衡技術與成本,不愿意選擇看上去好像落后一些但更穩(wěn)定,更可靠,綜合成本更低的技術,片面追求高大上,到了實施階段,就非常容易出現種種不可控的技術因素影響項目的進度及品質。
三、實施階段:缺乏對開發(fā)團隊強有力的管理,存在技術斷層
這一點幾乎在所有的項目中都存在,架構師在設計好方案或搭建好開發(fā)框架之后,團隊的開發(fā)工作與進度管控