1. 程式人生 > >《Java程式設計師,上班那點事兒》——清華大學出版社

《Java程式設計師,上班那點事兒》——清華大學出版社

為什麼你總成為不了架構師?

背景:

今天接到一個哥們兒的電話,說,很鬱悶,想和我聊聊。

我問,有啥鬱悶的事情啊,說來聽聽。

他說,最近很鬱悶,我本來今年的計劃是成為一個架構師,但是,無論如何努力,都不知道為什麼,感覺希望很渺茫...

這哥們兒其實是一個很努力的傢伙,曾經是我Team裡技術最好的程式設計師,對一個技術不鑽明白不罷休的那種程式設計師。

我給他電話裡說了說我一直想說,但一直都沒有時間說的話,那就是:為什麼你總是成為不了架構師?

一、什麼是架構師?

其實架構師的概念並不是從程式開發專業一誕生就有的職位概念,架構師(Software Architect)僅僅是最近幾年提出來的一個職位,貌似Software Architect的概念是IBM提出來的。然而,架構是什麼樣的一個職位,就像雲端計算一樣,看起來很美,但是,每個人都有自己的理解。

很多人認為,架構師就是系統分析師,是拿到系統需求進行分析的人,錯!如果系統只是系統分析,那麼架構設計誰來弄?

有人認為架構師就是架構設計的人,畫畫UML,寫一寫文件之類的人,錯!畫UML就是設計嗎?畫圖的人有了,設計的人是誰?

還有人認為架構師是從屬於專案經理,只管設計,而沒有任何權利的人,錯!如果設計的決策權交給專案經理,那麼這個設計是有分量的嗎?

架構師是什麼?

我們先不回答,我們先來看看在架構師概念出現前的一些職位提法。

在架構師概念出現前,微軟是我們大多數軟體企業的研發機構設定的樣板,當時比較流行的職位搭配是——技術經理+專案經理。

ok,當然也有很多企業實際上,技術經理和專案經理是一個人。

也就是大多數企業當時是採用的開發主管負責制,即:技術+團隊+專案,的負責人。

當我們把“專案經理”剝離出開發,僅僅對專案進度以及為專案推進而排除各項外部障礙時,其實負責開發技術和開發團隊的人就是“技術經理”了。

如果,我告訴你,之前所謂的技術經理其實就現在的架構師,可能我們大家就更容易理解了。

沒錯,就是這樣的,如果“架構師”的設計失去了“發言權”、“技術方向的決策權”、“團隊人員的開發資源調配權”,那麼我們可以想見,這個設計是多麼的無力!!

因此,什麼是架構師?

架構師是具有技術發言權,方向決策權,和團隊人員開發資源調配權的開發團隊的TeamLear,也是這個程式的設計者,當然他是這個程式團隊的靈魂!!

因此,不想當Teamleader的程式設計師,絕對不可能成為真正意義上的架構師!

同時,不是Teamleader的架構師,也是一個被架空的,蒼白無力的架構師!

二、如何才能用架構師的思想去思考?

架構師,如果只是把需求變成程式,那就不是架構師,那是叫“照著葫蘆畫瓢”。

架構師,如果只是精通各種框架,比如S\S\H之類的技術,只是利用S\S\H之類的技術去描述使用者提出的需求,那是叫“用S\S\H畫瓢”。

ok,不賣關子,那麼怎麼思考就是架構師應該去思考的方法?

首先告訴你,進行沒有設計的架構設計叫架構師嗎?

這種情況在軟體行業內太普遍了!!

為什麼沒有設計?

因為,很多人都不懂什麼叫設計!!

給大家一個概念,什麼是設計?——

設計因未來而存在!
——鐘聲 2010年6月

沒有面向未來的,只是面向過去的,那絕對不是設計,那絕對只是模仿!!

設計因未來而存在!!

即,沒有創新,就沒有設計!!

即,沒有改變,就沒有設計!!

用進化論去思考你的設計!!

讓你的設計超越一切理論!!

設計只是記憶的載體而不是記憶的全部!!

其實程式設計師是藝術家,而不是建築工人!!

那麼,為什麼你總成為不了架構師?

不要僅僅從技術的角度出發一味的按照自己理所當然的方向去努力,要學會用設計的思想思考,並努力讓你自己成為有分量的人!!

鐘聲,《Java程式設計師,上班那點事兒》作者

2012-2-16 0:02

謝謝大家!!