功能設計2:如何將復雜的功能抽象成簡潔易用的設計?

2 評論 1792 瀏覽 9 收藏 11 分鐘

通過深入探討如何將復雜的功能和規則抽象成簡潔易用的設計,本文帶您領略抽象能力的豐富性和廣泛應用,從班次異常規則到排班規則設計,揭示如何通過高階抽象思維提升設計的靈活性和擴展性,為B端產品設計提供持久的解決方案。

上篇《功能設計:如何將復雜的功能抽象成簡潔易用的設計?》探討了在功能設計中運用抽象能力的方法,并通過班次設計的兩個案例展示了其應用。

雖然這些案例展示了抽象能力的重要性,但個人認為它們不足以全面體現抽象能力的豐富性和應用范圍。

因此,計劃在接下來的文章中,先插入一期內容,然后再繼續探討實體設計和產品架構等主題。

一般來說,功能設計的抽象可以分為兩類:一類是我們最常見的對功能本身的抽象(比如班次、排班、加班、假期等),另一類是常被我們忽略的對功能規則的抽象(如班次規則、排班規則等)。

前者是之前反復重點分享的內容,后者則是本文想補充分享的內容。

案例1:如何設計班次異常規則,保持考勤靈活性?

場景:客戶A考勤規則是:員工每月有3次遲到或早退機會,每次不超過30分鐘。超出30分鐘,扣款標準如下:遲到或早退1-10分鐘,扣10元;11-30分鐘,扣20元;31-60分鐘,扣50元。遲到或早退超過1小時但不超過4小時,按曠工0.5天計算;超過4小時的,按曠工1天計算。

1. 方案1:通過扣款規則自定義階梯實現

扣款邏輯統一由扣款規則,按異常類型(即遲到/早退/缺卡/曠工)進行階梯式扣款規則的配置。

2. 方案2:通過考勤項目自定義字段組合實現

扣款邏輯由考勤項目關聯對應自定義字段,通過公式單獨配置字段的計算邏輯實現。

3. 解析

方案1是一階抽象(即只抽象扣款規則本身),而方案2是二維抽象(即對扣款規則本身抽象的同時,還對規則的規則進行抽象)。

方案1由于規則簡單,易于理解和實施,但缺乏應對復雜情況的能力,且難以適應未來可能的變化(即無法有效擴展)。方案2雖然初始理解和使用成本較高,但其設計考慮了多種情況和未來的擴展性,能夠更好地應對復雜的工作場景和變化的需求。

比如員工每月有3次15分鐘內的免費遲到機會。第4次及以后,1-15分鐘按15分鐘扣款,超過15分鐘按實際遲到時間計算扣款。例如,遲到30分鐘,則按30分鐘除以工作日480分鐘,即0.5小時曠工扣款,扣除相應的計薪天數。

或員工每月有3次10分鐘以內的遲到或早退免責機會。超過3次,每分鐘遲到或早退將按2元扣款。若單次遲到或早退超過2小時,將按每小時曠工計算扣款。

方案1就無法擴展支持上述復雜場景,而方案2卻可以。

案例2:如何設計排班規則,讓排班靈活且合規?

場景:客戶B是一家門店連鎖企業,面臨一線員工多為兼職和小時工,工作時長依客人數量和用餐時長而定,按實際工作時長支付工資。

方案1:單一排班規則抽象,僅進行合規限制

  • 劃線排班(下圖一):默認每天00:00-24:00之間,允許店長自由給員工安排工作時長,且無論時長數,最終都統計為1天。
  • 排班規則(下圖二):可直接按每日、每周、每月限制/提醒排班時長、排休天數等;

方案2:二階排班規則抽象,對排班本身與合規進行限制

  • 劃線排班配置規則(下圖一):可配置劃線排班時,每天的開始與結束時間、每天的統計天數、休息時數、打卡范圍、是否加班等;
  • 排班規則配置規則:可單獨配置每個排班屬性的規則(下圖二),再將N個配置規則靈活組合后(下圖三),作用于對應排班員工。

3. 解析

方案1是一階抽象(即只抽象功能本身的規則),采取“可見即可得”和“能默認就默認”的方式,對使用者和設計者來說,都是直來直往,容易理解。不過它有“致命”的不足之處,不夠抽象而導致靈活性與擴展性不足。

方案2是二階抽象(既抽象功能本身規則,又抽象對功能規則的配置規則),采取“極度抽象,保持配置化”的方式,對使用者的使用有要求,卻足夠靈活,所支持的場景數與擴展性更強。它的“不足”之處是用戶使用的理解成本和研發成本相對高。

比如劃線排班時,門店員工上班時間大多是6:00-22:00(默認00:00-24:00體驗不佳),且可能上半天或全天(默認1天不合理),方案1就不能靈活滿足,也不便于擴展,而方案2就可以靈活滿足。

同理,排班的合規性校驗規則也類同。

方案1的排班規則是一個整體(即排班方案與排班規則是1對N的關系),無法有效區分工作日/節假日等限制時長,也無法靈活配置以及擴展。比如只限制工作日的排班時長,或新增一個每月連續排休天數限制等。

方案2的排班規則是N個排班規則配置項的組合(即排班規則與排班規則配置項是N對N的關系),用戶自由組合規則項即可實現需求。同時,如果有新增項時,可快捷增加對應的【對象】即可。

三、經驗分享

1. 收集多樣化的案例對于功能設計至關重要。

豐富的場景不僅有助于揭示需求的多樣性,還能引導設計者進行更深入的抽象思考。特別是對于那些缺乏想象力和架構能力的人來說,每個場景都是具體的學習材料,場景間的差異能激發更高級別的抽象設計。

2. 即使最終選擇一階抽象方案,也應經歷二階抽象的設計過程。

一階抽象直觀、易于理解和實施,但缺乏靈活性和擴展性。相比之下,二階抽象雖然不那么直觀,卻能提供更高的靈活性和可擴展性,為未來的變化和復雜需求留下空間。

3. 切忌追求需求上線的速度,而放棄產品的擴展性。

B端產品設計是一場馬拉松,考驗的是持續性和耐力。急于求成地將長期策略轉變為短期沖刺,把馬拉松比賽變成短跑,結局就是陷入反復重構的“魔怔”里。

四、寫在最后

本文是【抽象能力:SaaS產品經理的核心能力】主題的第三篇,前兩篇是:

需求分析:如何從復雜的需求中抽象出核心問題?

功能設計:如何將復雜的功能抽象成簡潔易用的設計?

后續會繼續這個主題,分享實體設計、產品架構、產品規劃等。敬請期待,也非常歡迎留言交流。

專欄作家

邢小作,微信公眾號:邢小作之家,人人都是產品經理專欄作家。一枚在線教育的產品,關注互聯網教育,喜歡研究用戶心理。

本文原創發布于人人都是產品經理。未經許可,禁止轉載。

題圖來自 Unsplash,基于CC0協議

該文觀點僅代表作者本人,人人都是產品經理平臺僅提供信息存儲空間服務。

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 雖然還沒看完一整篇(因為知識量對我來說有點多,需要慢慢看)但是覺得老師好牛啊,希望一直更下去~

    來自北京 回復
  2. 嗯,唯一可惜的地方是案例本身具有一定理解門檻

    來自北京 回復