系統知道怎麼做,不代表使用者就該這樣做

從把系統步驟直接變成使用者流程的失敗經驗,說明系統怎麼處理與人要怎麼完成工作是兩個不同問題。

前幾篇寫到,我越來越習慣把人的工作往下拆。

系統需要知道哪些資料?

什麼條件成立之後才能繼續?

現在進行到哪一步?

下一步應該做什麼?

這讓我越來越容易把複雜工作真的做進系統裡。

但後來我才發現,這種思考方式也會帶來另一個盲點。

當我越來越習慣按照「系統要怎麼一步一步處理」來想事情,也很容易把同樣的順序直接做成使用者的操作方式。

我把系統需要知道的東西,一步一步問給使用者

當時櫃檯的功能都放在 LINE 裡完成。

主要操作方式是一張選項卡片接著一張選項卡片。

使用者先從選單進入某個功能。

選完第一組內容,系統再根據前面的結果顯示下一張卡片。

一路往下,直到需要的資料和選擇都確認完成,才執行最後的操作。

對當時的我來說,這種方式很合理。

因為我自己在實作功能時,本來就是這樣拆的。

例如要修改一筆預約,系統可能要先:

找到正確的個案。

找到對應的預約。

確認這筆預約現在能不能修改。

再執行後面的更新。

既然系統本來就是一步一步判斷,我也很自然地讓使用者一步一步跟著走。

系統下一步缺什麼,就再問一題。

下一步還要確認另一個條件,就再多一層操作。

而且這些功能真的可以運作。

資料拿得到。

不同條件會走到對應流程。

最後的預約也能正確更新。

所以我很容易覺得:

「這個功能已經做完了。」

mentor 看完後只說了一句:「這樣太工程師了」

有一次,我把這套操作方式 demo 給 mentor 看。

他看我走完一段多步驟 LINE 操作之後,跟我說:

「這樣太工程師了。」

他建議我重新從一般使用者怎麼完成工作來想操作方式,也提到可以考慮用 Web 介面承接比較複雜的操作。

真正讓我留下印象的,不是「要不要改用 Web」。

而是那句:

「太工程師了。」

因為我第一次注意到:

我正在要求使用者,陪著系統把內部處理流程走完。

系統需要怎麼處理,和使用者要怎麼完成工作,是兩件事

還是拿修改預約來說。

系統背後當然可能需要:

找到個案。

找到預約。

確認狀態。

檢查條件。

最後更新資料。

但櫃檯真正想做的事情可能只有一句:

「我要修改這一筆預約。」

系統背後需要查幾次資料、經過幾層判斷,並不是使用者真正關心的事情。

那些是系統為了完成工作必須處理的細節。

不一定都要變成使用者眼前的一個步驟。

這時我才第一次很明確地分開兩件事:

系統需要怎麼一步一步處理。

以及:

使用者需要怎麼把一件工作完成。

這兩件事情可以完全不同。

系統內部有很多步驟,不代表介面也要有很多步驟

這個差別一看見之後,我開始重新看原本那些多步驟操作。

以前我會想:

現在系統還缺一項資訊。

那就再顯示一張卡片讓使用者填。

接著還要確認一個條件。

那就再進下一層。

從程式處理流程來看,這樣沒有問題。

但對使用者來說,一件原本很直接的工作,可能因此被拆得很長。

他不需要知道系統現在缺什麼。

也不需要跟著每一個內部判斷一起前進。

如果那些資料本來就可以在同一個畫面看到,或者系統自己就能先完成一部分確認,就不一定要把每一層邏輯都做成一次使用者互動。

系統內部的複雜,不應該直接變成使用者操作上的複雜。

「大家本來就會用 LINE」也不能回答所有問題

這也讓我重新看自己一開始為什麼那麼喜歡 LINE。

當時最大的理由很直接:

大家本來就會用。

不用另外學一套新工具。

這個理由本身沒有錯。

LINE 的確降低了很多使用門檻。

但我開始多看到一個差別:

使用者熟悉某個工具,不代表每一種工作都適合被做成這個工具裡的操作。

簡單查詢、通知、單一步驟操作,和需要大量資訊、反覆比較、管理多筆資料的工作,本來就可能需要不同的介面。

我當時還不知道最後應該怎麼分。

也不知道哪些工作應該繼續留在 LINE、哪些要移出去。

但至少第一次知道:

「大家會用 LINE」不能直接推出「所有工作都應該在 LINE 裡完成」。

我開始多問一個問題

在那之前,我檢查功能時最常問的是:

流程有沒有跑完?

條件有沒有判斷正確?

資料有沒有更新?

那次 demo 之後,我開始多問一個問題:

如果真的有人每天使用這套東西,他會想用這種方式完成工作嗎?

我原本一直在學怎麼把人的工作拆成系統可以理解、可以執行的流程。

做到這裡,我才第一次明確看見:

系統知道怎麼做,不代表使用者就該照著系統的方式做。