The post LMS era: Suite of Tools learning networks

*This post is essentially a compilation of work I’ve been spreading out amongst many different mediums, both here on this blog and elsewhere around the inter-webs.  This also isn’t the most logically connected argument, I just needed a break from code.

The first step to changing the ocean is to stop looking to it and instead step in.  Properties of basic physics and hydrodynamics kick in and you are in effect changing the environment that you previous only observed.  Instead of talking about the LMS, the MOOC market, or anything else that I often see learning designers discuss.  Let’s skip ahead a bit. 

Let’s talk about the post LMS society that we wish to create.  The how, where and why.

How do we get to a post LMS era?  I’ve talked about what I felt would cause the eventual end of the traditional LMS before.  Talk is cheap, so diagrams about how to accomplish this would be the next best thing, right?

This video then goes on to show these diagrams produced as a fully functional prototype, with video introduction to the work.

 

http://www.youtube.com/watch?v=DY7U0cDVtlY&feature=share&list=PLJQupiji7J5f2S0jy05aFjMwGYGEpB4GF

And this talk, which is a rebroadcast of my DrupalcampNJ presentation “Using Drupal to Transform Education” http://vimeo.com/60084560 consolidates the entire thing into one presentation.

The structure and nature of education system deployments is wrong

This is probably one of the more controversial statements that I stand by but typically don’t say.  It shows my generally libertarian, small central authority mentality, for one, and for two: no one is doing anything but it.  Come to us, we are the hub, we can provide everything you need in one place says every vendor out there, and the new MOOC platforms are simply replicating this model in a different location and calling it open.

The structure needs to start at a central point but that center ring needs to be as small as sustainably possible.  It needs to help knit things together and keep the “LMS” data that is currently stored in large buckets, spread out and accessible to new buckets (through a process of LTI resigning).

Opening up new off ramps

This is where I’m hoping LTI will be the Trojan horse it appears to be, as someone noted at my talk in NJ (which I wish we had the audio of).

So, you are advocating that people use these tools that you ship them off to and increasingly, they’ll use the LMS less and less.  Eventually.. you’ll do so much outside the LMS that you won’t need an LMS anymore.

Eureka, we have a winner.  If we build enough off-ramps out of the system that while meeting some people’s needs, doesn’t meet everyone’s, we will eventually connect to other areas that people want to hang out.  This pattern is quite similar to the western growth and expansion of America in the early 1800′s.

People slowly were moving away from the major cities to parts unknown after the revolution.  What changed that caused population migration to explode? Mike Rowe will have you believe it was booze, but I’d contend it was gold and rail-roads.

Well gang, LTI is the railroad, and glittering prizes await those that create proper off-ramps for different tool sets that people are dying to get access to.

But, but, but privacy

Absolutely an issue.  What happens when we start letting people go anywhere and everywhere?  The same exact thing that happens now, we just introduce calculated risk instead of unknown risk.

Huh?

Innovation is happening with faculty every day, every where.  This often times I’d guess is at the expense of telling others about it.  The number of threads you can find on the Internet about cool new tools and different edtech applications is staggering.  If we don’t provide a solution to new cool shiny object xyz, people will find a way around the systems in place to get students into the new bucket they’d like to use.

As set in motion in the last 6 months

 

 

Systems

So I’m doing my part to provide options, how bout you?  These 4 tools are all being developed simultaneously (which completely wrecks me mentally some days, hence this brain dump of a post) but it doesn’t mean that all tools in a network NEED to be Drupal.  It’s just to say that it’s the only system that a single developer could even attempt something this insane through automation.

Drush command

Actual drush command to build 183 drupal sites with a single command. Setting up a massively extended, LTI aware series of new buckets to be accessed after creation. This was a test run at the time of publishing.

Course information system (ELMS:CIS) – Center point and middle-ware communications hub that bridges old world to the new one.

Content tool (ELMS: MOOC) – The instructional design centric course outlining tool.  This is the content outline that all instructional flow and material is attached to.

Social critique tool (ELMS:CLE) – A completely free-form social submission space.  Students openly submit and critique as well as receive instructor feedback in this space.  This posting spends time detailing how and why to build this system.

