At the start of every exciting e-Learning effort by a small, enthusiastic team is the inevitable Debbie-downer question waiting patiently for a break in the conversation to drone "Yeah...mmkay but what LMS will you use?"
What Learning Management System (LMS) will host your content? Manage your assets? Provide authoring tools? Help your students and watch their progress? Allow you to manage, migrate and adapt the live system while remaining reasonably simple to understand and manage for your development team of n=1? And don't forget, you're small and on a tight budget so let's check those prices...oh dear.
We at iBiology Courses went through this night sea journey at the start of our own project, discovering the initial promise and ultimate peril of a large open source LMS. Since then, we've decided to build our own small LMS. If you find e-Learning technology interesting, read on, we'll tell you why.
At the beginning of our project, almost five years ago now, we researched a number of commercial and open source LMS systems. We eventually settled on Open edX, an open source version of the system powering the very large and very successful edX.org website. Open edX was free, well documented, used technology we liked (Django) and had a great community to rely on for support and encouragement. We dove in, and over the years we have researched, built, adapted, hacked, reconfigured, broken, cursed and praised Open edX as we tried to create the kind of experience we wanted our students to have.
Since then we've successfully hosted multiple courses for thousands of students with little downtime or disruption. So we say, thank you Open edX, it worked. iBiology Courses Version 1 was a success.
However, as we've gone through the effort we've come to a hard realization -- the Open edX system might be good for conventional e-learning courses for large groups, but it is too difficult a beast to manage for a small team interested in innovative e-learning features for smaller groups of students.
Open edX is big, complex, hard to change and doesn't focus on the same principles we do. We don't need the power to run thousands of courses for millions of students across hundreds of institutions with 99% uptime...and we realized that we certainly don't want the complexity that kind of system brings. (For more on this topic read Nate Aune's Why Hosting Open edX Is So Complicated.) We do want a clean, highly-usable interface that's easy to change, extend and manage, without a lot of dependencies or fragile technology.
Our focus at iBiology Courses has always been to help students learn by helping them create useful tools for their careers, like the "My Research Plan" (MRP) in the course Planning Your Scientific Journey and the "My Experimental Plan" (MEP) in Let's Experiment: A Guide for Scientists Working at the Bench.
The goal in our courses is not really to earn a certificate -- although we do provide them for students who care -- and we're not interested in coming up with clever ways to make traditional assessments less boring. Rather, we're interested in guiding the student through the creation of a work product that remains relevant and useful, integrating key concepts along the way.
Now, after five years of experimentation and feedback, we're ready to improve and extended this approach. We want to create even more innovative features. We need an iBiology Courses Version 2!
In our Version 2 (V2) system, we want more powerful and involved learning tools that provide continued value, like modern SaaS sites do. We want our system to get better at helping students create things useful for their professional development, and do so with more chances to interact with peers. Underneath this, supporting features like MRP and MEP, we want just a few, basic LMS features...like a system for organizing content into modules. Or a long-form text assessments.
In the spirit of Michael Pollan, we want just enough LMS, not too much, mostly basic content management. That means:
A simpler technology stack that sticks close to boring standards and straightforward techniques to keep our development velocity high. For example, Open edX requires a relational database (MySQL) and a NoSQL database (MongoDB) and all the maintenance and development concerns you get when you multiply them together. A streamlined data model implemented in just one relational database is fine, and by using PostgreSQL will still get unstructured JSON where we need it. Now we've got one, mainstream, predictable, battle-tested relational database that can save arbitrary unstructured data where we need it, for example when we handle the definitions and submitted answers of different types of assessments we invent along the way. Meanwhile we avoid the dark side that is NoSQL.
A simpler programming and implementation approach that focuses on what the user wants: clean presentation of learning content wrapped in a usable interface. Not what developers want, which is often just a chance to implement the latest npm install who-knows-whatzit and it's 2,432 dependencies! Wow, look at them go. So many. It's like confetti.
A reliance on hosted technologies by trusted third parties like Heroku, Amazon Web Services, Bonsai ElasticSearch, and Discourse forums. Those services, used in a way that maintains user privacy, free us from spending lots of time on lower-level concerns, deployment, maintenance, and bug fixing, and gives us top-notch user interfaces (maintained by someone other than us!).
The flexibility to create web applications that have only tangential relationship to traditional LMS systems.
With all the going on about simplicity and pragmatism, it might appear that we're interested in creating a learning site with an aesthetic from the late 1990s.
Far from it. V2 will have a clean, modern, accessible and usable interface with some interesting, rich interactions. The emphasis on the pragmatic -- Heroku build tools, basic Django templates, Bootstrap styles, React-only-where-we-need-it -- is a way to free up our time and energy so we can focus on creating learning tools that remain useful outside the course.
For example, we intend to build a more powerful version of our MRP in v2. We will extend it in a way that allows the MRP to be more engaging and useful. We want students to continue using their MRP long after a course is finished, to continue asking peers (including those outside a specific course) to offer comments and be notified when that happens, to present it to mentors for review, to use it in presentations, slide shows and reports.
Features like that are hard to build surrounded by the steaming pipes and rumbling machinery of a traditional LMS. Features like that don't do so well when presented in an iframe in a clunky LMS via LTI. But features like that are critical to how we think "learning" happens in our courses. We want students to learn by building relevant work products that provide value for years to come.
If we see students coming back repeatedly after a course is finished to improve on their work and share it with others, we know we've succeeded! We want iBiology Courses V2 to help make that happen.