以用戶為中心的軟件開發(fā)

問題

今天這個時代迭代開發(fā)已經(jīng)成為常識,甚至政治正確,隨便誰就能給你扯兩句mvp。敏捷也從一個開發(fā)的名詞變成了管理名詞,迭代、測試、反饋這類名詞滿天飛。

人人都在說這些術(shù)語,仿佛他們真的就懂怎么做軟件了。起碼,覺得自己真的懂怎么創(chuàng)新了。然而經(jīng)不起細(xì)聊,一旦深入下去聊一個mvp,聊聊他的迭代計(jì)劃。就會發(fā)現(xiàn)露餡了,張嘴閉嘴談的都是功能。這個迭代要交付幾個功能,這個mvp多了什么功能?他的競爭對手都有哪些功能?卻很少聽到用戶。人人都在喊,以用戶為中心。口號喊得震天響,但你看他們的行為模式,他們的語言中,并沒有用戶的身影,更像只是在否定別人、固執(zhí)己見的時候拿這個來當(dāng)借口。

我時常覺得這個事情不太對勁。但是也沒有想到更好的方法。敏捷中使用的故事卡比功能的視角要好一點(diǎn)。因?yàn)樵诠适驴ɡ?,你要寫下用戶的價值。但是,我一直也不知道這個價值是從哪兒來的。是先開槍后畫靶子我們想做某個功能了,所以硬安的一些價值,還是真的存在的?價值的單位應(yīng)該是什么呢?沒有單位的東西就無法管理。無法管理,也就無法優(yōu)化。我們交付的價值是越來越多嗎?還是交付的不如以前了?用什么來判斷?

回答不了這些問題,不管輸贏都是有點(diǎn)不明不白的。這些問題的核心問題就是價值的單位應(yīng)該是什么?怎么算一個價值?一直沒想清楚這些問題,直到我看了我們公司設(shè)計(jì)團(tuán)隊(duì)的一個框架MERLIN,又在《創(chuàng)新的窘境》作者的新書《與運(yùn)氣競爭》里看到了理論依據(jù),這個問題在我這里才算是告一段落。我明白了,以用戶為中心的軟件開發(fā)大概應(yīng)該怎么做。

方法核心

如果我們想以用戶為中心進(jìn)行軟件開發(fā)。那么我們的分析方法應(yīng)該是圍繞著用戶展開的。

這個方向倒是不新鮮,一直以來我們在inception的時候做用需求分析時我們的方法就是圍繞著用戶展開的,一個典型的分析過程,如下圖所示。

用戶旅途

我們會在上面畫一條軸,標(biāo)示出用戶旅途。這是用戶在使用軟件的時候的,他的一個全過程。然后在對應(yīng)的時間點(diǎn)上,標(biāo)記出我們的功能。這樣我們的功能就不是平白出來的。每一個都聯(lián)系了用戶價值。相對于一般人會更容易理解功能,在ThoughtWorks,我們更多標(biāo)記的是用戶故事。比起功能,用戶故事增加了有關(guān)價值的線索,因?yàn)橛脩艄适率紫染褪且獙懗鰞r值。

一直以來我覺得這個圖還是不夠給力。首先,從用戶旅途上的點(diǎn),到功能的映射這一步,簡直是個magic move。對未來的讀者來說,并不能很好的傳遞為什么是這樣的一個功能,而不是別的功能?畢竟實(shí)現(xiàn)一個用戶的價值方法有很多。于是后續(xù)在執(zhí)行的過程當(dāng)中,難免會僵化行事。

其次,上面的旅途,還可以再抽象和封裝。簡言之,旅途本身也應(yīng)該是有抽象層次的。一個旅途上的一個點(diǎn),可能也是一段新的旅途。

所以現(xiàn)在我覺得,一個更系統(tǒng)的做法應(yīng)該是這樣的,首先做服務(wù)設(shè)計(jì):

更宏觀的用戶旅途