Interactive Course Object Repository (ELMS: ICOR) – A dumping ground of unique and interactive instructionally significant pieces of material.  This could be polls, quizzes, time lines, slide-shows, content players, media, or really anything that might fall outside the norm that can be embedded as a widget in material via an iframe.

Systems waiting in the wings

Asset management system – (we already have this, but re-envisioned for today) and plugged into the LTI network.  This would ideally be integrated with Red5 and FFMPEG for free media encoding and streaming (yes free) of video with secure delivery via RTMP.

Copyright management spider – content production != copyright management on the fly.  Often times these is a significant legal process that needs to happen in parallel to course development.  Also, imagine a world where people are using resources and you have no idea what they are (like oh I don’t know… always).  The copyright management spider is essentially a spider that crawls and ingests all courses in the learning network and digests them.  Once digested, people go through and fill out all required legal information for the media, or help improve upon the earlier justifications for usage.

Analytics engine – Something that sits off by itself and that all other tools can write to.  I believe that a spec like TinCan seeks to achieve this but not sure.  For the time being I’m writing logical chunks where I could tap in and send off relevant analytic data for processing by another system but haven’t done any work here yet.

Interactive Rubric tool – We’ve built and used one through about 3 iterations of the tool, this would actually use LTI (and other Drupal system capabilities if in Drupal).  It would also be optimized for mobile and responsive design.

 

These are just the tools that I’m working on now or am envisioning for the future.  Fortunately, there has been a lot of positive buzz around LTI and Drupal so I guess we’ll see.  Ahh, mind is much clearer now that I’ve dumped all these ideas on to this adorable blogging platform.

Getting out of the LMS

I needed something to point to as a way of visualizing what’s in my head and then this post found its way on here.  I’ve been writing extensively about the philosophy that drives much of my decision-making though not always on this site.

I’m always one to snap at people who don’t put words into action so consider this my beginning to walk the walk.  How do we transform educational technology (and education through its usage) when we are typically locked into the FUD of large vendors.

LTI.  As I wrote about at the beginning of the year I see LTI as an increasingly adopted standard that will help bring about the death of the LMS.  So, now that I’ve started to get to test some stuff in Drupal with LTI, diagram and thoroughly war game a plan of attack, here’s what I see being the solution.

The traditional, monolithic LMS

So we have the LMS.  It’s a monster.  They all are, whether they claim to be new and innovative in an open source technology or not.  All present solutions are huge, one bucket representations of education.  This aligns well with the institutional side of education but poorly with the “boots on the ground” view of how education actually happens: completely messy, ad hoc, and organically tailored to each individual (at least when class size allows).

So first, let’s break out of that mindset of 1 system and users being confused by it.  As I type this in WordPress, which I had to login with its own account in an application called Chrome which had to be downloaded and installed on an Operating system that resides on a screen and associated peripherals that I had to figure out how to use… I think you get the point.  You are adapting to what has been presented to you even as you read this, it’s not a big deal.

What is a big deal is pervasive logins and the sharing of data that systems should already know about.  Which leads us to visual two.

Lots of services all talking to each other, knowing enough to keep the UX seamless

We use LTI to get a person over to a system where we have flexibility.  What is assumed by the LMS community is that this is a website / tool for someone to use and interact with in a specialized way.  More important in my mind is making this the new, eventual star of the show in a series of distributed stars.

In this way, you can effectively start to hollow out the LMS and pick up the entire learning experience / interaction and continue it across other services.  I’ll know enough about who someone is to be able to make the right decision or provide a series of options associated to the decision.  We can use LTI both to register new courses in the new system as well as ask existing ones what other services are allowed to be used.  In this example we have four other services that all talk back to the new center.

This methodology is fitting with the Structured Anarchy approach to systems development.  If the UX associated with our online studio tool is degraded over time (which is typical when new shiny things come out), we don’t need to throw out or mess with the service we provide that people like with our instructional flow, course creation tool.  This will also allow us to run different versions of Drupal on different sites and different services, sometimes in a mixed way, without a break in usability.

