產(chǎn)品設(shè)計(jì):冗余、安全與效率
互聯(lián)網(wǎng)上對(duì)于冗余的專項(xiàng)研究寥寥,然而無論是產(chǎn)品使用流程規(guī)劃還是系統(tǒng)設(shè)計(jì),冗余都應(yīng)該成為一種思考的尺度和方式,幫助我們做出更好的選擇。
什么是冗余?
維基百科中冗余的定義是:
系統(tǒng)為了提升其可靠度,刻意配置重復(fù)的零件或是機(jī)能。
冗余是系統(tǒng)視角中才有的獨(dú)特概念,冗余無法單獨(dú)存在。如我們可以說數(shù)據(jù)異地備份是數(shù)據(jù)存儲(chǔ)系統(tǒng)的冗余設(shè)計(jì),但是不能說數(shù)據(jù)存儲(chǔ)在 3 個(gè)不同地理位置的機(jī)房是冗余。
我對(duì)于冗余的興趣,最早來自學(xué)校的打印店。很多大部頭的書或者論文(雖然很多文字是無意義的廢話)打印出來進(jìn)行熱膠裝。由于紙張沒有辦法十分精準(zhǔn)地對(duì)齊,打印店通常都會(huì)用一個(gè)機(jī)器裁切:將裝訂好的書本放進(jìn)去,然后調(diào)整好尺寸,之后師傅雙手需要同時(shí)按住位于機(jī)器左右兩側(cè)的按鈕,鍘刀才會(huì)下來將書本裁剪整齊。
從機(jī)械設(shè)計(jì)來說,一個(gè)按鈕也可以實(shí)現(xiàn)閘刀的起落,因此起初我以為是機(jī)器型號(hào)所導(dǎo)致的按鈕設(shè)置,直到我寫了更多無用的長篇論文,在不同打印店里見證了一次又一次鍘刀的起起落落,才發(fā)現(xiàn)按鈕在機(jī)器的兩側(cè)其實(shí)是一種標(biāo)準(zhǔn)設(shè)計(jì)。
原因很簡單:安全——只有兩只手同時(shí)按下操縱按鈕,鍘刀才會(huì)啟動(dòng),保證鋒利的鍘刀不會(huì)傷害到人手。
很多公司的熱飲水機(jī)也加入了類似的冗余設(shè)計(jì):如果想要出熱水,需要額外按住一個(gè)功能鍵,以防止誤操作導(dǎo)致被燙傷。
今年受疫情影響,我們?cè)诩依镛k公了很長一段時(shí)間。為了保證每位員工沒有在家劃水,老板開始要求每天寫日?qǐng)?bào)、每天開晨會(huì)同步當(dāng)天工作內(nèi)容與進(jìn)展。從公司運(yùn)行系統(tǒng)來講,晨會(huì)和日?qǐng)?bào)的制度,也是在 KPI、雙月績效之外的一種冗余設(shè)計(jì)。
所以,我又重新激發(fā)了對(duì)于冗余的興趣,特別感興趣的是冗余的必要性,以及它與效率之間的關(guān)系。
冗余設(shè)計(jì)
只要仔細(xì)觀察,你會(huì)發(fā)現(xiàn)冗余在生活、工作中無處不在,甚至在人的身體器官中,眼睛、耳朵等器官的雙備份機(jī)制也是一種冗余機(jī)制,保證人體的正常運(yùn)轉(zhuǎn)。
工程中的冗余設(shè)計(jì)
冗余設(shè)計(jì)在工程中應(yīng)用非常廣泛。
今年 3 月,旗下的獵鷹 9 號(hào)成功發(fā)射,但是回收失敗,因?yàn)樵诎l(fā)射過程中,獵鷹 9 號(hào)的其中 1 個(gè)發(fā)動(dòng)機(jī)爆炸,得益于獵鷹 9 號(hào)動(dòng)力系統(tǒng)的冗余設(shè)計(jì),火箭上共有 9 臺(tái)發(fā)動(dòng)機(jī),其中 1 臺(tái)發(fā)生了爆炸之后,其他發(fā)動(dòng)機(jī)繼續(xù)正常工作,才保證衛(wèi)星正常進(jìn)入軌道中。
圖片源自網(wǎng)絡(luò)
在航天飛機(jī)中,冗余設(shè)計(jì)更是隨處可見。引用一篇介紹 NASA 冗余設(shè)計(jì)的文章:
航天飛機(jī)……而是依靠四臺(tái)獨(dú)立的計(jì)算機(jī)運(yùn)行相同的導(dǎo)航和制導(dǎo)軟件,并接收相同的數(shù)據(jù)輸入。這四臺(tái)計(jì)算機(jī)作為民主的縮影而運(yùn)作。它們中的三臺(tái)計(jì)算機(jī)必須就它們所衡量的內(nèi)容達(dá)成共識(shí),才能采取行動(dòng)。
如果三臺(tái)計(jì)算機(jī)同意,而第四臺(tái)計(jì)算機(jī)不同意,那么出現(xiàn)這種情況宇航員就會(huì)關(guān)機(jī)或重新啟動(dòng)它。這就使得避免災(zāi)難或代價(jià)高昂的停頓所需的快速?zèng)Q策成為必要。如果多臺(tái)計(jì)算機(jī)出現(xiàn)故障,或者無法達(dá)成共識(shí),那么一臺(tái)同樣可以訪問航天飛機(jī)控制系統(tǒng)的額外計(jì)算機(jī)就可以接管。它可以進(jìn)行預(yù)編程的粗略(但安全)的上升、中止和再入。
——InfoQ. 在太空里不懼宕機(jī),NASA是怎么做到的?
制度設(shè)計(jì)中的冗余
高中學(xué)習(xí)宋史時(shí),都會(huì)頻繁提及“冗官”、“冗兵”、“冗費(fèi)”的“三冗”。據(jù)資料:
北宋官吏2.4萬人,是唐朝的1.28倍;每10萬人中平均擁有的官吏數(shù)是51人,不僅超過唐朝的35人,也超過元(27人)和明(37人)。
——?jiǎng)⒑V才&楊一凡:論北宋的冗官問題
造成官吏冗余的重要原因一方面是大量恩蔭制度造成的官員累積,更重要的是為了分散權(quán)力,設(shè)置了諸多機(jī)構(gòu),如中央將宰相權(quán)力一分為三,在地方設(shè)置通判分割行政權(quán),又設(shè)置轉(zhuǎn)運(yùn)使和按察使分割司法權(quán)。此外,宋朝官制中官、職、差遣三者分離,官制職能重疊,難免導(dǎo)致冗官,特別是在宋朝后期。
我們部門設(shè)置的晨會(huì)+日?qǐng)?bào)機(jī)制,本質(zhì)上也是一種制度冗余。雖然我很厭倦晨會(huì),但是一想到第二天要在晨會(huì)上說點(diǎn)什么,今天總得寫一點(diǎn)什么、做一點(diǎn)什么,即使是“面向晨會(huì)”的工作,也總是逼迫著自己有一些產(chǎn)出。最初我們的晨會(huì)開的像周會(huì),每次能開 1 個(gè)多小時(shí),導(dǎo)致大量時(shí)間被浪費(fèi)。
不是所有的制度冗余造成的結(jié)果都是負(fù)向的。例如在我國,機(jī)場塔臺(tái)管制員實(shí)行雙崗制,一個(gè)是主管制員,直接指揮飛機(jī),另一位則是助理管制員,負(fù)責(zé)監(jiān)聽與監(jiān)督,當(dāng)主管制員發(fā)出的指令有誤時(shí),助力管制員需要及時(shí)提醒與糾正,兩人共同決策。通過兩個(gè)人的決策,減少因決策失誤導(dǎo)致的事故發(fā)生的可能性。
實(shí)際上,2016 年上海虹橋機(jī)場兩架東航飛機(jī)險(xiǎn)些相撞的事故,事后調(diào)查認(rèn)為差點(diǎn)釀成悲劇的原因,雙崗制落實(shí)不到位被重點(diǎn)提出來。
冗余機(jī)制
如何設(shè)計(jì)冗余?
主動(dòng)冗余與被動(dòng)冗余都是常見的冗余機(jī)制設(shè)計(jì)。
主動(dòng)冗余指的是系統(tǒng)自動(dòng)監(jiān)控運(yùn)行,一旦檢測到某個(gè)設(shè)備損壞,則會(huì)調(diào)整系統(tǒng)配置切換到正常設(shè)備上。例如 GPS 定位系統(tǒng)中除了 24 顆在軌的衛(wèi)星,還有 3 顆備份衛(wèi)星,一旦某顆衛(wèi)星“壽終正寢”或者突發(fā)故障而導(dǎo)致不能工作,則可以由備份衛(wèi)星及時(shí)頂上。在主動(dòng)冗余系統(tǒng)中,系統(tǒng)必須實(shí)現(xiàn)錯(cuò)誤檢測、隔離重配置的自動(dòng)化。
公開報(bào)道中,Google 的無人車在電源、定位測量、轉(zhuǎn)向、制動(dòng)和計(jì)算系統(tǒng)中均有主動(dòng)冗余設(shè)計(jì),一旦某個(gè)子系統(tǒng)出現(xiàn)某個(gè)問題,系統(tǒng)會(huì)自動(dòng)切換到備用系統(tǒng)中,以最大程度保證安全。
被動(dòng)冗余則是通過多余的設(shè)備或能力,來減少某個(gè)零部件損壞引發(fā)的損失。如在設(shè)計(jì)橋梁拉索的承重能力的時(shí)候,一般都會(huì)在要求之上再加一些額外的承受能力。再比如你在今晚 6 點(diǎn)鐘跟別人有一場重要的約會(huì),通常你不會(huì)根據(jù)地圖估算的時(shí)間掐點(diǎn)到,而是會(huì)充分考慮堵車、等車額外需要花費(fèi)的時(shí)間,多拿出半個(gè)小時(shí)的時(shí)間作為備用。
N 模塊冗余(N Modular Redundacy):通過 N 個(gè)系統(tǒng)對(duì)同一個(gè)輸入進(jìn)行計(jì)算,比較輸出的結(jié)果,對(duì)結(jié)果進(jìn)行投票,取大多數(shù)的輸出為最后的輸出。
常見的為三重模塊冗余:如果 3 個(gè)系統(tǒng)計(jì)算的結(jié)果不一致,取 2 個(gè)一樣的結(jié)果為最后輸出。
冗余與安全
冗余一般為安全而設(shè)計(jì),例如上文提到的機(jī)場塔臺(tái)雙崗制,然而隨著系統(tǒng)復(fù)雜性提高,冗余讓系統(tǒng)復(fù)雜性提高,反而可能會(huì)產(chǎn)生意外的錯(cuò)誤,特別是冗余中有人的因素的時(shí)候,發(fā)生錯(cuò)誤的概率也會(huì)提升。
1929 年,美國三哩島核電站發(fā)生核泄漏,是美國商業(yè)核電史上最嚴(yán)重的的一次事故,雖然沒有對(duì)公共安全和周圍居民健康造成不良影響,但核污染的清除,總共花了 14 年的時(shí)間與 10 億美元的代價(jià),更重要的是,美國商業(yè)核電站陷入長期低迷中。
2 號(hào)機(jī)組反應(yīng)堆冷凝水泵突然故障,反應(yīng)堆中熱量堆積導(dǎo)致堆芯壓力上升,此時(shí)備用水泵按照程序應(yīng)該啟動(dòng),替代故障水泵完成冷卻水的供水,然而備用水泵沒有按照計(jì)劃啟動(dòng),因?yàn)榍皟商斓囊淮螜z修中,輔助給水系統(tǒng)中隔離閥沒有按規(guī)定打開,導(dǎo)致備用給水系統(tǒng)沒有任何反應(yīng)。整個(gè)事件處理過程中,加上一些人為的錯(cuò)誤,差點(diǎn)導(dǎo)致堆芯熔毀和放射性物質(zhì)逸出。
雖然經(jīng)過 15 個(gè)多小時(shí)的奮力搶修,反應(yīng)堆才幸免于難,然而迫于公眾壓力,時(shí)任總統(tǒng)卡特宣布“美國不再建設(shè)核電站”,直到近 30 年之后奧巴馬時(shí)代才重啟核電站項(xiàng)目。
冗余設(shè)備讓人放松警戒,可能會(huì)引發(fā)更大事故。典型的如特斯拉的自動(dòng)駕駛系統(tǒng),讓人誤以為是安全的,很多事故中司機(jī)手離開方向盤,將所有決策交給 Autopolit,最終導(dǎo)致交通事故的發(fā)生。
所以業(yè)內(nèi)一直在爭論:到底是 L3 級(jí)別的輔助駕駛更安全,還是 L5 級(jí)別的完全無人駕駛更加安全。L3 級(jí)別的駕駛,還沒有達(dá)到完全自動(dòng)的狀態(tài),但是讓司機(jī)誤認(rèn)為可以將決策交給自動(dòng)駕駛系統(tǒng),或者由于自動(dòng)駕駛系統(tǒng)的存在降低了注意力,最終導(dǎo)致事故的發(fā)生。
冗余與效率
直覺上,冗余設(shè)計(jì)似乎與效率相背而行,但是在一個(gè)完整的系統(tǒng)下考慮,一定程度的冗余可以保證系統(tǒng)的穩(wěn)定性與可靠性,減少因?yàn)殄e(cuò)誤導(dǎo)致系統(tǒng)宕機(jī)的概率,從而提升效率。然而凡事“過猶不及”,一味追求穩(wěn)定性而增加冗余設(shè)計(jì),最終也會(huì)損傷效率。盡管沒有明確度量冗余、效率的指標(biāo),如果將冗余和效率分別放在橫縱坐標(biāo)上,畫出來的一定又是一條“微笑曲線”。
刪除是我們?cè)诋a(chǎn)品設(shè)計(jì)中的常見功能之一。一般而言,刪除之前會(huì)通過一個(gè)彈窗的形式進(jìn)行二次確認(rèn),避免用戶操作失誤導(dǎo)致的誤刪除。然而,我們也見識(shí)過PC端各類殺毒軟件的全家桶,除了各種捆綁下載、后臺(tái)靜默安裝之外,卸載操作時(shí)反復(fù)確認(rèn)操作、增加用戶的卸載成本,也是讓人厭惡的騷操作。
互聯(lián)網(wǎng)上對(duì)于冗余的專項(xiàng)研究寥寥,然而無論是產(chǎn)品使用流程規(guī)劃還是系統(tǒng)設(shè)計(jì),冗余都應(yīng)該成為一種思考的尺度和方式,幫助我們做出更好的選擇。
作者:余子申;公眾號(hào):簡寫2019
本文由 @余子申 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自Unsplash,基于CC0協(xié)議
- 目前還沒評(píng)論,等你發(fā)揮!