一場(chǎng)家庭口角引起的系統(tǒng)重構(gòu)分析

2 評(píng)論 4067 瀏覽 4 收藏 9 分鐘

本文作者以一次家庭口角為切入點(diǎn),將一家三口比喻為不同的系統(tǒng),把家庭吵架的場(chǎng)景抽象到系統(tǒng)設(shè)計(jì)領(lǐng)域,對(duì)系統(tǒng)重構(gòu)進(jìn)行了分析,一起來(lái)看一下吧。

家里儲(chǔ)物柜有個(gè)空間,里面放個(gè)藥箱,藥箱里有創(chuàng)可貼云南白藥消毒水藥棉紗布之類(lèi)的東西。家里的每個(gè)人都知道這個(gè)柜門(mén)打開(kāi)可以找到藥,相信大多數(shù)人家都是這樣的。

隊(duì)友不小心割破了手,嬌弱不勝,癱倒沙發(fā)大聲呼救:“兒子快來(lái),給爸爸找點(diǎn)藥!”

Simon聞言趕來(lái),拉開(kāi)柜門(mén)就問(wèn):“爸爸,拿啥藥?”

“問(wèn)你媽?zhuān) ?/p>

“媽媽?zhuān)寢專(zhuān)寢專(zhuān)“职忠蒙端???/p>

我本來(lái)在陽(yáng)臺(tái)收衣服,聽(tīng)到“問(wèn)你媽”以及“媽媽?zhuān)ㄖ貜?fù)若干遍)”正沒(méi)好氣,進(jìn)了房門(mén),把干衣服一摔,叉腰就問(wèn):“你們倆大老爺們兒連個(gè)藥都拿不出來(lái)了?你難道就不能把藥箱拿出來(lái)給爸爸看看,讓他選一種?非要等我?”

隊(duì)友見(jiàn)我橫眉怒目,放棄嬌弱,小聲嘟囔:“這也不是兒子的錯(cuò)……”

不過(guò),鋼鐵直男Simon已經(jīng)委屈得抽泣起來(lái)。

讓我們先把哭鼻子的Simon放在一邊,把這個(gè)場(chǎng)景抽象到系統(tǒng)設(shè)計(jì)領(lǐng)域來(lái)分析一下。

01 傳統(tǒng)理念:孩子是父母系統(tǒng)的執(zhí)行模塊

假設(shè)爸爸系統(tǒng)為一業(yè)務(wù)核心系統(tǒng),Simon系統(tǒng)為其子系統(tǒng),功能為執(zhí)行爸爸核心的業(yè)務(wù)指令,無(wú)法執(zhí)行時(shí),向媽媽系統(tǒng)通訊,由媽媽系統(tǒng)代為執(zhí)行。

Simon系統(tǒng)小傳:我是一個(gè)使用中心化邏輯的子系統(tǒng)。

我的處理邏輯是:爸爸給我輸入了指令由我來(lái)執(zhí)行,第一個(gè)指令是拿藥。由于指令不清,我無(wú)法執(zhí)行,于是我發(fā)出了疑問(wèn):“拿啥藥?”接著,爸爸給我下達(dá)了第二個(gè)指令“問(wèn)媽媽”,我也執(zhí)行了第二個(gè)指令,但是執(zhí)行失敗,還被媽媽罵,我沒(méi)有做錯(cuò),我很委屈。

Simon的自然邏輯處理方式,在我們的很多業(yè)務(wù)系統(tǒng)設(shè)計(jì)上都有應(yīng)用。即Simon子系統(tǒng)是爸爸系統(tǒng)的執(zhí)行模塊。input和output非常分明。但是問(wèn)題出現(xiàn)在Simon模塊在與媽媽系統(tǒng)交互時(shí),媽媽系統(tǒng)報(bào)錯(cuò),也就是俗稱(chēng)的“接口規(guī)范沒(méi)定義好”。媽媽系統(tǒng)拒絕處理爸爸系統(tǒng)交代的事務(wù)。

不難看出,Simon子模塊在此語(yǔ)境下,是爸爸系統(tǒng)中一個(gè)無(wú)法單獨(dú)抽提出來(lái)的功能模塊,因?yàn)樗粓?zhí)行。

一個(gè)只做執(zhí)行工作的業(yè)務(wù)模塊,永遠(yuǎn)無(wú)法成長(zhǎng)為另一套核心系統(tǒng),人也一樣。而目前這個(gè)模塊之所以這樣,完全是由于爸媽系統(tǒng)之間的交互定義已經(jīng)這樣規(guī)定了,所以,我們必須進(jìn)行重構(gòu)。

02 去父母中心化的新系統(tǒng):內(nèi)生判斷力

如果要重構(gòu)Simon模塊,提高內(nèi)聚并降低耦合,就不得不考慮Simon模塊與媽媽系統(tǒng)之間的交互規(guī)范。

畢竟,在Simon模塊還是幼年的時(shí)候,媽媽系統(tǒng)是接受Simon模塊的指令,并給予執(zhí)行的。但隨著Simon模塊所配置的硬件越來(lái)越強(qiáng),并且正在積累日益龐大的知識(shí)庫(kù),該模塊應(yīng)承擔(dān)更多更復(fù)雜的功能并盡可能地減少將任務(wù)傳導(dǎo)給媽媽系統(tǒng)。因此,爸媽系統(tǒng)之間的接口定義發(fā)生改變,將出現(xiàn)更大灰度,允許Simon模塊在灰度間做更多事情。

首先,需要重新定義的是Simon模塊的業(yè)務(wù)目標(biāo)(注意,這是需求文檔的第一章,很多人認(rèn)為不重要,其實(shí)很重要)。