系統(tǒng)化的分析用戶的行為,過程中與企業(yè)有哪些觸點(diǎn),在這些觸點(diǎn)上,借用《與運(yùn)氣競爭》里的思維框架來講,用戶“雇傭”企業(yè)的產(chǎn)品到底是來做什么的,也就是動機(jī)有哪些。

然后將這些點(diǎn)再進(jìn)一步細(xì)化,采用故事的模式:


故事板

圖上的一行會講一個故事,就像電影分鏡或者漫畫一樣,來表達(dá)用戶使用的故事,真正的故事,而不是用戶故事那種東西,我們叫這個東西故事板。
在故事板上,我們描繪了一個故事,這個故事里,用戶獲得了一種體驗(yàn)。一個故事對應(yīng)一個體驗(yàn)。在基本需求都已經(jīng)得到滿足的今天,體驗(yàn)是新的最有價值的事情,以體驗(yàn)為中心才是以用戶為中心。故事板恰好給了我們一個非常符合人類認(rèn)知習(xí)慣的方式來描述什么是一個體驗(yàn)。也就回答了開頭的問題,什么是價值的單位。

故事板與用戶故事的關(guān)系

當(dāng)我們定義出了價值的單位,就可以從這一單位的價值里面映射出故事卡,來進(jìn)行開發(fā)過程的管理:

故事板是MVP的細(xì)分

這里就是我們的重點(diǎn),我們將來交付的軟件、交付的服務(wù)、我們交付的一個MVP本質(zhì)上是交付給了用戶一組體驗(yàn)。MVP的迭代則應(yīng)該是更多的體驗(yàn)或某些舊體驗(yàn)的升級(也就是同一個動機(jī),換了一個不同的故事來滿足)。

最終我們把用戶的價值很好的表達(dá)了出來,并且找到了用戶體驗(yàn)的基本單位——故事板,由于故事板也可以轉(zhuǎn)化為用戶故事,結(jié)合早已經(jīng)存在的各種敏捷開發(fā)方法,也就可以對體驗(yàn)的交付進(jìn)行度量和管理,達(dá)到以用戶為中心進(jìn)行軟件開發(fā)。

尾聲

很早之前我就覺得MVP是TDD思想在產(chǎn)品策略上的延伸,TDD一個很重要的價值就是避免自嗨從而消除浪費(fèi)。程序員有時候會因?yàn)樽脏藢懗鰜砗枚嘤貌坏降墓δ芎驮O(shè)計(jì),這些都是浪費(fèi)。但是程序員能減少的浪費(fèi)很有限,最終的最終還是要從需求的源頭——用戶層面來減少浪費(fèi)才能真的做好。所謂顧客就是上帝,軟件開發(fā)中用戶就是上帝,這句話的意思不是說用戶說什么你就做什么,而是說你只有貼近用戶,才能得到上帝的啟示,現(xiàn)場有神明,就是這么個道理。

有了MVP之后,就像開發(fā)有了測試驅(qū)動。我們就可以避免很多過度設(shè)計(jì)。但是MVP作為測試,粒度太大了,不好分析,不好寫斷言,不能得到精細(xì)的反饋。這里我們把它分解到故事板層面,就可以得到精確的測試目標(biāo),也就可以做真正精細(xì)的測試,真正做到以用戶為中心。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,872評論 25 709
  • 1.埋點(diǎn)是做什么的 2.如何進(jìn)行埋點(diǎn) 3.埋點(diǎn)方案的設(shè)計(jì) 近期常被問到這個問題,我擔(dān)心我的答案會將一些天真爛漫的孩...
    lxg閱讀 2,335評論 0 1
  • 或許很多的路走著走著就順了
    sayhiss閱讀 245評論 0 0
  • 昨日給母親打了一個電話,通話時間9分50秒。難得保持這么久的通話時間。然而,讓我覺得可悲的是,其中一半以上的時間是...
    視覺筆記_小過閱讀 839評論 0 0
  • 半年前突發(fā)奇想,想要找人一起來討論書。和平常社交場合聊天不同,書能讓人們聊起生命中很深的東西,像是童年回憶、價值觀...
    家華Eva閱讀 1,924評論 1 0

友情鏈接更多精彩內(nèi)容