close


html模版人生何處不架構:Tieto、SONY架構實踐
摘要:生活中就有更多地方能發現「架構師」的影子瞭,大到舉辦國慶閱兵,小到一場傢宴。遠到當今很多父母早早就為孩子的未來發展精心設計藍圖,近到周圍很多朋友計劃生二胎。做這些事情的人,在作者看來,他們都是架構師。

9月初的某一天,一位朋友的幾個問題一下子把正吭哧吭哧敲鍵盤而處於自High狀態的我拉入瞭一段冥思之旅。是啊,什麼是架構師?架構師一天到晚到底在做什麼工作?

IT領域中有架構師,其他行業有沒有?

這是一個甚為龐大而又嚴肅的問題。而且,可以預料的是,不同人的答案,甚至同一人不同時期的答案都會千差萬別。不過,沒有標準答案有關系嗎?沒有。所謂“一花一世界,一葉一菩提”,或許我在本文中分享的個人經歷和一些思考的結果能給大傢帶來不同的啟發。當然,最好希望大傢看完此篇文章後,能認可並認同本文的標題,即“人生何處不架構”。

什麼是架構師,架構師到底在做什麼工作

什麼是架構師?這個問題的答案其實就是“一千個人眼裡有一千個哈姆雷特”。我個人對這句話的理解就是:架構師是一個公司的職位,不同公司中架構師的職責(也就是架構師的工作)不盡相同。當然,我的理解來源於自己的經歷,大傢不妨一看。



我是在2012年9月第一次以架構師的身份加入歐洲最大的IT服務公司Tieto來工作的。當時Tieto正處於從Symbian平臺全面轉向Android平臺的關鍵時刻,很多同事對Android的認識還不是很全面,雖有大量零散Android開發經驗,但還沒有系統成型的知識和經驗積累。那麼我在Tieto作為架構師,具體的職責和工作內容是怎樣的呢?


首先,不論對團隊,還是對公司而言,提升團隊成員在Android方面的技能肯定是最最重要的工作。於是,我根據自己對Android的理解和經驗,將團隊成員按特長和相關技能熟練程度,劃分到各個模塊,構建領域小組。這種劃分需要充分考慮到團隊規模,各知識模塊的難度和重要性,還有公司自身在某些技術領域的積累,甚至公司為各個站點(比如北京site,成都site,波蘭site)設置的中長期發展規劃。所以,最開始我們隻劃分瞭Framework模塊,USB和MTP模塊,App模塊等。後來,隨著我們引入Linux內核和多媒體幾位專傢,BSP模塊和多媒體模塊隨即建立起來。最後,當我們發現公司在Wi-Fi,藍牙等領域有非常深厚的技術積累時,我們又設置瞭Local

Connectivity模塊,主攻WiFi。

除瞭技能提升這樣一個長期工作外,我還要帶領團隊順利完成公司的項目。這是Tieto北京第一次以一個團隊的形式參與的一個多站點聯合實施的Android系統升級項目。項目的主PM(Project

Manager)是波蘭人,項目的大部分模塊由Tieto捷克站負責,Tieto北京站負責Framework,USB和MTP,部分APP以及測試工作。在項目中,我的主要工作是和Main

PM以及北京的PM一起制定工作計劃,校驗階段性工作成功,並根據當前結果合理安排下一階段的工作任務。在團隊內部,我們負責的各個模塊也采用瞭敏捷開發的工作方式。另外,定時匯報,提前預警,關鍵區域加派人手也是我們經常采用的工作方法。另外,為瞭加強其他站點對北京團隊技術實力的認可,我們還會設置不同的攻堅小組(Task

Force),積極主動去完成一些難度大,富有挑戰性的工作。


對於這種有明確工期的項目制工作而言,架構師一定要瞭解常說的Big Picture,即項目甚至項目成員的整體情況。要搞清楚哪裡是薄弱環節,哪裡是關鍵環節。完成今天的任務後,下一步工作是什麼。後續任務中有沒有風險,有沒有坑。什麼時候,是否需要,以及需要什麼樣的外部support。

另外,對架構師(或者對項目所有成員)而言,有問題絕對不能藏著掖著,一定要盡快盡早提前暴露。

最後,架構師要和PM、測試組密切配合。大傢都在同一戰壕,所以思想要統一,目標要一致,節奏要配合。


