最近一段時(shí)間還蠻神奇的呼胚,仿佛有人再一步步地幫助撥開心中的謎團(tuán)茄唐。
事情的起因是這樣的:
前段自己做了個(gè)業(yè)務(wù)設(shè)計(jì),在團(tuán)隊(duì)Review之前蝇更,我把設(shè)計(jì)文檔命名為【Notification Design】沪编,翻譯成中文,就是【通知設(shè)計(jì)】年扩∫侠看到這個(gè)名字,大家基本應(yīng)該都能輕車熟路厨幻,了解大體上它是干嘛的相嵌,ok腿时。那我來講講為什么用這個(gè)名字呢?一開始和業(yè)務(wù)團(tuán)隊(duì)溝通需求時(shí)饭宾,我們的用語總是這樣的批糟,“我們服務(wù)有了新數(shù)據(jù),我們就通知到你們捏雌,如果XXX跃赚,我們就以事件的方式給到你們”,之類的云云而性湿∥嘲粒看,這不順手拈來嘛肤频。
可能有些人覺得聽著叹括,也沒啥問題,對宵荒,我就是那些人汁雷,不假思索地被業(yè)務(wù)“套路”了。俗話講:入坑了报咳。
后來Review之后侠讯,設(shè)計(jì)被冠以<過度設(shè)計(jì)>之名,讓再修改暑刃。哈哈厢漩,犯了很多人都會犯的錯(cuò)誤拖吼,因?yàn)槟贻p疮胖。
被打回之后,我就反復(fù)思索領(lǐng)導(dǎo)講的話巢墅,嗯架谎,頓悟炸宵,真的是頓悟,我重新把文檔命名為【產(chǎn)品間數(shù)據(jù)交互方案】谷扣。這個(gè)名字土全,有木有一種更清晰的意味,直接反映了業(yè)務(wù)功能会涎,且是不帶具體方案的功能描述涯曲,需要細(xì)細(xì)體會。
事情的經(jīng)過基本就是這樣在塔,文檔的命名由【Notification Design】修改成了【產(chǎn)品間數(shù)據(jù)交互方案】幻件。
方案做完了,功能也開發(fā)完了蛔溃,但是這個(gè)心結(jié)其實(shí)自己一直都沒有過去绰沥。
心心念念,必有回響篱蝇。很巧的是,我遇到了個(gè)很有意思的概念徽曲,叫X-Y > problem零截。
原文如下
......
產(chǎn)品要做的任何事情,都應(yīng)該圍繞著某一個(gè)或某幾個(gè)利益相關(guān)者的具體問題展開秃臣。很多產(chǎn)品經(jīng)理在這里投入的時(shí)間和精力是不夠的涧衙,大家更喜歡花時(shí)間在解決方案上,也就是后面會提到的[用什么方法]上面奥此。這是不對的弧哎,應(yīng)該在理解誰的問題,什么問題之后稚虎,才去想解決方案撤嫩。
這個(gè)錯(cuò)誤也被稱作X-Y problem,也就是蠢终,我們可能希望X問題序攘,然后想到了Y方案,隨后把所有的精力放在Y這個(gè)解決方案上寻拂,而忽略了對要解決問題的本身的理解......
有種說到心里的感覺程奠,這個(gè)X-Y Problem不就是我上面收集設(shè)計(jì)需求的經(jīng)歷嘛,把問題想成了方案的本身祭钉。在這之前瞄沙,我常聽到的另一些原則,比如第一性原理朴皆,做產(chǎn)品地不忘初心等等,這些原則泛粹,大白話遂铡,其實(shí)大體就是上面這位產(chǎn)品經(jīng)理親身體會去理解的東西。這時(shí)候腦海浮現(xiàn)晶姊,為什么懂了這么道理扒接,我們依然過不好這一生~~,可能就是因?yàn)闆]有體驗(yàn)過吧们衙,沒有經(jīng)歷過吧钾怔,果然還是那句話,讀萬卷書蒙挑,不如行萬里路宗侦。
再來一遍,你說你巧不巧忆蚀, 心心念念,必有回響矾利。
就在昨天姑裂,4.23日,聽了一場直播男旗,是張建飛大佬講的關(guān)于抽象的心得舶斧,期間講了一本書《系統(tǒng)架構(gòu) -復(fù)雜系統(tǒng)的產(chǎn)品設(shè)計(jì)與開發(fā)》,結(jié)束后察皇,書正巧幾年前買了茴厉,去書中翻到直播中講的一個(gè)案例,我去什荣,看到一個(gè)標(biāo)題叫【與特定解決方案無關(guān)的功能和概念】矾缓,我的天吶,頓時(shí)心里那個(gè)激動溃睹,原來早有大佬總結(jié)這個(gè)誤區(qū)了而账。
這里,我還介紹下書中的那個(gè)例子
圖中講的是個(gè)開瓶器的例子因篇,現(xiàn)在需求是如何把通過塞子把酒瓶打開泞辐?
通常情況下,我們可以這樣描述這個(gè)系統(tǒng)功能竞滓,
- 使用螺旋把瓶塞拉拽出來咐吼;
- 注入空氣把塞子推進(jìn)去;
- 用叉子把塞子撬出來商佑;
而采用與特定解決方案無關(guān)的方式來命名這個(gè)系統(tǒng)功能锯茄,
- 移動塞子;
看茶没,采用與特定解決方案無關(guān)的方式來命名系統(tǒng)功能肌幽,似乎想象空間一下子都打開了,我們不會陷入里面抓半,因?yàn)橥莆辜薄⑶恕⒗У鹊鹊亚螅际遣煌膶?shí)現(xiàn)方式廊移,我們只要在合適的場景下,選取正確的方式就好了探入。
然后我們再回過頭來看狡孔,前段時(shí)間review的設(shè)計(jì),一下子就明白了蜂嗽,【Notification Design】明顯就是個(gè)帶有技術(shù)特征的設(shè)計(jì)苗膝,根據(jù)這個(gè)名字就很容易想到是否需要引入MQ或者要實(shí)現(xiàn)一套Pub/Sub機(jī)制等來滿足需求。那么可能帶來的后果就是 準(zhǔn)備996了吧V簿伞<孕选芋类!
在Review之后,在新的設(shè)計(jì)方案里界阁,我們僅僅是提供了幾個(gè)API侯繁,讓各個(gè)產(chǎn)品自己來獲取數(shù)據(jù)。就這么簡單泡躯,前一種贮竟,可能就是我們常常說的過度設(shè)計(jì),可以體會下较剃。
就是這樣咕别,一次簡單的成長經(jīng)歷,每個(gè)架構(gòu)人學(xué)習(xí)架構(gòu)中必經(jīng)的路写穴。想起了去年和部門leader一次交流惰拱,他提到,架構(gòu)師大概會經(jīng)歷三個(gè)階段:“1. 缺少架構(gòu)設(shè)計(jì)啊送;2. 過度架構(gòu)設(shè)計(jì)偿短;3. 架構(gòu)設(shè)計(jì)既不能多也不能少;”馋没,大概是這樣昔逗,記得不太清了。這三者其實(shí)是非常難權(quán)衡的篷朵,需要我們在日常的架構(gòu)中不斷地磨煉勾怒,找感覺。
講幾點(diǎn)方案設(shè)計(jì)的感受
- 方案要做400%的設(shè)計(jì)声旺,意思是設(shè)計(jì)要足夠多笔链;
- 多走去調(diào)研,直到你心里不再有疑惑腮猖;
- 要用務(wù)實(shí)的語言寫出方案的Scope鉴扫,務(wù)實(shí)是指用準(zhǔn)確的語言描述業(yè)務(wù)需求;
- 想明白Out Of Scope缚够,我覺得這個(gè)最重要幔妨,這類似學(xué)習(xí)個(gè)組件鹦赎,我們要知道它的使用場景谍椅,更要知道在什么場景下不合適;
- 開放的心態(tài)古话,多聽聽別人的意見雏吭;
好了,干飯人陪踩,繼續(xù)努力吧杖们!