10張圖詳解“課程配置”模塊
現(xiàn)在知識授課的形式已經(jīng)變得更加多樣化,比如線上授課這一方式就已經(jīng)十分常見,那么線上課程管理系統(tǒng)應(yīng)該如何搭建?在基本的“課程配置”模塊,設(shè)計(jì)人員要注意哪些細(xì)節(jié)事項(xiàng)?本篇文章里,作者就針對在線課程管理系統(tǒng)的課程配置模塊進(jìn)行了設(shè)計(jì)拆解,一起來看。
互聯(lián)網(wǎng)時(shí)代,越來越多的課程和培訓(xùn)從線下轉(zhuǎn)移到了線上,線上課程較于線下課程的弊端在于無法根據(jù)學(xué)員的實(shí)際學(xué)習(xí)情況實(shí)時(shí)的調(diào)整課程的內(nèi)容和講授方式;而對比線下課程,線上課程確能為學(xué)員提供更靈活的學(xué)習(xí)時(shí)間選擇,也能讓內(nèi)容提供方無限擴(kuò)大內(nèi)容的影響范圍從而獲得更多收益。那么如何搭建一套在線課程管理系統(tǒng)呢?
今天我們來詳細(xì)拆解一下課程管理模塊如何設(shè)計(jì)。
一、基本邏輯梳理
1. 從線下課程說起
在學(xué)生時(shí)代,我們會在學(xué)校學(xué)習(xí)語文、數(shù)學(xué)、英語等不同的學(xué)科;根據(jù)年級學(xué)習(xí)的側(cè)重點(diǎn),學(xué)校會安排每個(gè)學(xué)科每天實(shí)際的上課計(jì)劃,直觀來講就是“課表”。
老師在實(shí)際講課的過程中,又會根據(jù)老師自己的經(jīng)驗(yàn)有自己的一套教學(xué)環(huán)節(jié),比如語文課上課前5分鐘先讀一遍新課文、或者數(shù)學(xué)老師在課堂最后10分鐘安排隨堂測試等;在學(xué)期結(jié)束時(shí),每個(gè)學(xué)科還會安排期末測試,以檢驗(yàn)學(xué)習(xí)效果;測試的試卷會由不同類型和分值的試題組成,比如選擇題每題5分、填空每題10分、問答每題20分等等……
根據(jù)以上的場景,我們可以梳理出線下課程的基本結(jié)構(gòu)如下圖,為了將線下課程線上化,線上課程也同樣需要能夠支持這樣的基本結(jié)構(gòu):
2. 因地制宜的調(diào)研
課程管理模塊用于對課程結(jié)構(gòu)和內(nèi)容進(jìn)行配置,即教研人員會在這個(gè)模塊配置供用戶學(xué)習(xí)的課程,根據(jù)商業(yè)模式不同、學(xué)科不同、教學(xué)風(fēng)格不同,每個(gè)公司需要的課程模塊也不盡相同。
想要確定課程的結(jié)構(gòu)體系,就需要先和教研團(tuán)隊(duì)確認(rèn)課程的實(shí)際情況,即從校驗(yàn)團(tuán)隊(duì)的教學(xué)大綱中提煉課目、課程、各種類型和結(jié)構(gòu)等需要在系統(tǒng)上實(shí)現(xiàn)的關(guān)鍵信息,這里筆者提供幾個(gè)調(diào)研的角度:
3. 梳理中要注意的點(diǎn)
雖然產(chǎn)品的基本要求是會畫原型,但是筆者認(rèn)為產(chǎn)品最大的工作量在于對需求的充分理解,只有從背景、干系人、業(yè)務(wù)場景、可能出現(xiàn)的異常等多方面對需求有了理解,才能做到“胸有成竹”的去將想法落實(shí)到原型文檔上。因此在對教研系統(tǒng)背景的梳理中,除了按照教研大綱梳理課程結(jié)構(gòu)以外,應(yīng)該注意以下點(diǎn):
- 需求背景:需求處于什么階段?需要多久上線使用?MVP是什么?這關(guān)系到產(chǎn)品設(shè)計(jì)范圍的控制,如果需求非常緊急,可以接受敏捷的方式實(shí)現(xiàn),則可以粗略設(shè)計(jì)系統(tǒng)的結(jié)構(gòu),而將部分必須功能精細(xì)設(shè)計(jì);
- 干系人:上文中,我們說明了課程相關(guān)的邏輯梳理,但是實(shí)際的使用場景中可能不是教研團(tuán)隊(duì)配置課程,誰來配置課程?課程是否有人審核?線上課程有問題的反饋給誰?這涉及到配置流程和角色權(quán)限的管理;
- 業(yè)務(wù)場景:梳理的結(jié)果應(yīng)該能夠滿足實(shí)際的業(yè)務(wù)場景,可以通過流程圖反饋給干系人,在產(chǎn)品文檔撰寫之前確認(rèn)好設(shè)計(jì)的基本方向。
二、基本功能設(shè)計(jì)
通過調(diào)研和梳理,我們可以整理出一套基礎(chǔ)的課目結(jié)構(gòu),并針對整理出的課程結(jié)構(gòu)分析相應(yīng)的落地實(shí)現(xiàn)方案,用英語課程的結(jié)構(gòu)為例:
1. 科目設(shè)計(jì)
如果我們的業(yè)務(wù)場景如上圖一樣,是確定數(shù)量的課目,那么課目就可以直接作為一個(gè)確定(不需要擴(kuò)展)的類型去設(shè)計(jì)。
但是如果是一個(gè)復(fù)雜的知識性平臺(例如得到),平臺內(nèi)包含了多種多樣的科目,那就需要對先對課目進(jìn)行管理,將課目首先設(shè)計(jì)成一個(gè)可供擴(kuò)展的類型。
科目具體是否需要進(jìn)行管理,還有一個(gè)很重要的一個(gè)判斷依據(jù)是:它是否會作為用戶端的一個(gè)篩選類型,直觀來講就是科目是否作為課程類型供用戶在APP或者網(wǎng)頁上進(jìn)行篩選,如果需要?jiǎng)t需要對科目類型進(jìn)行單獨(dú)的配置管理,甚至要做多層關(guān)聯(lián)性的配置管理,例:
2. 課程設(shè)計(jì)
1)設(shè)計(jì)順序
課程作為一個(gè)單獨(dú)的學(xué)習(xí)內(nèi)容組,是每日課程的一個(gè)綜合體。對外,它需要承載向用戶解釋說明課程內(nèi)容的作用;對內(nèi),它需要對下屬的日課程進(jìn)行配置和管理。
這里筆者建議先設(shè)計(jì)單節(jié)課程的配置頁面,再進(jìn)行課程列表頁進(jìn)行設(shè)計(jì),因?yàn)榱斜眄摽梢砸曌鲗φn程統(tǒng)一信息的一個(gè)整體展示,即每個(gè)列表字段代表了一個(gè)課程的核心要素,這個(gè)要素應(yīng)該是每個(gè)課程都包含的、典型的、重要的,而提煉這些字段需要對每種課程的要素進(jìn)行抽象,那么先對單個(gè)課程的配置進(jìn)行梳理,并在梳理中發(fā)現(xiàn)每個(gè)字段的屬性,就可以順利的對列表的字段進(jìn)行提煉。
2)單個(gè)課程
單個(gè)課程應(yīng)該包含兩個(gè)大的結(jié)構(gòu):基本信息、課程內(nèi)的單個(gè)課程(每節(jié)課)。
基本信息會用于前端用戶的展示策略:用戶需要從圖標(biāo)、課程名、課程簡介對課程有一個(gè)初步的了解;所屬科目和課程標(biāo)簽還可用于前端的欄目管理或用戶內(nèi)容篩選的依據(jù);預(yù)計(jì)課數(shù)用于讓用戶提前了解課程的數(shù)量情況,為用戶提供學(xué)習(xí)選擇的依據(jù)。
課程內(nèi)的單個(gè)課程,即課程下屬的實(shí)際課程,需要為系統(tǒng)提供實(shí)際上課時(shí)的元素,比如上課中用于講解課程內(nèi)容的視頻、用戶可以下載來自己預(yù)習(xí)復(fù)習(xí)的課件,以及學(xué)習(xí)完成后的課后測試等。因?yàn)檎n程是很多單個(gè)的課組成的,所以還需要支持對于下屬課程的增刪和順序調(diào)整的功能。
3)課程列表
完成了單個(gè)課程配置的設(shè)計(jì)后,我們回過頭來看課程列表的設(shè)計(jì),課程列表中應(yīng)該展示課程的基本信息:
作為唯一值的課程編號,課程編號在課程創(chuàng)建后就生成,有了它課程名稱就不需要具有唯一性,即多個(gè)課程的課程名稱可以重復(fù),而用課程編號識別不同的課程;
課程名稱和所屬科目作為課程的基本屬性,配合檢索區(qū)域進(jìn)行課程的快速查找;
應(yīng)用策略支持對課程進(jìn)行上下架管理,即是否讓用戶在前端看到課程,上下架的設(shè)計(jì)需要考慮到課程的實(shí)際關(guān)聯(lián)場景,從用戶接觸到APP開始:下架后售賣此課程的商品有什么影響?下架后用戶進(jìn)入APP是否能看到這個(gè)課程?下架當(dāng)時(shí)正在上課的用戶如何處理?如果課程有學(xué)習(xí)記錄,下架后相應(yīng)的學(xué)習(xí)記錄如何處理?等等一系列的問題,需要在【下架】這個(gè)按鈕的設(shè)計(jì)說明里列清楚,請不要只寫一個(gè)“這里加個(gè)【下架】按鈕”,如果這里的策略產(chǎn)品無法定奪,要及時(shí)和業(yè)務(wù)方溝通方案。
列表中的操作是指的對單個(gè)課程可以做的操作,這里一般來講會有查看和編輯的選擇,編輯是為了修改已經(jīng)創(chuàng)建完成的課程里的內(nèi)容;查看則是為了通過權(quán)限管理實(shí)現(xiàn)部分不可以編輯但是又有“知情權(quán)”的系統(tǒng)使用人員去了解課程配置情況,復(fù)制課程是快捷的生成新的課程,同時(shí)代入已有課程的信息以便修改,用于創(chuàng)建相似度較高的課程。
列表之外,還應(yīng)該支持創(chuàng)建新的課程,點(diǎn)擊按鈕進(jìn)入到上文中講到的單個(gè)課程的頁面,進(jìn)行一個(gè)新課程的創(chuàng)建。
三、抽象與解耦
至此,常規(guī)的系統(tǒng)功能已經(jīng)具備,但是對于課程類型復(fù)雜的平臺,上述的配置還是過于細(xì)碎。我們在進(jìn)行基礎(chǔ)的頁面設(shè)計(jì)的時(shí)候,除了思考與課程結(jié)構(gòu)的符合以外,還應(yīng)該考慮每個(gè)操作背后所關(guān)聯(lián)的邏輯,比如上圖中“課后測試”模塊要怎么實(shí)現(xiàn)呢?
1. 兩種處理思路
我們觀察到,第二種方式其實(shí)是一種概念的抽象,也就是將測試抽象成了一個(gè)單獨(dú)的模塊與課程結(jié)構(gòu)進(jìn)行了解耦,這種解耦有利于在復(fù)雜場景中提升內(nèi)容可復(fù)用度、提高復(fù)雜內(nèi)容的配置效率。
沿著這個(gè)思路,我們再來觀察課程配置的圖例,在實(shí)際的課程配置中,其實(shí)有些章節(jié)是不需要課后測試的,那么除了將課后測試變成“非必填”以外,還有什么方式來處理這種“同一個(gè)模塊下不同組成部分的差異性”呢?答案就是:抽象與解耦。
2. 功能抽象
我們試著將課程環(huán)節(jié)的組成抽象成一個(gè)模型,將環(huán)節(jié)類型作為一個(gè)單獨(dú)的管理模塊,與每節(jié)課的實(shí)際配置進(jìn)行解耦,那么課程管理就會變成這樣:
注意!頁面中,我們增加了類型的選擇,類型決定了對應(yīng)章節(jié)中需要配置的內(nèi)容類型,方便我們對課程的結(jié)構(gòu)進(jìn)行統(tǒng)一的管理,在章節(jié)類型的背后,需要有章節(jié)模型的管理,在對章節(jié)模型進(jìn)行管理時(shí),需要結(jié)合課程的特點(diǎn)去設(shè)計(jì)需要統(tǒng)一管理的模塊,即細(xì)化到對模塊規(guī)格的管理,示例:
抽象與解耦還有一個(gè)容易被忽略的優(yōu)勢,就是提升客戶端的效率,將規(guī)范好的課程結(jié)構(gòu)直接復(fù)用會比每個(gè)課程都判斷一次結(jié)構(gòu)效率要高,舉個(gè)例子:買煎餅的時(shí)候,如果跟老板說“老樣子”或者“套餐一”,會比說:不要蔥花、少放香菜、加一袋辣條、兩個(gè)雞蛋、多放薄脆要來的方便快捷。
四、結(jié)語
在配置型的模塊設(shè)計(jì)的時(shí)候,除了上述的基本功能,還要充分考慮角色權(quán)限的控制,以及操作日志的記錄,以便能夠追溯操作歷史,遇到問題也可以追溯責(zé)任人。
課程設(shè)計(jì)完成后,如何讓用戶看到課程,是所有用戶都能看到且免費(fèi)學(xué)習(xí),還是需要付費(fèi)購買單個(gè)課程,亦或是要充會員解鎖會員課程,這里就涉及到商品模塊的知識了,我們后面再對商品模塊進(jìn)行拆解分析。
本文由 @夢溪 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來自Unsplash,基于CC0協(xié)議
該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺僅提供信息存儲空間服務(wù)。
- 目前還沒評論,等你發(fā)揮!