Data flow is critical to success of any new system once we get it up and running, hence visual three.

All services are separate yet equal in how the central service responds and delivers back to them

This falls somewhere between a Star and Mesh network topology in networked systems design.  We ultimately want to get things to be completely Mesh based where everything is a node and everything is a hub, but this is a good first step for now.

The great thing about using Drupal for the majority of these services is that once we write the connections for 1 type of communication, we have it across all services.  I’m currently building out the Course Information System distribution as the starting point to create your own “online” infrastructure for the new paradigm in edtech development.  I’m working closely with our virtual server contact to ensure that we can deploy each of these services in a well structured multisite’ed way (Drush is awesome).

From there, each subsequent service will be created off of a common core of modules (typically modeled from the Nittany Distribution).  The courses service for examples is being built off of the Massively Open Online Course distribution.  While we’ll use this approach / tool set to deliver to our students internally, we’ll also be able to open things up (a flexibility we currently don’t possess in our existing architecture).

The ELMS distribution is already running in several units.  It along with the related Ulmus distribution will appear as just one service with in this setup.  The nice thing about the way I was developing both of those previously is that much of the code / ideas have been embodied into all other systems I’m building.  This also doesn’t even cover the asset management system that we have serving up media to our courses currently.

As Drupal development has picked up at the university, my ability to scale has increased.  Already module selection and overlapping development efforts that help create better websites has been used to create new features within the platforms discussed previously.

Development in tangentially related projects / modules is always helping improve the user experience and feature set of our platform.  A couple of years ago I was annoyed that more people weren’t getting into the game and it would appear that call has just started to be answered (to tremendous results).

At several points earlier this year I wondered if 2012 would break us or define us; I’m gearing up for a hell of a free and empowering definition.

Earthquakes of a Drupal LMS

Based on recent events (and added traffic to my site through search term “Drupal LMS”) I think it’s fair to say that the rumblings of a Drupal LMS are a bit more intense then a year ago. First some other opinions on the subject:

Hack Education

Moodle Discussion board

Add in the fact that Schoology and GoingOn Networks have their own LMS entries that are Drupal based and you might see where this is heading.  Enter the main event and one of three major discussions to come out of Drupalcon in my mind (for education at least): The discussion board on Drupal.org that’s starting to heat up.

There were a lot of discussions at Drupalcon about what it would take to make Drupal a full blown LMS.  Many vendors and organizations in the past have mashed up Drupal and Moodle to get the best of CMS world and best of free LMS world.

The reviews in the room (about 20ish) were mixed as to the result.  It was ok but not great.  There also seemed to be the feeling that the moodle community might be in decline from an outsiders perspective.  Based on the last 24 hours, it would appear that Moodle is about to be at an inflection point in adoption.  Either BB will help bring about the death of Moodle on FUD (fear, uncertainty, doubt) alone; or the community will continue with an influx of passionate educators and edtech leaders taking the charge.

As some other interesting notes from the shake up worth mentioning:

  • Dr Chuck from Sakai is also going to be involved in getting Blackboard to be promoting that project.  I’m not sure what impact this will have on that project but I know there’s a lot of fear about a project lead of his clout “jumping ship”.  While I don’t view it that way, especially from talking to him in the past, there will still be that perception (FUD)
  • Moodlerooms had a bunch of ex-Angel employees; funny how now suddenly BB isn’t going to be sun setting Angel.  Curious to see if those Angel people who jumped ship once will do so again to other moodle shops.

I also mentioned that there were three important things for Drupal in education as a movement to come out of Drupalcon Denver 2012. The second one was that Drupal in Education Unconferences will now be a yearly thing thanks to FunnyMonkey.  Drupalcon is in Portland next year (Funnymonkey’s hometown) and so the Unconference should be epic!

The last point is something that’s currently in the works and has been active for about six months, just under the radar.  A Drupal in Higher Education UnConsortium which is currently in the process of adopting a charter and more official name.  This un-developer network was announced at Drupalcon Denver and has had about 10 active members that meet monthly and have standards they are working towards to the benefit of all of education.  I’ll have more information about that in the coming weeks.

