Open edX 服务企业

Open edX 2018 Conference

The Future of Education is Open Source

今年(2018)的Open edX会议于5月29-31日在加拿大蒙特利尔大学举行.

今年的会议主题是The Future of Education is Open Source, Open edx是这个方向的探索者和引领者。

今年参会的国内赞助商英荔 / Elite Education

目前,我们致力于传授精细化管理的思想和工具。希望能借此帮助企业降低成本,提高收益,让企业在激烈的市场竞争中始终保持自己的优势。
未来,我们将把教育触角伸展至更多元化的方向,联手更多国内外不同领域的教授和专家,设计适应市场变化和需要的精品中文课程,让英荔课堂成为独具匠心的知识凝聚地

会后,英荔 / Elite Education决定以更加开放的姿态拥抱社区,明年3月我们将与英荔一同去圣地亚哥/UCSD参会,做一些技术分享 :)

我们(open edx中国社区)近期正在梳理今年会议的一些报告内容,对其中感兴趣的部分进行解读,之后会在国内不同城市举办一些meetup,具体安排可以关注edustack

使用open edx的企业和高校,欢迎参加线下meetup,我们认为近期的架构调整对整个项目影响很大,如果能利用这次的调整所带来的利好以及社区的工作成果,将节省大家大量的开发成本(时间和人力)。这些重要的调整包括前后端分离、容器化等,这些调整之后,我们认为edx将变得轻量和容易定制,open edx那些埋藏得很深的工作成果,将易于显露,优势将更加突出。

对于服务企业的项目而言,edx一旦变得易于定制,服务的模式将变得更加多样,而服务的成本将降低,那时,open edx在企业中也许会像在全球高校中一样---遍地开花。

今年的会上,我们看到几个与企业内部学习相关的话题,简单做个回顾:

今年的会上,我们看到国外不少的培训,在使用open edx(包括以色列国家队在使用open edx做教师培训:Teachers Training Micro-Learning Innovative Model: Opportunities and Challenges )。open edx虽出生高校(由麻省理工学院和哈佛大学各资助三千万美元创建),近来已经开始关注企业需求,并试图服务企业。

就我个人近半年收到的邮件而言,除了高校之外,越来越多的企业开始关注open edx,试图将其用作企业内部学习平台。

本文关注的正是这个话题:open edx服务企业。下边具体解读一下 open edx为企业提供的库: edx-enterprise

我们主要关心edx-enterprise的两个层面:

  • 需求层面:edx-enterprise用于满足企业的哪些需求
  • 技术层面:edx-enterprise的架构是怎样的,他与edx-platform的关系是什么

edx-enterprise

同名演讲

为了弄清edx-enterprise用于满足企业的哪些需求,我们需要先讨论一下企业对在线学习系统都有哪些需求。让我们来看看2017年open edx会议上的一个同名演讲:edx-enterprise,对应的Slides

演讲的开头,列出了关于企业学习的三个精彩问题:

How can companies keep their employees engaged?
How will employees attain the skills that are most valuable to their employers?
How can companies achieve this in a cost effective and scalable way?

这三个问题向我们阐述了企业学习对于企业的意义。

演讲接下来阐述,edx可以为企业学习带来什么价值:

Career focused content from top-tier institutions
The only major non-profit MOOC provider
Ability to deliver high quality content at scale

那么企业如果愿意接受open edx,企业需要open edx额外提供哪些服务呢

Discovery and curation of course content
Smooth onboarding for employees becoming learners
Feedback on employee performance and engagement in courses

这三点其实就是edx-enterprise所致力去做的

下边我们转到技术视角

技术视角

我们先来看看edx-enterprise的自我介绍:

The Open edx Enterprise Service app provides enterprise features to the Open edX platform. The majority of these features are structured around the concept of an Enterprise Customer, which is an organization or a group of people that “consumes” courses published on the Open edX platform.

这个阐述结合源码,我们可以看到edx-enterprise实际是一个django app,为企业学习的需求(前头提到的三个):

Discovery and curation of course content
Smooth onboarding for employees becoming learners
Feedback on employee performance and engagement in courses

提供技术解决方案。

架构层面

从文档和源码里,我们已经知道了:在架构层面edx-enterprise是一个django app,如文档所说

as a pluggable application for the edx-platform

至此,我们就可以回答开头提出的问题:

技术层面:edx-enterprise的架构是怎样的,他与edx-platform的关系是什么

edx-enterprise在架构上是一个django app,需要插入到edx-platform使用,而无法独立使用:

can’t currently be used outside of edx-platform

如何安装与使用

edx-enterprise已经集成在最新版的open edx中了:base.txt#L119

so new installs should already have it set up and enabled

如果你使用的是新版本的open edx,你将免费得到为企业需求提供的解决方案

那么我们关心的另一个问题可能是:我的系统停留在某个老版本上(诸如F版),我该怎么使用edx-enterprise,别担心,官方对此做了回答:

If you’re migrating from an earlier (i.e. pre-Ficus) release, the only step you might have to do manually is to perform database migrations.

功能描述

前头说到,edx-enterprise为企业学习提供了解决方案,那么它都有那些具体的功能呢?以及我们如何使用这些功能?毕竟绝大部分企业并没有能二次开发open edx的技术人员。

大家大可放心,edx-enterprise提供的功能,都是用户级别(管理员)的,而不是开发者级别的

功能的描述大家可以看一下使用手册

安装好edx-enterprise之后,管理界面的入口为/admin/enterprise