這個(gè)業(yè)務(wù)目標(biāo)應(yīng)該是,可以使用知識(shí)庫(kù)獨(dú)立處理較為模糊的業(yè)務(wù)指令,并對(duì)爸爸系統(tǒng)輸入的指令進(jìn)行修正和補(bǔ)充,盡量少地將無(wú)法處理的任務(wù)輸出給媽媽系統(tǒng)。

不難看出,Simon模塊正從一個(gè)簡(jiǎn)單的執(zhí)行模塊進(jìn)行智能化升級(jí)。

其次,擁有了知識(shí)庫(kù)的Simon模塊,需要認(rèn)識(shí)到自己正在向一個(gè)獨(dú)立的業(yè)務(wù)系統(tǒng)迭代,而不再是爸爸系統(tǒng)的子模塊,在這個(gè)過(guò)程中,會(huì)出現(xiàn)一些混亂,這是正?,F(xiàn)象。例如:接收爸爸系統(tǒng)的指令之后,通過(guò)知識(shí)庫(kù)分析后決定不執(zhí)行,并在挨揍之后修正知識(shí)庫(kù);接收爸爸系統(tǒng)的指令之后,通過(guò)知識(shí)庫(kù)分析后執(zhí)行,其執(zhí)行結(jié)果爸爸系統(tǒng)給予報(bào)錯(cuò)后,如何處理,等等。

有了這個(gè)基本思路之后,我們返回業(yè)務(wù)場(chǎng)景進(jìn)行重構(gòu)。

03 重構(gòu)的本質(zhì)也許是視角的改變

讓我們?cè)倩氐健澳盟帯边@個(gè)場(chǎng)景中,升級(jí)視角來(lái)處理這個(gè)問(wèn)題。

余不贅述,當(dāng)Simon接收到“問(wèn)你媽”這個(gè)指令時(shí),需要?jiǎng)佑弥R(shí)庫(kù)來(lái)分析這個(gè)指令。

第一步:偵測(cè)媽媽系統(tǒng)是否可用。偵測(cè)結(jié)果是,媽媽系統(tǒng)正忙,無(wú)法實(shí)時(shí)返回結(jié)果。

第二步:重新定義指令目標(biāo)“拿藥”,發(fā)現(xiàn)可通過(guò)“把藥箱拿出來(lái)給爸爸選”這個(gè)方式達(dá)成業(yè)務(wù)目標(biāo),于是執(zhí)行該決策。

顯然,在這種處理方式中,Simon模塊已經(jīng)能夠分辨出當(dāng)前最主要的業(yè)務(wù)目標(biāo)是”拿藥”,“拿藥”與“問(wèn)你媽”是存在邏輯關(guān)系的,即“問(wèn)你媽”只是爸爸系統(tǒng)對(duì)于“拿藥”這個(gè)目標(biāo)提出的一種解決方案,而不是與“拿藥”相并列的另一個(gè)業(yè)務(wù)指令。能夠分辨最高業(yè)務(wù)目標(biāo),與為完成目標(biāo)而提出的解決方案,這是AI至今為止都很難企及的智能高度。

04 尾聲&實(shí)操:人應(yīng)該這樣長(zhǎng)大

如果我們要重構(gòu)系統(tǒng),那么必然系統(tǒng)在本次重構(gòu)后,能執(zhí)行一些和重構(gòu)前不同的功能。給系統(tǒng)加功能不難,難的是這些功能加在哪個(gè)模塊,為什么需要這個(gè)模塊來(lái)執(zhí)行而不是別的。

唯物辯證法講物質(zhì)決定意識(shí)。因此系統(tǒng)設(shè)計(jì)也類(lèi)似人與人之間的關(guān)系變化,或人體內(nèi)部的關(guān)系變化。當(dāng)一個(gè)模塊被賦予更多功能,或與其他系統(tǒng)的交互方式變得灰度更大時(shí),我們要關(guān)注,這個(gè)模塊的智能化升級(jí),會(huì)造成外系統(tǒng)的一些錯(cuò)亂,要重構(gòu),就要把與之關(guān)聯(lián)的外系統(tǒng)通通檢查一遍,是否可適應(yīng)這種變化,否則,重構(gòu)是不可能取得成功的。

對(duì)于孩子其實(shí)是相同的道理,他們需要知道自己已被賦予更多自由度,也應(yīng)該了解這些自由度代表著他們將對(duì)結(jié)果承擔(dān)更多的責(zé)任。

本文由@echo回聲 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。

題圖來(lái)自Unsplash,基于CC0協(xié)議

該文觀(guān)點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺(tái)僅提供信息存儲(chǔ)空間服務(wù)。

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 爸爸說(shuō)得對(duì),確實(shí)不是兒子的錯(cuò)。人類(lèi)語(yǔ)言的缺陷。后天訓(xùn)練不當(dāng),習(xí)慣性把指令和需求混為一談。指令和需求明明是兩個(gè)概念,非要變得模糊,容易產(chǎn)生誤解。系統(tǒng)設(shè)計(jì)原則越簡(jiǎn)單越不容易出錯(cuò)。這種場(chǎng)景下,兒子只是爸爸的手,手只能等爸爸的大腦把藥品信息傳過(guò)來(lái),此時(shí)又傳來(lái)另一個(gè)指令,只是執(zhí)行“問(wèn)媽媽”指令,讓媽媽系統(tǒng)拋出異常了。要優(yōu)化的是大人,把問(wèn)題描述清楚,讓孩子獨(dú)立思考解決問(wèn)題。

    來(lái)自江蘇 回復(fù)
  2. 提煉為一句話(huà):發(fā)現(xiàn)用戶(hù)真實(shí)的需求,以最小代價(jià)執(zhí)行。

    來(lái)自四川 回復(fù)