以終為始:思考產品功能

以工作終點反推畫面、資料、操作與完成條件,說明如何用「以終為始」設計真正幫人完成工作的產品功能。

Day 15 寫到,系統知道案件走到哪裡之後,還可以進一步幫使用者整理:

現在有哪些事情需要處理?

進到其中一個案件之後,我現在會再往下一層看。

不是先問:

「這個頁面要放哪些功能?」

而是先問:

這一步工作最後到底要完成什麼?

這個問題一清楚,畫面上需要哪些資訊、檔案和操作,也比較容易跟著整理出來。

先看工作的終點,不是先看現在用了什麼工具

有一個我印象很深的例子,是工作過程中的檔案交換。

原本有一段工作會透過個人 Email 收發檔案。

使用者收到信之後,要先下載附件,在自己的電腦上完成處理,再重新上傳到 Email 寄出去。

如果只是照著現有操作看,很容易想到:

「那是不是要把寄信功能做進系統?」

但我看到的重點不是 Email。

真正要完成的是:

把這份檔案處理好,讓案件可以繼續往下一步走。

既然這份檔案本來就是案件工作的一部分,我就直接把檔案交換放進案件處理流程裡。

使用者不需要先離開案件、另外進入一個獨立的檔案區,再想這份檔案和哪一件工作有關。

檔案就在這一步工作需要它的地方。

這也是我後來比較常用的思考方式:

先看工作要完成什麼,再決定功能放在哪裡。

每一個工作階段,需要看到的東西本來就不一樣

同一個案件在不同階段,需要處理的事情不一樣。

有些階段主要是確認資料。

有些要處理文件。

有些要新增這一步才產生的資訊。

所以我不希望一個案件頁從頭到尾都把所有資料、欄位、文件和操作全部攤在使用者面前。

我會先問:

現在這一步真正需要什麼?

這一步要看的資料,就放在現在。

現在要處理的文件,就放在現在。

目前不需要的資訊,不必因為它屬於同一個案件,就全部一起出現。

這個方向和我第一個產品時的經驗差很多。

以前我比較容易先想:

「這個功能做得到嗎?」

現在我開始多看一層:

「這個功能放在使用者現在這一步工作裡,真的有需要嗎?」

按鈕不是在叫系統換狀態,而是在讓人完成工作

這個想法也影響了操作文案。

案件往下一個階段走,系統內部當然需要更新狀態。

但使用者真正做的事情,不是:

更新案件狀態。

他可能是在:

  • 完成確認。
  • 送出資料。
  • 提交文件。
  • 把工作交到下一個人手上。

所以推進案件的按鈕,我沒有統一寫成「下一步」或「更新狀態」。

而是盡量直接寫這一步真正要完成的工作。

這和 Day 9 寫過的問題接得很直接。

系統內部怎麼處理,不需要原封不動變成使用者眼前的操作。

對使用者來說,按鈕應該說的是他現在要做什麼,而不是系統背後準備怎麼改資料。

還沒做完,就不要讓案件假裝往前走

知道這一步最後要完成什麼,也會讓另一件事情變得比較清楚:

什麼情況下,這一步還不能結束?

如果還缺必要資料,畫面就應該直接告訴使用者還缺什麼。

如果文件還沒完成,就不能只因為有人按下按鈕,系統便把案件當成已經進入下一個階段。

前面 Day 14 寫過,案件狀態不應該跟著每一個小動作一直變。

到了這一層,我關心的則是:

哪些事情完成之後,才代表這個工作階段真的完成。

工作的終點一旦清楚,這些條件也比較容易被看見。

工作往下走,資料也跟著往下走

同樣的思考也出現在資料上。

如果前一個階段已經確認過一份資料,到了下一段工作,它就應該直接成為後面的工作材料。

下一步只需要補上這一步新產生的內容。

不需要因為工作換了一個階段,就讓使用者重新把前面的資料再輸入一次。

需要產生文件時,也可以直接使用案件一路累積下來的資訊。

工作往下走,資料也跟著一起往下走。

這讓我開始比較少把功能理解成一個個彼此分開的按鈕或表單。

同一件案件裡,前面的工作會替後面準備資料,後面的工作也建立在前面已經完成的結果上。

產品要做的,是讓這些東西順著工作一起往前,而不是每到下一個畫面就重新開始。

我後來才發現,這些設計都從同一個問題出發

檔案為什麼直接放在案件工作裡,而不是另外做一套檔案管理?

為什麼不同階段看到的資訊和操作不一樣?

為什麼按鈕寫的是現在要完成的工作,而不是「下一步」?

為什麼前面已經有的資料會直接帶到後面?

這些看起來是不同設計,背後都在回答同一個問題:

這一步工作最後到底要完成什麼?

先把工作的終點看清楚,再往回整理:

現在需要哪些資料?

哪些文件?

哪些操作?

還缺哪些條件?

做到什麼程度,這一步才真的完成?

當時我只是順著工作這樣設計。

現在把這些做法放在一起看,我會把這種思考方式稱為:

以終為始思考產品功能。