What I’m really excited about..

I’ve been really excited about the progress I’ve been able to make with the ELMS distribution for the latest version.  To most, it will seem that this has to do with adding functionality and additional stability to the platform.  Those are great, but there’s something far more subtle that I’ve been able to establish in the platform with this version: Something not specific to education.

As I’ve written before, I believe fully that better technologies / frameworks breed better, more sustainable solutions.  As such, it may seem counter-intuitive to put all this effort into something that is inherently non-educational.  I’ve done this to maximize the impact and eyes that can get on the code at all levels.  If this was just something that worked for educators (like Moodle is) then I’d be more or less barring 80% of the community from caring.

While previous versions of ELMS were mired in the context of Courses and Offerings of courses, as of Alpha 6 I’ve been able to break free of these connotations at a code level.  Everything you see with ELMS that makes you think it is specific just to education has been abstracted.  Here’s how:

  • Install Cores – ELMS ships with two install cores as of Alpha 6.  This is mostly just to showcase that it is possible to install the system towards very different purposes off 95% of the same code-base. The Instructional CMS (ICMS) is what was originally being developed towards solely, this will now enable me (or anyone) to develop towards a more collaborative learning environment (CLE) while reusing almost all of the work I’ve done for ICMS.
  • String Overrides – All language that references Courses, Versions, Offerings, and things specific to the ICMS have been written back to a single variable in the database.  The module providing this is called String Overrides and essentially allows you to alter the context of the system’s language globally with a simple form.  ICMS alters this language a little different from CLE, and suddenly we start to have two very different systems.
  • No required Theme – This is a major difference between ELMS and all the current distributions out there. ELMS has no required theme. While it ships with a theme called Cube enabled for the system layer, this and any theme from drupal.org should be able to be used in the mini-sites that are created.  Most of what a system is to people is in the theme layer so this is critical in my mind.
  • Regions – ELMS as a system layer is more of a wrapper on top of traditional Drupal.  This wrapper (provided by a project called Regions) enables the user to do one very important thing: Never have to touch Drupal pages. I think this will take some getting used to for some devs but ultimately it provides much more consistent, touch friendly interface elements that keep people focused on the site without detracting from it.
  • Kit Compliant Features – if functionality works one place it works many.  That’s what Kit packaged Features in Drupal allow you.  It’s like modules and configuration of how to use them all rolled into a simple enable button.  Because ELMS features are kit compliant they will work in the various implementations of ELMS that are going to come down the pipe (ICMS and CLE are the beginning)

It is for these reason that I’m so excited about the potential for the types of systems that ELMS can create.  It also puts my mind to rest knowing that I can swap out the entire connotation of the system on install. This vision is of a picture I’ve had in my head for the better part of a year, driving me slowly to madness :) .

I’ll be presenting at Drupalcamp Baltimore Friday on this concept of using one distribution to mutate into many. I think you could reduce the development time of many complex systems as a result of the ELMS code-base.  The code / feature set allows for anything that meets these requirements:

  • There is a wrapper of some kind (parent, or course) that has micro-sites associated to it
  • There is a micro-site (site, or version) that can function also to the same level of flexibility as a full Drupal site

Here are some concepts that I think could be built with ELMS pretty quickly:

  • Popular Blog site dot com – This web service has a User to Blog relationship (ELMS + blog theme + blog + simple aggregators)
  • Popular Survey site dot com – This web service could have a User to Survey or Organization to Surveys relationship (ELMS + Webform)
  • E Portfolio -  1 to 1 Student to slightly different kind of blogging platform (Popular blog site dot com + a few image views)
  • Rubric Management service — Course to Instructor relationship (ELMS + Rubric)
  • Student Club management — Club to website relationship (ELMS + a few themes + features from atrium / commons for collaboration)
  • Asset Management System — Organization to Project relationship (ELMS + few content types to handle media implementation)
  • Traditional LMS – While i wouldn’t recommend this, it’s certainly not far off (ELMS + Quiz + Gradebook + LTI)