除瞭項目外,我們在學習方面也是有一整套計劃和目標的。前面說瞭,我的一項非常重要的職責是提升團隊成員的技戰術實力。項目可以做完,學習卻不能停滯,而且還必須緊抓最新的技術趨勢。所以,這個項目做完後,我們緊接著就在BSP、多媒體和Wi-Fi等模塊痛下苦功,積極鉆研。到我離職的時候,團隊成員在這幾個方面還算頗有成績。一共在《程序員》雜志上投稿6篇,出版專著一本,並在2013年中國軟件技術大會上重磅亮相瞭我們的Android多窗口技術解決方案。

從Tieto出來後,我加入瞭SONY移動,職位是資深架構師。作為一個世界知名的老牌企業,SONY在多年的發展過程中,培育瞭一套具有獨特特色並高度成熟的工作流程。其架構師的工作及職責更是值得一提,以為一款手機升級Android操作系統的項目為例:


每個項目都會設置一個Project Arch,簡稱PA。PA的職責非常重要,可以看做是整個項目在技術方面的頭羊。PA和項目經理(也包括其他成員)會一起制定和把控項目進度。在技術的疑難雜癥上,PA會出面召集相關人員進行會診。並且PA需要在重大技術問題或者分歧上給出關鍵意見,甚至有時候需要作出最終決策。據我自己的觀察和體會,PA的候選人並不是片面強調他是否為某個或多個技術領域的專傢,而是需要候選人有豐富的項目經驗,較強的溝通能力,團隊精神和敬業精神。並且要求PA有很高的風險意識。所以PA需要經常性得查漏補缺,需要根據測試定期發佈的測試報告來判斷軟件質量是否下降,是否有潛在而未發現的問題或風險。

除瞭PA外,每個項目還會有1到2個System Arch,簡稱SA。SA主要偏重Android系統層面的技術部分。比如性能調優,功耗等這些牽一發而動全身的問題。SA經常性的工作還包括手機系統崩潰分析,以及一些奇奇怪怪的疑難雜癥。有趣的是,SA和相關的工程師團隊在SONY有一個特別的名字,叫MiB(Man

in Black,黑衣人)Team,其意思是MiB組同事們的工作內容好像不是那麼明顯,但是卻為手機系統的穩定、流暢做出瞭很有價值的貢獻。

接下來,在Android每個子模塊都有一位SubSystem Arch,簡稱SSA。SSA基本上是各模塊的技術領軍人物瞭,他在該領域具有絕對的話語權。包括代碼review,技術方案的選擇,該領域相關問題的解決都由SSA來負責處理。SONY的SSA高手雲集,其中有一個非常年輕的負責Kernel的同事最後被大陸註冊商標蘋果中國錄用。這是他個人的驕傲,也是我們這麼多同事的驕傲。

最後是測試部分,測試組會有一個Verfication Arch,簡稱VA。VA主要負責測試部分的重難點技術問題。比如設計測試case,自動化測試工具開發、測試流程優化等。比如我們在性能優化方面做瞭不少工作,但是如何評價優化的效果呢?這就需要VA和我們配合,設計一套合理的測試case。


由此可見,雖然各架構師的職位一樣,但是在SONY的項目中,架構師的具體分工也是有很大的不同。

還是“架構師”嗎?

當我回答完上面的問題後,這位朋友接著問“你現在還是以架構師的身份在民生銀行總行科技部工作嗎?”從我所擅長的Android智能設備領域來看,民生銀行目前還沒有在這個崗位上設置架構師這個職位。但大傢可以看看我在這幹得工作,然後和之前我在Tieto和SONY的經歷比較下,就會發現有很多類似的地方,目前我負責民生銀行智能POS機的技術部分,工作內容包括:


設計和完善民生銀行智能POS系統規范。一方面,我們需要引導和約束廠商必須遵守此規范,另外一方面我們也非常希望廠商能發揮自己的主動性和優勢,把最新,最有價值的內容帶入到我們的規范。從某種意義上來說,我感覺民生銀行和Android生態系統中的Google的角色有些類似。

另外一方面,為瞭吸引開發者到我們POS平臺上來開發APP,我們已經開發和提供瞭一套完善的SDK和文檔給開發者。我們的目標是讓使用瞭這套SDK的APP不用再過於擔心系統的碎片化問題。同時,鑒於POS機對安全性的嚴格要求,我們對APP的審核也有著一套高標準的要求。

