Technological roadmap for developing OER

We at NDLA are working on a roadmap that will define the guidelines for all our future projects, architecture and technological plattform. This is work in progress but we have narrowed the scope to focus on some core elements. From these core elements I have picked out the most important ones and written down my thoughts.

It all starts with User Experience

Start developing with strong focus the user experience and always keep the user at the centre of you development. Its natural to think about UX when developing the fronted of a solution but one tends to forget that the way we build APIs and other infrastructure components also affects the user experience.

User experience is«a person’s perceptions and responses that result from the use or anticipated use of a product, system or service»

Build your systems for change

The edTech marked is changing rapidly and new and innovative solutions is being presented on a weekly basis. Not all of these new services will of course be relevant for projects developing OER but…. as we see fields like adaptive learning, learning analytics, crowdsourcing and game based learning developing over the next decade it will be important not to build OER plattforms as monolithic structures.

Open licenses, open source and open standards

We at NDLA(Norwegian Digital Learning Arena) have build our project on a strategy with open content and open source as core elements. We do this for many reasons. The most important aspects are that openness gives us flexibility in terms of development and higher quality on the end product. At the same time it prevents vendor lock-in and lets other projects re-use and build on our content. Many OER projects are looking to a more decentralized model of production. Having a free license on the content is crucial to support this transition.

It is important to be aware that having a strategi with open content does not exclude the possibility of also bundling with Copyright material.

Separate technology, design and content

It is a goal in itself not to develop content for a specific technology or platform. If you manage to separate content from technology it will provide easier transition from one platform to another and it also provides greater opportunity to introduce the digital resources to your users on different platforms based on the same core content.

A practical example is an online resource developed for a web based plattform where you at one point would like to use the same content in an mobile app. If implemented correctly the content(or parts of the content) can be presented to the user seamlessly between these to plattforms.

In many projects, it is to costly to implement this strategy fully. For these projects there are standards for embedding content from different platforms together. One of these is LTI.

A modular approach to development

In computing, microservices is a software architecture style in which complex applications are composed of small, independent processes.  These services are small, highly decoupled and focus on doing a small task, facilitating a modular approach to system-building.

Some key properties of microservices architecture:

  • The services are easy to replace
  • Services are organized around capabilities, e.g. user interface front-end, recommendation, logistics, billing, etc
  • Services can be implemented using different programming languages, databases, hardware and software environment, depending on what fits best
  • Architectures are symmetrical rather than hierarchical (producer – consumer)

The term «Microservice arcithectur» simply means you focus on building small in order to keep it simple.

As mentioned earlier in this blog post, this is something we’re working on right now, and the areas that I have mentioned her are only a selection.  This means that this bloggpost by not in any way represents our final roadmap.

Creative Commons License
This work by Christer Gundersen is licensed under a Creative Commons Attribution 4.0 International License.
Based on a work at https://en.wikipedia.org/wiki/Microservices.