I know a few people have asked if this is an LMS platform to which I say, this is about transforming the LMS model.

My 2012 Prediction for EDTech

Many others will give you their predictions for 2012. I am not many others, so I will give you one prediction.  In typical fashion, this will be probably seen as completely over the top, but I never could paint with pastels.

2012 is the year that Learning Tools Interoperability (LTI) starts to hollow out the Learning Management System (LMS).

Last yearand flowing into this yearthe groundwork and infrastructure has been laid that will bring about the death of the traditional, single point of entry LMS.  I believe that technology standard is something known as  (LTI).

What is LTI?

LTI works essentially the same way Twitter and Facebook do when authorizing other apps to share a login.  Using a standard called OAuth, FB and Twitter are able to generate a secure one-time login time of address that is only valid during the current connection.  In plain English, it’s a secure way of letting you login without creating an account.

LTI brings this same type of security standard to the LMS world.  Site builders can create trusted login relationships between the traditional LMS and toolsets outside the LMS.  This allows you to pass information about students and instructors (and other roles) between systems, creating a seamless experience for the end user. You can then pass someone multiple directions as needed.

LMS (e.g., Canvas) to LMS (e.g., Moodle or Sakai) and, more importantly in my mind, LMS to non-LMS.  Maybe you can understand the next heading when framed with the following context:

  • All major LMS projects (proprietary included) are getting behind LTI;
  • LTI is far less complicated to understand and implement than SCORM; and
  • LTI can easily be implemented in non-LMS systems to bridge them with LMS systems

The Trojan Horse

LTI is how we finally escape the pit of singular system that has boxed up educational experiences for so long.  Why do you think faculty and students always end up utilizing ad-hoc methods to manage and communicate knowledge?  We provide them with tools for drop boxes, they use Flickr. We give them email, they want light-weight chat integration.  We give them forums to structure content, they use Google Docs.

LMSs and the scale they need to be built to, combined with the pace at which universities adopt new systems is a perfect storm scenario.  We constantly are behind the needs of our users, off-the-shelf and custom solutions never meet needs for long or fully satisfy audiences.  It’s not because the tools are poor, it’s because the structure is wrong.

LTI allows instructional designers, instructors, developers and management to think differently about the way they plan and implement learning systems.

A Structured Anarchy Future

Many of my ideas for my original Structured Anarchy post were borne from trends I noticed in the non-edu space with regard to technology; ideas that have turned into my obsession.  LTI/OAuth is the solution to a problem that the corporate/Web 2.0 crowd solved many years ago — pervasive logins across multiple websites / servers.

Students don’t want to have to learn multiple interfaces, yet Google seems to have over a dozen services strung across different addresses and different functions and are very successful.  Have you ever not used Google maps because the interface was strikingly different from Gmail? I realize I’m just pinging on Google, but Yahoo, Apple, Microsoft and many others are doing similar things.  

Ultimately, you need to make a focused Web service; do something REALLY well; create project teams to sustain development for it and then feed users to it; create a singular method of login; make the experience seamless or reduce it to a “click to connect to {XYZ};” and provide standard UX / UI elements.

Personal Learning Environments

