CBB(Common Building Block)即共同性構(gòu)建模塊,指那些可以在不同產(chǎn)品、系統(tǒng)之間共用的零部件、模塊、技術(shù)及其他相關(guān)的設(shè)計成果,軟件、硬件系統(tǒng)都有自己的CBB。在產(chǎn)品中我們鼓勵共享和重用CBB,這里面好處很多,比如對于采購、制造這些領(lǐng)域,CBB可以降低采購成本,降低庫存和出現(xiàn)物料呆死的風(fēng)險,也更利于大批量制造。
我們重點(diǎn)討論一下硬件CBB,硬件基礎(chǔ)模塊是硬件系統(tǒng)中一組實(shí)現(xiàn)特定功能、性能及規(guī)格的實(shí)體硬件單元,對外以硬件接口的方式呈現(xiàn),而接口包含了硬件模塊所提供的功能和應(yīng)用它時所需的要素。硬件基礎(chǔ)模塊是構(gòu)成硬件產(chǎn)品和硬件系統(tǒng)的單元,是基于硬件系統(tǒng)架構(gòu)逐步抽象出來、定義開發(fā)的,硬件CBB包括可共享硬件器件、可共享硬件組件/模塊、可共享單板、可共享整機(jī)、可共享硬件系統(tǒng)等。
對于硬件研發(fā)團(tuán)隊硬件CBB的價值很大,對CBB的堅定投資是有高回報的。首先,硬件技術(shù)、硬件模塊若被大量共享,能夠極大降低研發(fā)成本,提升研發(fā)效率;在硬件共享的基礎(chǔ)上,增加新技術(shù)、新特性,新產(chǎn)品的開發(fā)將一直“站在巨人的肩膀”,利于對市場做出快速反應(yīng)。同時,工程師在一個CBB模塊上持續(xù)發(fā)現(xiàn)、解決問題,提升CBB質(zhì)量,打磨出高質(zhì)量的CBB,這也是產(chǎn)品質(zhì)量保障的有效手段,共享成熟度高的貨架產(chǎn)品,能夠大大增加了產(chǎn)品穩(wěn)定性和可靠性。另外,堅持共享,可以減少開發(fā)團(tuán)隊低水平重復(fù)投入,釋放人力資源做更有價值的工作。
很多做硬件產(chǎn)品的大公司都把硬件CCB作為系統(tǒng)構(gòu)建的核心資產(chǎn),堅持通過CBB的開發(fā)和維護(hù)提高整體設(shè)計效率和設(shè)計質(zhì)量,縮短開發(fā)周期。在大公司里有些高價值的CBB甚至可以跨產(chǎn)品、跨產(chǎn)品線共用,支持不同的應(yīng)用系統(tǒng),具備靈活方便的二次開發(fā)能力;與產(chǎn)品或應(yīng)用系統(tǒng)間界面清晰,能實(shí)現(xiàn)平行開發(fā);硬件CBB模塊功能規(guī)格、性能指標(biāo)清晰,可測試、可維護(hù),還有完善的資料手冊。大公司把CBB的構(gòu)建定義為平臺戰(zhàn)略的關(guān)鍵支點(diǎn),是公司重要的組織資產(chǎn)。
硬件工程師要特別要關(guān)注那些高價值硬件CBB的開發(fā)和維護(hù)。比如,你開發(fā)的無線路由器產(chǎn)品都會應(yīng)用2.4G或5G的棒狀天線,那么就要關(guān)注天線的性能指標(biāo)、降成本空間、應(yīng)用問題等;如果你是開發(fā)服務(wù)器產(chǎn)品的,可能70%的產(chǎn)品都會重用一款X86 CPU,那CPU CBB的硬件設(shè)計就是至關(guān)重要的,CBB交付后,你還要持續(xù)跟蹤供應(yīng)商,刷新器件問題列表,合入新的優(yōu)化點(diǎn)。這些高價值CBB的持續(xù)投入能夠讓借用這個CBB的多款產(chǎn)品都收益。
“好的CBB是管理出來的”,CBB管理過程不是一個獨(dú)立的流程,而是嵌入在產(chǎn)品流程化的開發(fā)活動中。CBB管理可以分為4個階段:定義規(guī)劃、設(shè)計開發(fā)、使用監(jiān)控、維護(hù)優(yōu)化四個階段,詳解一下這四個階段的主要工作。
階段一:規(guī)劃定義階段
在總體設(shè)計階段,就要規(guī)劃CBB,針對不同種類的產(chǎn)品,CBB規(guī)劃的側(cè)重點(diǎn)就不一樣。如復(fù)雜框式硬件,產(chǎn)品的生命周期很長,對于電源、風(fēng)扇、拉手條等關(guān)鍵組件都必須要CBB化;各單板上對于背板的接口、各個單板子節(jié)點(diǎn)的監(jiān)控也要定義為CBB,保證規(guī)則和設(shè)計要求的一致。盒式海量發(fā)貨的單板很多都是系列化的設(shè)計,在一個系列中核心模塊是共用的,比如CPU模塊、業(yè)務(wù)接口模塊等,為了保證一個系列類所有單板都遵循統(tǒng)一規(guī)則,并且整個產(chǎn)品系列成本最優(yōu),這些核心共用模塊都要規(guī)劃為CBB。終端類產(chǎn)品的CBB更有學(xué)問了,這類產(chǎn)品的定制化訴求強(qiáng)烈,單個款型對成本都極度敏感,因此如果定義CBB,必須要和產(chǎn)品設(shè)計耦合度極低,避免對其它模塊設(shè)計有影響,因?yàn)槿哂嘣O(shè)計導(dǎo)致成本增加。
階段二、設(shè)計開發(fā)階段
規(guī)劃好后,我們要進(jìn)行CBB的設(shè)計。首先要確定好硬件CBB的設(shè)計人員,由于CBB是一個通用模塊,工程師設(shè)計CBB時要跳出單板,看到系列化的產(chǎn)品和這個產(chǎn)品的演進(jìn)路徑,心里有全景圖,才可能做出一個有生命力的CBB。定了設(shè)計人員,就要認(rèn)真分析CBB的各種接口,做好抽象的工作,這個設(shè)計很考驗(yàn)硬件工程師,接口定義不全就很難通用化,定義的過于復(fù)雜,冗余太多,又會在CBB上沉淀過多的成本,應(yīng)用起來復(fù)雜度很好。比如,CPU這類核心處理模塊定義CBB難度就很高,內(nèi)存和Flash怎么定義?電源模塊是放到CBB內(nèi),還是CBB外?集成方式是扣板還是在直接放在主板上?等等這些問題都需要仔細(xì)考慮。定義完接口后就要做模塊的原理圖和PCB,想到你的模塊會被大量借用,你就會感到自己責(zé)任重大了。最后,還要提醒一下,CBB一定要通過文檔傳遞你的接口定義和關(guān)鍵的設(shè)計要求,方便借用者使用。
階段三、使用監(jiān)控階段
好的CBB不是一蹴而就了,CBB交付后會在一塊或者幾塊單板上先使用,這時候你就要開始監(jiān)控使用時遇到的問題,不管是在設(shè)計階段還在產(chǎn)品上市發(fā)貨后。硬件工程師要監(jiān)控這些CBB模塊在整機(jī)或者系統(tǒng)被借用時,使用是否方便,接口的定義對主板的設(shè)計限制是否太多了。模塊在發(fā)貨后適應(yīng)不同單板和系統(tǒng)在不同場景應(yīng)用有什么質(zhì)量問題,比如是不是借用到室外產(chǎn)品后防護(hù)規(guī)格就不滿足要求了。收集這些問題后,進(jìn)行記錄和整理,這個是進(jìn)行CBB優(yōu)化的依據(jù)。
階段四、維護(hù)優(yōu)化階段
問題都收集全了,下一步就是進(jìn)行優(yōu)化了,切記每一個改動都要特別小心,要做好記錄,改動點(diǎn)的驗(yàn)證要覆蓋到這個CBB不同的場景上。這里還要強(qiáng)調(diào)一下,硬件CBB的修改是否影響軟件系統(tǒng)要特別注意,我們在CBB設(shè)計階段都會把硬件對軟件的要求寫清楚,和軟件工程師做好澄清,但是在硬件CBB維護(hù)優(yōu)化時,有時會疏漏針對所有借用CBB的單板或整機(jī)同步修改點(diǎn),請軟件工程師分析是否要優(yōu)化軟件,導(dǎo)致了硬件模塊優(yōu)化升級了,軟件適配沒更上,產(chǎn)品一上線問題就暴露了。
這十多年中,我從一個初入硬件行業(yè)的小白逐步成長為一個老練的硬件工程師,我一直在和CBB打交道。
剛進(jìn)入硬件團(tuán)隊的時候被師傅安排去維護(hù)幾個成熟的CBB,根據(jù)收集到的問題進(jìn)行優(yōu)化。那時候有兩點(diǎn)體會,一是有些同事水平很高,設(shè)計出的CBB考慮非常全面,特別是對于場景適應(yīng)性的考慮很細(xì)致,借用到單板或整機(jī)上問題很少,我維護(hù)起來很方便;二是CBB優(yōu)化后的驗(yàn)證是個技術(shù)活,修改點(diǎn)要覆蓋全,這逼著我去熟悉不同的單板。
后來,我有機(jī)會做核心CBB的設(shè)計師,那時候覺得很有榮譽(yù)感,當(dāng)時我做了一個ARM CPU的CBB,做接口設(shè)計時天天都和軟件架構(gòu)師泡在一起,學(xué)習(xí)業(yè)務(wù)模型,軟件規(guī)格升級要求等知識,覺得自己進(jìn)步很快。還有一個讓我印象深刻的事是,當(dāng)時我的主管要求我硬件CBB設(shè)計一定要文檔化,文檔要包括的主要內(nèi)容有:CBB整體介紹,包括功能描述和重要性能指標(biāo)描述,限制條設(shè)計及應(yīng)用關(guān)注點(diǎn);CBB電路設(shè)計,包括原理圖和接口設(shè)計說明,關(guān)鍵接口設(shè)計要求等;CBB PCB設(shè)計指導(dǎo),對于CBB電源、時鐘、散熱的設(shè)計要求都要重點(diǎn)說明;CBB對于軟件的設(shè)計說明,對于一些需要配置的接口要特別寫清楚。
等我成為硬件項目經(jīng)理的時,我更加能體會到CBB的價值和問題,規(guī)劃好的CBB,對于設(shè)計效率,供應(yīng)柔性,制造通用性幫助都很大。然而,我也體會到定義CBB也是一種“妥協(xié)”的結(jié)果,由于在資源、時間、成本等方面的限制,不同團(tuán)隊的核心目標(biāo)可能會和CBB建設(shè)的目標(biāo)發(fā)生沖突。這時候就需要項目經(jīng)理站出來,去平衡各方利益,堅持對團(tuán)隊長期利益最優(yōu)原則,說服大家使用CBB。
同時,我還希望大家多去思考并警惕過度CBB化給產(chǎn)品和團(tuán)隊帶來的“負(fù)作用”。首先在產(chǎn)品設(shè)計中,由硬件CBB搭積木一樣組合一個單板讓硬件設(shè)計缺乏了很多美感,強(qiáng)行使用CBB導(dǎo)致有些設(shè)計很變扭,不得不進(jìn)行妥協(xié),硬件成本做不到極致。其次,CBB質(zhì)量出問題會有蝴蝶效應(yīng),特別是核心CBB出問題對于產(chǎn)品就是災(zāi)難,一個單點(diǎn)錯導(dǎo)致系列化的產(chǎn)品都出錯。2009年起豐田公司旗下的多款車型因加速踏板故障存在自動加速問題,導(dǎo)致多起傷亡,這個剎車門事件就是CBB應(yīng)用的一個負(fù)面典型案例。最后,回到CBB對于硬件工程師的“負(fù)作用”,過多依賴CBB師硬件工程師失去了對產(chǎn)品每個關(guān)鍵模塊設(shè)計細(xì)節(jié)的控制力,由設(shè)計師變成了裝配工人,有空心化的風(fēng)險,很難培養(yǎng)出18般武藝樣樣精通的高手。綜上,不論對于大公司,還是中小公司,硬件CBB都不是萬能的,我們在通過CBB獲益的同時也要預(yù)防CBB給我們帶來的問題。
大公司用CBB能夠幫助團(tuán)隊減少工作量,提升硬件模塊復(fù)用,優(yōu)化了采購、制造等后端流程。但是CBB也是一劑毒藥,對于產(chǎn)品設(shè)計,讓硬件工程師不求甚解,硬件性能、質(zhì)量、成本可能都做不到極致;對于質(zhì)量,有些CBB內(nèi)的問題對于產(chǎn)品就是災(zāi)難,一個錯大家都錯,豐田剎車門就是CBB的一個負(fù)面典型案例。
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報,一經(jīng)查實(shí),本站將立刻刪除。