目前已有四项功能:

  • “Enrollment notification email templates” - manages templates used to build enrollment notifications.
  • “Enterprise Customers” - lists and manages Enterprise Customer records.
  • “Enterprise Customer Users” - lists and manages students associated with Enterprise Customers.
  • “Pending Enterprise Customer Users” - lists and manages “pending” Enterprise Customer students.

如果你接触过企业学习系统,可能知道企业一个很大的需求:如何打通用户和数据,让学习系统能与企业其他系统协同。其实不止企业,很多高校也同样存在这个需求。

用户关联

关于打通用户的话题,一般会涉及到统一身份登陆、资源共享等概念。@MT(曾老师)在这块做了很多工作,并成功在高校中使用起来。我此前也写过一些这块的文章,内容比较多,在此不多说,在此我们看看edx-enterprise怎么做。

edx-enterprise使用了关联(Associate)的概念,这是个十分有意思的做法,不同于CAS只解决登陆问题(用户只有登陆后才存在本地用户),关联(Associate)机制允许你将open edx本地用户与企业客户关联起来,即使他们还没有帐户(这些学习者被称为“待定企业客户学习者”),如果你是个异步编程爱好者,你可能觉得这个特性很像Promise,从语义来说它们确实是同个概念。你可以将本地不存在的企业学习者/小组手动注册到课程(当然你也可以用爬虫的思路,批量注册,这个思路我在英荔和大家分享过,之后有机会细说),或者其他更多的事

如果你在企业中使用过open edx,你就知道这个特性有多刚需!它可以解决许多问题

这可以解决千人千面的问题, 我最早得知这个词,是从英荔的Daniel那儿

邮件通知

当一个学习者被要求学习一门课程的时候,我们不该口头跟他说:喂,老板让你去上课啦, 更好的方法是系统主动给他发送一封邮件,而邮件的内容包含了学习的入口,并且允许课程管理员在管理页面里定制这个模版

数据共享

在员工学习课程的过程中,企业的其他系统,如绩效考核系统,想了解员工的课程学习情况和完成情况,这些系统希望学习系统能有个数据接口,把员工的学习情况分享出来。

edx-enterprise提供了这个分享机制

此外edx-enterprise允许直接对接SAP SuccessFactors!

SuccessFactors为不同行业和规模的公司提供了一整套随需应变的企业人力资源执行软件综合套件。

我认为SuccessFactors与open edx的协同是一种正确使用open edx的模式。我们不该期待open edx解决企业太多的问题,它应该专注在做好学习系统

do one thing and do it well

苏格拉底在《理想国》里,关于分工与协作有个精彩的反问

农夫要为四个人准备粮食,他要花四倍的时间和劳力准备粮食来跟其他的人共享呢?还是不管别人只为他自己准备粮食——花四分之一的时间,生产自己的一份粮食,把其余四分之三的时间,一份花在造房子上,一份花在做衣服上,一份花在做鞋子上,免得同人家交换,各自为我,只顾自己的需要呢?

edx专注在学习系统,SuccessFactors则为不同行业和规模的公司提供了一整套随需应变的企业人力资源执行软件综合套件。包含绩效管理、目标管理、360评估反馈、接班人管理、招聘管理、薪酬管理、learning、员工档案等一系列解决方案。

然后通过打通用户和数据,让它们协同起来

This allows learners to create accounts using Single Sign-On from SAP SuccessFactors, and to have their course completion records sent back to SAP SuccessFactors.

我们应该将open edx视为开放生态里的一个成员,尽可能保持open edx内核的干净,通过外围来扩展它,关于这种设计,@李懿在今年会议的现场拍了这张照片,我十分喜欢:

open edx对企业的核心价值

我前段时间在思考,open edx对于企业学习,不可替代的价值在哪里?

我目前的看法是:开放性

开放性允许你共享同行的成果(如国外社区开放的各种开源工作)

开放性允许你根据企业的特性,制作出最适合自己的学习组件。例如你们公司设计了一辆汽车,你们为这辆汽车设计了3D模型,对着3D模型,你们可以向客户展示汽车的卓越设计和优良特性,那么你如何培训你们的销售员工呢?在open edx,你可以将学习资料、问题以及实际可以运行的汽车3D交互模型都纳入学习系统里!

事实上,我在2014年就已经这样做了

你可以在学习系统中移动鼠标,以各个视角观察这辆车,你也可以及时地改变它的款式和颜色

又比如你们公司设计了一个程序语言解释器,你需要搭建一个学习系统,让大家学习并使用你那全宇宙最好的编程语言,你希望大家绕开繁琐的安装,在线直接运行它,你还想得知每个人的学习成果,你生产了软件,并在线上学习系统教会员工和客户如何使用它。你很可能已经将你的解释器集成到jupyter里了,而open edx允许你将jupyter直接嵌入到学习系统里,事实上,今年的open edx会议上有人已经这么做了:Jupyter-based courses in Open edX: authoring and grading with notebooks. 微软也在用open edx做类似的事。

如果你愿意,你在教学云计算的时候,甚至可以将整个云平台都嵌入进来。据我所知,已经有大学利用open edx在这样教学了 :)

我们看到open edx的开放性允许你将企业最有价值的东西移植到线上学习系统,这种开放性允许内容以任何形式来呈现:它是一个可交互的汽车3D模型、一个编程语言解释器、一个图形化编程界面...统统都没问题

我想,上边构想这些,其实是对open edx 2018会议主题的一个注脚:

The Future of Education is Open Source

参考




Fork me on GitHub