《Java程式設計師,上班那點事兒》——清華大學出版社
為什麼你總成為不了架構師?
背景:
今天接到一個哥們兒的電話,說,很鬱悶,想和我聊聊。 我問,有啥鬱悶的事情啊,說來聽聽。 他說,最近很鬱悶,我本來今年的計劃是成為一個架構師,但是,無論如何努力,都不知道為什麼,感覺希望很渺茫... 這哥們兒其實是一個很努力的傢伙,曾經是我Team裡技術最好的程式設計師,對一個技術不鑽明白不罷休的那種程式設計師。 我給他電話裡說了說我一直想說,但一直都沒有時間說的話,那就是:為什麼你總是成為不了架構師? |
一、什麼是架構師?
其實架構師的概念並不是從程式開發專業一誕生就有的職位概念,架構師(Software Architect)僅僅是最近幾年提出來的一個職位,貌似Software Architect的概念是IBM提出來的。然而,架構是什麼樣的一個職位,就像雲端計算一樣,看起來很美,但是,每個人都有自己的理解。
很多人認為,架構師就是系統分析師,是拿到系統需求進行分析的人,錯!如果系統只是系統分析,那麼架構設計誰來弄?
有人認為架構師就是架構設計的人,畫畫UML,寫一寫文件之類的人,錯!畫UML就是設計嗎?畫圖的人有了,設計的人是誰?
還有人認為架構師是從屬於專案經理,只管設計,而沒有任何權利的人,錯!如果設計的決策權交給專案經理,那麼這個設計是有分量的嗎?
架構師是什麼?
我們先不回答,我們先來看看在架構師概念出現前的一些職位提法。
在架構師概念出現前,微軟是我們大多數軟體企業的研發機構設定的樣板,當時比較流行的職位搭配是——技術經理+專案經理。
ok,當然也有很多企業實際上,技術經理和專案經理是一個人。
也就是大多數企業當時是採用的開發主管負責制,即:技術+團隊+專案,的負責人。
當我們把“專案經理”剝離出開發,僅僅對專案進度以及為專案推進而排除各項外部障礙時,其實負責開發技術和開發團隊的人就是“技術經理”了。
如果,我告訴你,之前所謂的技術經理其實就現在的架構師,可能我們大家就更容易理解了。
沒錯,就是這樣的,如果“架構師”的設計失去了“發言權”、“技術方向的決策權”、“團隊人員的開發資源調配權”,那麼我們可以想見,這個設計是多麼的無力!!
因此,什麼是架構師?
架構師是具有技術發言權,方向決策權,和團隊人員開發資源調配權的開發團隊的TeamLear,也是這個程式的設計者,當然他是這個程式團隊的靈魂!!
因此,不想當Teamleader的程式設計師,絕對不可能成為真正意義上的架構師!
同時,不是Teamleader的架構師,也是一個被架空的,蒼白無力的架構師!
二、如何才能用架構師的思想去思考?
架構師,如果只是把需求變成程式,那就不是架構師,那是叫“照著葫蘆畫瓢”。
架構師,如果只是精通各種框架,比如S\S\H之類的技術,只是利用S\S\H之類的技術去描述使用者提出的需求,那是叫“用S\S\H畫瓢”。
ok,不賣關子,那麼怎麼思考就是架構師應該去思考的方法?
首先告訴你,進行沒有設計的架構設計叫架構師嗎?
這種情況在軟體行業內太普遍了!!
為什麼沒有設計?
因為,很多人都不懂什麼叫設計!!
給大家一個概念,什麼是設計?—— 設計因未來而存在! |
沒有面向未來的,只是面向過去的,那絕對不是設計,那絕對只是模仿!!
設計因未來而存在!!
即,沒有創新,就沒有設計!!
即,沒有改變,就沒有設計!!
用進化論去思考你的設計!!
讓你的設計超越一切理論!!
設計只是記憶的載體而不是記憶的全部!!
其實程式設計師是藝術家,而不是建築工人!!
那麼,為什麼你總成為不了架構師?
不要僅僅從技術的角度出發一味的按照自己理所當然的方向去努力,要學會用設計的思想思考,並努力讓你自己成為有分量的人!!
鐘聲,《Java程式設計師,上班那點事兒》作者
2012-2-16 0:02
謝謝大家!!