需求的視角

楔子

在我培養學生的時候,我發現一個很有趣的現象,有些人可以非常好的理解需求,并且能發現需求當中的邏輯矛盾,給出非常好的反饋。更多的人,只是聽了需求,然后沒有任何反應,去做的時候呢,才發現有問題。最可怕的是,明明需求有問題,做的時候他也沒發現問題,最后做出來的功能是有bug的。

想起我吐槽一個學生,讓你掃馬路,你就把土掃到路兩邊,只管中間干凈。跟你說兩邊也要干凈你就把兩邊的掃到中間,說兩邊和中間都得干凈就在兩邊和中間的間隔處推上細細的一條垃圾線。

吐槽雖然可以讓人很爽,但不能解決問題,只是享受了優越感。作為以能力建設為己任的培養者,這種優越感反而是一種打臉,畢竟學員能做到才是我的成功,他做不到我能做到有啥好優越的呢,讓他做到才是我應該追求的優越感。所以我就陷入了深深的思索,到底怎么能讓學員把需求理解清楚呢?看著他們,我開始反觀內視我自己,我是如何做到的呢?

首先我想到,這個是個場景思考的問題,雖說思考用戶場景,很多公司是PO、BA或產品經理的工作,但所謂好的程序員要能頂上半個產品經理,既然我們說是數字人才,每個人都要能理解軟件的使用場景才行。我自己就是會拿到需求后,在腦子里重新構建場景。然而道理說起來簡單,做起來并不簡單,不管我強調多少次,要關注場景,結果也不會好,會的立刻恍然大悟(那種恍然大悟是一種原來我這種做法還有名字的感覺……),大部分不會的人還是那樣……

跳出盒子外

進過長期的觀察,我發現他們是在盒子內思考,而跳不出盒子外。

跳到盒子的外面,才能發現場景

什么是盒子內思考呢?比如一支白板筆。

如果我在白板筆的盒子內看的話。我就會看到筆帽,筆芯和筆管。我可能會關注,筆芯是海綿的,筆帽和筆管是塑料的,不是金屬的。這樣思考就有一個問題等我考慮到顏料的時候,我就不知道應該采用什么樣的原料。就必須要問一個問題,這個白板筆是用來干嘛用?因為如果我在盒子里看白板這個東西,對我是沒有任何含義的。

那盒子外就很好理解了,同樣是描述一支白板筆,我要考慮他,寫出來的東西好不好擦。寫出來的字跡是否清晰可見?粗細是否適中?能用多長時間?成本是多少是,買一個新的還是加墨水兒更合適?一旦跳到盒子外,我還要考慮多角色比如制造商,分銷商,銷售終端,買家不同角色看他的視角。小小一支筆,也不是那么簡單的。

回歸軟件開發的上下文,盒子內就是功能視角,比如:學習平臺要有寫成長日志的功能。盒子外則是業務視角,比如:學員參加了學習后,每天要寫成長日志,總結當日所學,練習總結能力,助教要給他們進行檢查和反饋。比起前者,后者很容易想到,既然是練習總結能力,是不是應該有模板和范文?

我常試好多的方法,試圖讓初學者可以跳出盒子外,大部分都沒啥效果,不要說初學者不會,很多工作過多年的人也有這類問題,也學不會。也曾一度讓我懷疑,這是一種天賦,好在不想對天賦低頭的心,最終還是找到了一種實操性很好的方法。

故事線

我會要求學生畫一種圖。我們管它叫故事線,是一種場景思維的輔助工具。

故事線

這個工具是這樣的用的,每當你要做一個功能,就畫一條故事線,在故事線里面,首先你要定義故事起點。這個故事的起點是一個業務動機。比如說一個系統可以創建用戶,那么這個創建用戶的業務動機是什么呢?我問出去的時候,學生們就會開始思考,想到了說創建用戶的業務動機是有一個新人入職了。

有了業務動機,別人才會使用你的系統,否則你的系統只是你的自嗨而已。不要說學生了,很多工作多年的人在設計系統的時候,依然不思考這個問題。有了動機,你也可以去對比各種不同的解決方案,去想有沒有更好的解決方案?比如在我們這個例子里,動機就是有人入職了要創建用戶,但那么有人入職了之后,誰會來這個系統里面創建用戶呢?這就涉及到方案的不同。可能我們定義的角色是hr。也可能我們這是一家小公司,反正就是那么幾個人,最后就跟一個系統管理員說一聲,他登上來錄進去就好了,對于一家小公司來說,這也可以接受,所以你就會發現,這兩個都是可行的方案。

我們在實踐中發現,有了業務動機這個概念之后,大家就會對場景有更多的思考,也能協作著來對比方案而不是瞎吵架了。

故事線的后面就比較好畫了。我們就畫他在這個系統里面為了滿足他的業務動機,他需要一步一步怎么做的。注意只畫成功路徑,過程中遇到的異常,先不要考慮。這對很多人來說,也是一個很難做到的事情。

在故事線的最后,需要畫出來說,這個故事結束了之后,那么最終,業務的下一個起點是什么?

還是以創建用戶為例,當我們為用戶創建完了之后,我們的下一步是什么呢?下一步可以試試,發個郵件給用戶,也可以是,把用戶名密碼拷給,我們的新員工本人或者他的經理。

學生做的一個案例

小節

如前所述,很多人是沒有場景思維的,他想問題只能想到這個盒子內,而跳不到盒子外去關注使用它的場景。對于這種情況,我們就算明確的指出,他沒有場景化思維,大部分情況下是不會有任何的作用的,大部分人依然沒有場景化思維。他就像我《數字人才的刻“意”練習——開篇》里講到的畫畫需要關注線條一樣,我們需要告訴大家,應該關注在什么地方才會具有場景化思維。那么在這種情況下,我們只需要給他一個非常好的輔助工具,他就真的可以做到跳到盒子外。故事線就是這樣一個工具。實踐中發現,哪怕是畢業生,幾次練習之后也可以快速掌握這種思維方式,更不要說有多年工作經驗的程序員。

雖然在我們項目中是有所謂的業務分析師的,但是優秀的程序員一定會在腦子里重建這些場景。如果程序員不能以這樣的方式畫出來的話,那么程序員做開發的時候也會出現一些問題,比如沒有想全,做出來的程序有問題的情況。所以教給程序員自己這么思考問題是非常重要的,在理解完業務分析師傳達的需求之后,可以在腦子里把這條線畫出來,非常有價值。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容