楔子
在我培養(yǎng)學生的時候僚纷,我發(fā)現一個很有趣的現象矩距,有些人可以非常好的理解需求,并且能發(fā)現需求當中的邏輯矛盾怖竭,給出非常好的反饋锥债。更多的人,只是聽了需求,然后沒有任何反應赞弥,去做的時候呢毅整,才發(fā)現有問題趣兄。最可怕的是绽左,明明需求有問題,做的時候他也沒發(fā)現問題艇潭,最后做出來的功能是有bug的拼窥。
想起我吐槽一個學生,讓你掃馬路蹋凝,你就把土掃到路兩邊鲁纠,只管中間干凈。跟你說兩邊也要干凈你就把兩邊的掃到中間鳍寂,說兩邊和中間都得干凈就在兩邊和中間的間隔處推上細細的一條垃圾線改含。
吐槽雖然可以讓人很爽,但不能解決問題迄汛,只是享受了優(yōu)越感捍壤。作為以能力建設為己任的培養(yǎng)者,這種優(yōu)越感反而是一種打臉鞍爱,畢竟學員能做到才是我的成功鹃觉,他做不到我能做到有啥好優(yōu)越的呢,讓他做到才是我應該追求的優(yōu)越感睹逃。所以我就陷入了深深的思索盗扇,到底怎么能讓學員把需求理解清楚呢?看著他們沉填,我開始反觀內視我自己疗隶,我是如何做到的呢?
首先我想到翼闹,這個是個場景思考的問題斑鼻,雖說思考用戶場景,很多公司是PO橄碾、BA或產品經理的工作卵沉,但所謂好的程序員要能頂上半個產品經理,既然我們說是數字人才法牲,每個人都要能理解軟件的使用場景才行史汗。我自己就是會拿到需求后,在腦子里重新構建場景拒垃。然而道理說起來簡單停撞,做起來并不簡單,不管我強調多少次,要關注場景戈毒,結果也不會好艰猬,會的立刻恍然大悟(那種恍然大悟是一種原來我這種做法還有名字的感覺……),大部分不會的人還是那樣……
跳出盒子外
進過長期的觀察埋市,我發(fā)現他們是在盒子內思考冠桃,而跳不出盒子外。
什么是盒子內思考呢食听?比如一支白板筆。
如果我在白板筆的盒子內看的話污茵。我就會看到筆帽樱报,筆芯和筆管。我可能會關注泞当,筆芯是海綿的迹蛤,筆帽和筆管是塑料的,不是金屬的襟士。這樣思考就有一個問題等我考慮到顏料的時候盗飒,我就不知道應該采用什么樣的原料。就必須要問一個問題敌蜂,這個白板筆是用來干嘛用箩兽?因為如果我在盒子里看白板這個東西,對我是沒有任何含義的章喉。
那盒子外就很好理解了汗贫,同樣是描述一支白板筆,我要考慮他秸脱,寫出來的東西好不好擦落包。寫出來的字跡是否清晰可見?粗細是否適中摊唇?能用多長時間咐蝇?成本是多少是,買一個新的還是加墨水兒更合適巷查?一旦跳到盒子外有序,我還要考慮多角色比如制造商,分銷商岛请,銷售終端旭寿,買家不同角色看他的視角。小小一支筆崇败,也不是那么簡單的盅称。
回歸軟件開發(fā)的上下文肩祥,盒子內就是功能視角,比如:學習平臺要有寫成長日志的功能缩膝。盒子外則是業(yè)務視角混狠,比如:學員參加了學習后,每天要寫成長日志疾层,總結當日所學将饺,練習總結能力,助教要給他們進行檢查和反饋云芦。比起前者俯逾,后者很容易想到,既然是練習總結能力舅逸,是不是應該有模板和范文?
我常試好多的方法皇筛,試圖讓初學者可以跳出盒子外琉历,大部分都沒啥效果,不要說初學者不會水醋,很多工作過多年的人也有這類問題旗笔,也學不會。也曾一度讓我懷疑拄踪,這是一種天賦蝇恶,好在不想對天賦低頭的心,最終還是找到了一種實操性很好的方法惶桐。
故事線
我會要求學生畫一種圖撮弧。我們管它叫故事線,是一種場景思維的輔助工具姚糊。
這個工具是這樣的用的贿衍,每當你要做一個功能,就畫一條故事線救恨,在故事線里面贸辈,首先你要定義故事起點。這個故事的起點是一個業(yè)務動機肠槽。比如說一個系統(tǒng)可以創(chuàng)建用戶擎淤,那么這個創(chuàng)建用戶的業(yè)務動機是什么呢?我問出去的時候秸仙,學生們就會開始思考嘴拢,想到了說創(chuàng)建用戶的業(yè)務動機是有一個新人入職了。
有了業(yè)務動機筋栋,別人才會使用你的系統(tǒng)炊汤,否則你的系統(tǒng)只是你的自嗨而已。不要說學生了,很多工作多年的人在設計系統(tǒng)的時候抢腐,依然不思考這個問題姑曙。有了動機,你也可以去對比各種不同的解決方案迈倍,去想有沒有更好的解決方案伤靠?比如在我們這個例子里,動機就是有人入職了要創(chuàng)建用戶啼染,但那么有人入職了之后宴合,誰會來這個系統(tǒng)里面創(chuàng)建用戶呢?這就涉及到方案的不同迹鹅∝郧ⅲ可能我們定義的角色是hr。也可能我們這是一家小公司斜棚,反正就是那么幾個人阀蒂,最后就跟一個系統(tǒng)管理員說一聲,他登上來錄進去就好了弟蚀,對于一家小公司來說蚤霞,這也可以接受填帽,所以你就會發(fā)現悲幅,這兩個都是可行的方案囱桨。
我們在實踐中發(fā)現丽已,有了業(yè)務動機這個概念之后其监,大家就會對場景有更多的思考拷沸,也能協(xié)作著來對比方案而不是瞎吵架了介衔。
故事線的后面就比較好畫了壳鹤。我們就畫他在這個系統(tǒng)里面為了滿足他的業(yè)務動機鉴嗤,他需要一步一步怎么做的斩启。注意只畫成功路徑,過程中遇到的異常醉锅,先不要考慮兔簇。這對很多人來說,也是一個很難做到的事情硬耍。
在故事線的最后垄琐,需要畫出來說,這個故事結束了之后经柴,那么最終狸窘,業(yè)務的下一個起點是什么?
還是以創(chuàng)建用戶為例坯认,當我們?yōu)橛脩魟?chuàng)建完了之后翻擒,我們的下一步是什么呢氓涣?下一步可以試試,發(fā)個郵件給用戶陋气,也可以是劳吠,把用戶名密碼拷給,我們的新員工本人或者他的經理巩趁。
小節(jié)
如前所述痒玩,很多人是沒有場景思維的,他想問題只能想到這個盒子內议慰,而跳不到盒子外去關注使用它的場景蠢古。對于這種情況,我們就算明確的指出别凹,他沒有場景化思維草讶,大部分情況下是不會有任何的作用的,大部分人依然沒有場景化思維番川。他就像我《數字人才的刻“意”練習——開篇》里講到的畫畫需要關注線條一樣到涂,我們需要告訴大家,應該關注在什么地方才會具有場景化思維颁督。那么在這種情況下,我們只需要給他一個非常好的輔助工具浇雹,他就真的可以做到跳到盒子外沉御。故事線就是這樣一個工具。實踐中發(fā)現昭灵,哪怕是畢業(yè)生吠裆,幾次練習之后也可以快速掌握這種思維方式,更不要說有多年工作經驗的程序員烂完。
雖然在我們項目中是有所謂的業(yè)務分析師的试疙,但是優(yōu)秀的程序員一定會在腦子里重建這些場景。如果程序員不能以這樣的方式畫出來的話抠蚣,那么程序員做開發(fā)的時候也會出現一些問題祝旷,比如沒有想全,做出來的程序有問題的情況嘶窄。所以教給程序員自己這么思考問題是非常重要的怀跛,在理解完業(yè)務分析師傳達的需求之后,可以在腦子里把這條線畫出來柄冲,非常有價值吻谋。