[討論] 優秀的企業級 BI 架構師需要具備的素質

leohope

一個優秀的企業級 BI 架構師應該需要具備怎麼樣的素質?
第一,我所理解的BI架構師不是局限於聚焦於前台Report & Analytics分析平台的精深的專家,而是更普適的至少跨越三個領域:資料庫,ETL,Report & Analytics的整體解決方案的架構師。此處需重點指出,本人對聚焦於前台R&A的專家只有敬仰,他們同樣是架構師並且也存在世界級應用的架構師,只是不在我本次回答的範疇內。

第二,架構師也是分等級的,我姑且分為入門級,專業級,大師級和殿堂級。
入門級:親自做過小規模項目,規模大約3-4個人,6個月左右。
專業級:作為Lead做過不少中等規模的項目,規模在15個人以上,12個月以上(有的時候做兩期)。輔佐專家級架構師做過大規模項目。
大師級:作為Lead作為大規模項目,規模在30個人以上,24個月(一般來說至少兩期)以上。作為專家組成員輔佐殿堂級專家完成世界級超大規模項目。
殿堂級:統領世界級知名企業超大規模項目,規模在100人以上,周期在24個月以上。且有的殿堂級專家著書立說,又或出過各種專利....

(這裡我沒考慮數據volume, 使用User數量等相關信息,因為這種東西很多時候和行業有關,有的行業就是天然有很多數據,比如互聯網比如電信,不想把其他行業的漏掉。這裡的項目人數要求絕對不是衡量架構師水準的硬性指標,只是一個參照而已)
當然,項目之複雜,豈能通過如上三言兩語描述的清,只是給看官們一個借鑒的樣子。

第三,就技能掌握的水平分類,又分為初級,中級,高級和大牛級。
初級:學過,簡單任務可實操
中級:用過,項目中實際實操,自己能解決大多數疑難雜症
高級:經常指導中級的人用,自己專門負責解決疑難問題,出模板pattern之類的
大牛級:重點考慮repeatable的產品化應用設計

再講講我對架構師的理解
通常,架構師的技術範圍是T字形的,也就是在某一個或者某幾個領域很精深,其他領域相對一般。很難找到所有技術範圍都是大師級的選手,而很多時候不一定需要所有領域都是大師級的才能夠成為架構師。所有的架構師都是Leader,因為你需要善用別人的長處來輔助你做架構的設計,架構設計很多很多時候都是集體智慧的結晶。如果有人抬杠說他的項目由他自己一個人搞定,要麼這個人是各方面都卓越的大神(大神這詞快被用濫了),而更多的時候或者說絕大多數的時候實在是因為項目的難度和複雜性不夠。
此外,架構師非常重要的特質是,需要站在全局的考慮問題,而不是把眼光放在局部。因此需要架構師對各個領域的知識均有涉獵,建立我們稱之為Insight的洞察能力,架構師很多很多時候都要對各種解決方案做取捨,沒有整體架構的洞察力,就非常容易做出錯誤的決定。
另外,很有趣的是,只有你在某一個領域特別精深的,你才能在其他領域達到下一個級別。也就是說不存在T字形縱向一般,但橫向很寬,並且能夠交付合格出品物的架構師。這種架構師,通常嘴上功夫一流但沒有實際的交付能力,不是我等技術人員所倡導的發展方向。T字形,縱向越深,往往觸類旁通,在其他領域可能實操能力或許一般但也都有獨到的見解。

好吧,從入門級別開始,至少你得懂DB,ETL,Report其中一種產品,能達到高級的水準,其他領域至少應該是中級。此外還需要懂得一些Unix的知識,怎麼也應該是初級水準,如果能會一門編程語言,Java也好,Python也罷,都會是很好的補充。同時所參與的行業,需要達到中級的水準。而其餘領域的知識,比如元數據管理,數據挖掘,主數據管理,數據質量等等如有涉獵當然更好。而這一級別的架構師通常的主要使命是完成當下項目的交付,一般來說不需要太強的系統工程(System Engineering)和項目管理經驗,依賴個人能力為主,大部分架構師都是從這個層面成長起來的,這個階段重點培養的是解決問題的能力。

等到了專業級別的架構師,除如上」硬「技能需要持續提高以外,需要站在項目以及系統工程的層面來思考問題。這時候僅僅」硬「知識就顯得不夠了,通常來說都需要管理10-15人的團隊,這時依靠單打獨鬥的個人英雄模式就很難行得通了。再牛的架構師也會發現自己無論如何一個人無法搞定所有事情,會更依賴團隊。同時又有大量的時間用於和PM,和需求方,對團隊內部的溝通,需要考慮更多時間,成本等問題。因此,需要掌握更多項目管理,系統工程方面的知識,並且提高溝通的技巧,學會解放自己並把任務交給團隊成員。這個時候的架構師需要大量的Review,制定規範等工作,並開始有些Trade off類的技術方向等決策性工作要做。