A Personal Learning Environment (PLE) is the suite-of-tools approach to learning systems designed to minimize the LMS.  Look, we need an LMS/central system (at least until this gets wider implementationit’s just the role of that system needs to be far more minimalist.  

An instructor wants to create a blog for their course. Let’s provide them with the best tool possible. Name the LMS that handles blogging well, please. (while I don’t support using this) WordPress comes to mind for blogging.

An instructional designer wants to create an e-text that’s separate from the LMS because it’s mostly static content. Name the LMS that handles content really well. Hence the need for an Instructional Content Management System.

An instructor wants their students to have a conversation around video / audio assignments.  Name the LMS doing that well.  I’m told they are getting better at it but will they ever be youtube or a youtube clone?

Students want to collaborative work in teams and manage their project.  LMSs project group spaces and areas for document management, but do they come close to Google Docs, Basecamp, or Atrium?

Now, rubrics, gradebooks, email communication…I’ll leave these to the LMS.  Social interaction on the Internet is changing at light speed, while university and college infrastructure was built to house knowledge in a similar form for decades at a time.  It’s time for a change.  Universities and colleges need to transform or fade away.

An old adage is that college is an experience, and that many people are paying for that experience.  As that experience becomes increasingly more digital, let’s build systems that can help provide the best experiences possible.

If only there was a system positioning itself as part of the learning platform revolution…

Creating a distributed OER App Store

For those following the ELMS distribution’s progress, you’ll probably note that I’ve been talking about Features, Kit, and Feature Server A LOT.  For those that don’t know about these concepts or need to care (most people) here’s a brief overview.

Image Provided by Development Seed

Image from Development Seed

Features in Drupal are the key to the creation and sustainability of LARGE scale systems.  These platforms, like Open Atrium or ELMS, can almost take on a life of their own yet still, at their core, are Drupal.

Features allows developers to not only package code but package configuration.  Configuration, while still drastically easier to work with then code, is still difficult because of the high knowledge barrier Drupal has.

Feature Server and Kit allow for the creation of larger ecosystems to crop-up around platforms built on Features. Feature Server is a Drupal site that can allow other Drupal sites to ask it if they are up to date.  Whenever you download a module from Drupal.org your drupal module can tell you if its out of date or not.  Feature Server essentially allows you to run your own mini-drupal.org.

Distributed Feature Server

Visualization of a Drupal ecosystem

So what’s the big deal with that? Well, imagine if different universities across the globe setup their own feature servers.  You would start to get a picture of Drupal more like what you see on the right.  Instead of code being required to live on drupal.org, code can live and be upgradable (and ultimately sustainable) from sources external to drupal.org (like drupal.psu.edu).

Here’s the big “so what”: let’s take this concept one step further.  Let’s say we have a platform that makes it easier to assemble learning materials and interaction.  This empowers learning designers and instructor communities to (hopefully) build better materials and interactions.  Create better tools, dedicate more time to the resource generation and less time fighting the technology.  That platform will be built on Drupal Features and Feature server, if you can think of what it might be…

So we have sustainable code and configuration changes, but let’s not stop there.

We’ve already packaged code and configuration at a Drupal level, What’s the next thing to package then? Open Educational Resources.  OER has sputtered in recent years because of a lack of sustainability planning with great press but little “what’s in it for me” factor for faculty.  This is where ELMS and Features come in. ELMS could be packaged with a “Feature server”-like functionality for broadcasting what OER packages it has on it.

Again though, who cares? Oh, I forgot to mention that Features can package content too!  SO, if we map all of these concepts to OER, we now have a sustainable method of passing OER between not just institutions, but directly to distributed learners.

ELMS App Store visual

ELMS App Store Visual at a University

Build something like the Aquia Stack Installer for a one-click installation of ELMS on local machines and suddenly you have a completely distributed system of knowledge produces and consumers.  Producers could even broadcast from their local machine if they wanted that they are producing knowledge for consumption (like Kahn Academy).  Consumers could go to their favorite knowledge producers and download any OER materials they have to their local ELMS instances.

btopro's OER Hub

btopro's OER Hub

This will start to create an “App Store” model for OER content or for-pay content for that matter with limited alteration.  These ELMS Hubs could be thought of much in the same way you think of TV stations or major aggregator websites of today.  All they’re doing is being produced by an individual or group of individuals and you are choosing to consume their content (channels or blog posts or articles or whatever).  This way not only major university bodies could pull together a listing of their resources and share them with others, but individuals have a seat at the table as well.

I believe very much in Connectivism knowledge creation and I’d be curious to see what others thoughts are about this concept.  Drupal is no longer just some neat tool that you should look into for education, I fully believe this is a major component to saving it.  Hopefully when the next release of the platform comes out you’ll start to believe too.

Decoupling for maximal impact

I apologize for not writing much recently.  It’s not that there isn’t momentum behind the ideas I’m typically talking about here, it’s that development has accelerated.  Right now I’m in the process of decoupling ELMS for the next release of the platform.  This is critical to the success of the platform because:

  • Any time you use a system that you know is open and it has Feature XYZ; you immediately get irritated if you can’t have that functionality without hacking it back out
  • ELMS support and sustainability model is very decentralized (as it always will be)
  • Most of the functionality of elms can be applicable to any Drupal site / system (and should be)
  • I am treating ELMS as a consumer of Drupal, not the author of a new Drupal (huh?)

What am I referring to?  Here are the five modules released in the last week:

ELMS Decoupling

Reusable components

Any time you use a system that you know is open and it has Feature XYZ; you immediately get irritated if you can’t have that functionality without hacking it back out
Yesterday I released four modules to the Drupal community by simply packaging the code differently.  I also wrote an API (Regions) which will be implemented by ELMS three times.  This abstraction will allow other developers to dissect the code more easily and a lot of times simply be able to download the associated module.

ELMS support and sustainability model is very decentralized (as it always will be)
This allows far more sites / users / systems to utilize these components as they are things I’ve found lacking from the current Drupal community code base.  It also improves the long term sustainability of the project as the level of transparency has always proven to lead to better / improved solutions.  If I can get 100 sites using the Spaces Theme module (outside of the scope of ELMS) that’s potentially 100 extra sets of eyes on the code or people that could potentially help out.  While I understand the levels of participation are always less then that we will have paid nothing for that additional help if just 1 person helps audit code by proxy.

Most of the functionality of elms can be applicable to any Drupal site / system (and should be)
I’ve been writing everything to NOT be course centric.  Functionality has been packaged into many Features.  Features are sustainable code development packages which package code and configuration together.  This way when someone says “How did you build that Commenting engine?” I can point them to our Feature-Server to download the Reactions Feature.  They turn Reactions on in their site (and Regions if they want it to look and feel the same way) and now their system has all that functionality.

This is following something called the Kit specification, though I might be going a bit overboard with it.  There are 4 Features currently (you can think of them as modules if you want) that should be compatible or nearly compatible with Open Atrium, EduGlu, AtriumED, Open Scholar and any other platform that follows the Kit specification.  I keep talking about the reusability a lot but that’s because I can see ahead of where the community is now to where it will be in the near future; this is going to be the norm soon.

I am treating ELMS as a consumer of Drupal, not the author of a new Drupal (huh?)
While ELMS is a platform being developed for a singular purpose (support the e-Learning Institute’s Course Delivery and Authoring needs); it has been designed unit agnostic.  This follows my personal philosophy of why we chose to build on Drupal instead of Moodle.  Don’t force the technology to define your context and don’t allow your context to define the tech.  At the end of the day we are still “just building webpages” and as such all language and infrastructure decision should reflect that.

Don’t interpret that incorrectly, this will meet all the needs we currently have (actually it’s going to create an innovation fast track but that’s for another time); it just isn’t being driven by code specificity.  As an example, user import from a proprietary point of integration has been written using the Feeds module.  This sticks to Drupal best practices and allows for the creation of minor helper modules (Feeds RID Map) which simply extend existing infrastructure to meet needs.
ELMS will meet our requirements but we will effectively be taking a “finished” platform and then extending it to meet our specific needs, not the other way around.

Too often ideas are written for a specific context and then point 1 is reached through hacking functionality back out and the cycle starts again.
If you treat the project as just a website engine (under the hood) but present it as a course management engine on the surface you have a far more robust and flexible platform.  This is mirroring what we’ve done with Drupal in the first place as many people never need to know or care that they are using Drupal.  Change a few pieces of language in a settings page (Thank you String Overrides Module) and only imagine what you can make this platform do. Think in terms of solving problems with “a thing that has many websites associated to it” and suddenly we don’t just have 1 platform, we have an ecosystem of platforms.

No more global success, global failure; this is Structured Anarchy in practice, you create an unstoppable innovation pipeline that can never be shut off.  This will ultimately lead to a lower cost of development (far less time to build new solutions, thanks virtual servers) of any website management framework.  Then it’s 80% experience design, 20% specific integration point.  This isn’t a utopian fantasy, this is starting to happen as of last month.