最後,在一些POS機中國商標的關鍵應用上,比如銀行卡支付應由,我也需要摸透它,並最終能自主開發。


所以,我個人感覺雖然現在沒有架構師的職位,但幹得工作卻和之前沒有太大的不同。從技術領域看,隻不過從Android手機轉向瞭智能POS。

人生何處不架構

回顧我投身軟件行業的8年歷程,從不是架構師到成為架構師,再到不是架構師,這一路下來頗多感觸。真的隻有拿到架構師頭銜才能被稱作架構師嗎?此問題的答案必然是否定的。我本人或者其他所有人,其實在工作中都或多或少扮演瞭架構師的角色,比如:




我和機工出版社的楊福川總編輯一起策劃並組織編撰瞭《深入理解Android》系列叢書。每本書從策劃,到尋找最合適的作者,再到編撰過程中給予作者及時有力的支持,直到著作的最終出版,這其中都有規劃,執行,反饋,再規范,再執行直到結束。

當我的水電系的同學們,坐在電力調度中心,參與電網發展規劃、系統設計,組織編制和執行電網年運行方式、制訂月、日調度計劃,等等等這些工作,是不是有架構的概念?


生活中就有更多地方能發現“架構師”的影子瞭,大到舉辦國慶閱兵,小到舉辦一場傢宴。遠到當今很多父母早早就為孩子的未來發展精心設計藍圖,近到周圍很多朋友計劃生二胎。做這些事情的人,在我看來,他們都是架構師。為什麼?


架構師心中有規劃,他瞭解Big Picture,知道現在在做什麼,下一步要做什麼。

架構師有執行力,不論是他還是別人制定的規劃,架構師都會認真去執行,並及時反饋執行結果。後續規劃會隨著反饋情況適時調整。

架構師有風險意識,哪裡有風險,架構師需要及早判斷和觀察到,並能采取有力的措施以規避或減少風險。


這麼說,好像人人都是架構師,那架構師還有什麼意義呢?其實,不是很多人能意識到,在漫長的人生旅途中,自己一直都在扮演一個架構師的角色。回歸到做程序員這份職業而言,難道不是架構師就不應該積極主動去瞭解自己正在參與的軟件開發項目的Big

Picture嗎?難道不是架構師,你就不應該深挖一個bug背後的問題和知識點麼?難道不是架構師就不應該為自己設立中長期的學習規范並付諸於實踐嗎?

當你想明白這些,你就是架構師,你就應該按著架構師的要求來看待自己。而那些你當前正羨慕著的,有著架構師頭銜的人,我相信他們隻不過比你更早一點想明白這些道理罷瞭。

作者簡介:鄧凡平,暢銷書《深入理解Android》系列的總策劃和主筆,著有《深入理解Android:卷I》、《深入理解Android:卷II》和《深入理解Android:Wi-Fi,NFC和GPS卷》三本書籍。曾任SONY移動資深架構師,Tieto高級軟件架構師。現就職於民生銀行總行科技部,為智能POS機相關軟硬件系統的開發而努力工作中。



【相關閱讀】專訪鄧凡平:Android開發路上的快速學習之道

(責編/

錢曙光,關註架構和算法領域,尋求報道或者投稿請發郵件qianshg@csdn.net,交商標註冊時間流探討可加微信qshuguang2008,備註姓名+公司+職位)





本文來自《程序員》電子刊10月B架構專題文中國商標查詢章,程序員2015年電子版訂閱火熱進行中,包含:iPad版、Android版、PDF版。







值得一提的是大陸商標,由CSDN舉辦的

SDCC 2015中國軟件開發者嘉年華將於11月19-21日在北京舉行,本次大會涵蓋:新型數據庫、編程語言、工具與平臺、產品與設計、前端開發、算法、微信開發、架構實踐、安全等九大分

論壇,屆時國外知名講師將分享所在領域的最佳實踐。【點擊這裡搶票】









本文為CSDN原創文章,未經允許不得轉載,如需轉載請聯系market#csdn.net(#換成@)

台灣電動床工廠 電動床

台灣電動床工廠 電動床

arrow
arrow
    創作者介紹
    創作者 wxo491n1q2 的頭像
    wxo491n1q2

    小而不失大器

    wxo491n1q2 發表在 痞客邦 留言(0) 人氣()