我不是大師級的架構師,只是作為普通一兵有幸輔佐過大師級架構師的工作,因此我很難給出準確的描述。只是儘可能描述我所接觸過的牛人的特質:
1. 使命必達。這個看起來和技能的關係不大了,但這個優秀架構師必備的品質和素質,對於項目的交付有責無旁貸。有的時候PM換的像走馬燈,而總架構師巋然不動。
2. 洞察以及豐富的經驗。這裡我舉幾個例子,來表示經驗的重要性。比如全球性的項目,能很早的洞察到貨幣的需求,其中包括對計劃/實際的不同匯率的需求;也包括交易發生時需要記錄的貨幣的種類。還包括個別發展中國家本地貨幣通貨膨脹引起的不可信賴,林林總總。再比如,義大利,奧地利,瑞士對私人信息保護的法律上的嚴格要求;再比如上市公司在財務年報季報發出前半個月的blackout,如果提前釋放銷售信息可以從股市獲利的金融風險等等,這些是我這種沒見過天兒的選手根本事先么有想到的需求,而在澄清需求過程中,如果沒有相關知識的儲備,可以說完全無法和資深的BA做溝通。所謂需求進,架構出,在這個階段的架構師需要對公司業務,對行業,對數據有非常豐富的經驗,而具體需要上手的操作的技術反而要求不高了。我們稱之為大爺的架構師在我們對OS/390的程序一籌莫展的時候,也能伸出援手去coding,當新款MPP資料庫設計出現問題時,也能提出非常精準的建議和研究方向。因此,其實「硬」技術一直都很重要,只是到了這個階段就會被弱化了,但放棄對技術的學習也會逐漸失去了洞察力。這個階段的架構師需要更多的是對行業以及全方位需求的洞察,對數據整體的把控,對企業發展方向以及數據戰略的Alignment,需要更強的領袖風範,需要更強的說服和談判能力,需要從整個企業的視角去審視架構,需要有平台級的設計觀念,而不是局限於某個項目。

殿堂級:這個我更沒有資格評論了,也沒有共同工作過。我所能理解的還是,他們看的更遠,我們著眼於當下以,他們著眼於未來。

林林總總,說起來高大上,但即使是殿堂級架構師也是普通的人類一步步走上去的。Bigdata時代對技術有了更多的要求,持續學習能力也是架構師必備的素質。我也看到過快60歲的老頭兒還對新技術懷有熱烈的學習動力。

以上,無非是個人片面的看法,只是一個參照而已。
Appendix: 技術列表, 視個人情況而定,沒人能都學全。
1. DB
1) Data Modeling: 3NF, Dimensional Modeling,Data Vault, Anchor(後兩種沒有太大必要學,尤其最後一種)
2) DB Repository:
i. 商用傳統:Oracle, DB2, MS SQL Server, Sybase, Informix
ii. 商用數據倉庫專用:Oracle ExatraData, SAP HANA, Netezza, Teradata, SybaseIQ, GreenPlum, Vertica,
iii. 開源:PostgreSQL, MySQL
iv. NOSQL:MongoDB, Neo4j, Cassandra, HIVE, HBASE, ...
大部分我也只是知道名字而已。
3) Data Modelling Tool: ERWIN, PowerDesigner, Oracle SQL Developer Data Modeler, IBM Infosphere Data Architect
4) ETL: Datastage, Informatica, Ab Initio, Kettle, SSIS
5)多維資料庫:Essbase, TM1, Cognos Powerplay, MS AS,
6) Report: Cognos, BO, Hyperion Performance Suite, OBIEE, MSTR, Qlikview, Tableau, ...
7) Metadata
8) Data Mining: SAS, SPSS, R, Excel, Matlab...
9)MDM
10) Data Quality
11) Data Governance
林林總總,還有各種bigdata的平台,我連名字都不知道。

職業生涯是有很多偶然性的,如果離實際工作很遠,我不是很建議去學習,因為很難深入且容易遺忘,去學習離你近的東西。
吾生而有涯而知也無涯。學海無邊,回頭是岸。

4500+企業選擇FineReport報表與 BI 商業智慧工具【免費下載】
opensource開發,類excel設計,全方位異質資料庫整合,資料填報、Flash列印、權限控制、行動應用、客制化、交互分析、報表協同作業管理系統。

分享自:煉數成金_小數

原文網址:https://t17.techbang.com/topics/36896-enterprise-class-bi-architect-needs-to-have-excellent-quality?page=1