Open Source Project - Open Development Process

OpenOLAT is developed and licensed under the terms of the Apache 2.0 open source software license. The source code is freely available from our Mercurial repository and always up-to-date to the cutting edge development. We plan and manage features and bugs using the OpenOLAT Jira. The OpenOLAT jira is opened and transparent so everybody can follow the development activities. This is where issues are described and assigned to releases before implementation begins. Larger features or changes are normally discussed beforehand on the public OpenOLAT mailinglist or the OpenOLAT community server.  

When we commit code to our internal repository it will trigger a fully automated build and testing procedure. When this continuous integration and quality assuring process has been passed successfully the code is automatically pushed to the public repository ready to use by the community. This happens several times during a normal development day, so really everybody can follow our activities and try out the latest and greatest code at any time. 

Once in a while we tag certain development milestones as stable releases. In addition to the automated unit and integration tests the releases are hardened by manual testing measurements. Releases will get release notes and are announced whenever they are ready. 

In Open OLAT we use three digits in our release number: the first two indicate major releases which are also called feature releases (e.g. 8.0, 8.1, 8.2). The third digit is used for maintenance and bugfix releases that can be applied to the base release without adding new big features. Such minor releases do also contain enhancements and little new features but normally they are drop-in replacements for the previous release. 

OpenOLAT development team and financing

At this point the development is mainly done by frentix staff. frentix was founded in 2006 as a spin-off company from the original OLAT project at University of Zurich by one of the inventors of OLAT. frentix eversince offers hosting, operating and development services for this great LMS and initiated the OpenOLAT fork in the late 2011. Read the "open letter to the OLAT community" to get the rational behind this move.   

The OpenOLAT development is backed by many frentix clients who either directly (by requesting a specific feature) or indirectly (by having hosting and maintenance contracts) finance the development. In addition we actively seek for partners on a project-level to collaboratively collect the necessary money for larger projects. 

The still young OpenOLAT community is growing quickly and we are increasingly seeing code contributions from the community. The community is also active in promoting and translating OpenOLAT into other languages.

If you want to contribute, donate or help funding a project, please visit the OpenOLAT contribute page

Tool sponsors

The following companies are sponsoring the OpenOLAT development by providing free tool licenses for the open source project development. We bow down to them, the developers world is a better place thanks to them. 

Jira

Atlassian is kindly supporting the open source projects OpenOLAT with their outstanding issue management software Jira. Using Jira and Greenhopper the development team is tracking bugfixes and new features with ease. The compiling of release notes has never been easier. 

Take a look at Atlassians great software products: Jira, GreenHopper, Fisheye and more

YourKit

YourKit is kindly supporting the open source project OpenOLAT with its full-featured Java Profiler. Using YourKit, the development team is able to find bottlenecks and problems fast and tune the software to squeeze out the maximum of the performance.  

Take a look at YourKit's leading software products: YourKit Java Profiler and YourKit .NET Profiler.

Agile development and SCRUM

For many years frentix implements software projects using SCRUM and other agile methods. Those practices have been proven to be helpful and flexible and they add little management overhead, so we apply them to the OpenOLAT development as well. Some ideas among others that might be interesting to the community: 

  • We use a product backlog instead of a release roadmap
  • Code is released early and often, whenever a sprint is finished
  • Bugs have the highest priority, they are fixed ASAP
  • Release planning is done relatively short termed depending on product backlog, needs, estimates, and resources
  • Continuos integration and automated testing (unit tests, integration tests) ensures quality
  • On our path forward we refactor wherever we can to make the system and architecture more stable, faster, lighter, logic and consistent
  • Working in small, self-organized teams is more productive and is more fun
  • We put working code over buzzword talk

Product Backlog / Roadmap

As stated above we use the SCRUM terminology and thus we prefer talking about a product backlog rather than a roadmap. But as many people do not know the "product backlog" terminology we added the word "roadmap" to this title for your convenience as it deals with the same question: what's next?

The product backlog differs in a very important idea from a classical roadmap: it does not say in which order the items on the product backlog are implemented. It is just a collection of ideas that ideally should be done to make the product even better. 

When preparing for a new release the product backlog is reviewed and some stories are picked which will define the next release. The stories are then managed in several implementation cycles, so called sprints. 

For this reason we will not publish a roadmap but rather our product backlog and the current release activities and invite you to help financing the development of items from the product backlog or some of your cool ideas in the next release. 

OpenOLAT 9.3

The 9.3 release is scheduled for january 2014. 

So far the 9.3 release will include:

  • Introduction of a tooling interface for assessment elements. First implementation will be bulk download and upload of task files.
  • Security module in admin environment to enable/disable unsecure features depending on usage scenario
  • Return of the close link of course tools
  • Various bugfixes and improvements 

The full list of changes can be found in the OpenOLAT jira

 

OpenOLAT 9.4

The 9.4 release is scheduled for march 2014. This will most likely be the last release of the 9.x series. 

So far the 9.4 release will include:

  • Graphical analysis tool for assessment data (online charts, excel download)
  • New course element "Checkbox" for different didactical scenarios (checklist, presence list, left learning etc)
  • Various bugfixes and improvements 

The full list of changes can be found in the OpenOLAT jira

 

OpenOLAT 10.0

The 10.0 release is scheduled for Q2 2014. The feature set is not yet fully defined, thus the release date might also change. 

So far the 10.0 release will include:

  • New visually appealing "my courses" view with status overview
  • New visually appealing catalog, separation of catalog from repository (which by then is only meant for authors)
  • New implementation of home site as personal top menu item instead of main navigation element
  • Responsive design approach to support mobile devices
  • New course element "group task" to support collaborative group assignments

As of april 2014 Microsoft will drop support for Windows XP. Therefore OpenOLAT 10 will drop support for IE7 and IE 8.

The full list of changes can be found in the OpenOLAT jira

 

OpenOLAT product backlog

This is a very high-level and un-prioritised product backlog. We have many more ideas, those are just the most important ones. You are warmly invited to add your own!

  • Assessment editor based on QTI 2 (in funding phase, please help!)
  • New assessment system based on QTI 2  (in funding phase, please help!)
  • Exam mode  (in funding phase, please help!)
  • SCORM 2004 support
  • Push notification system
  • Real time full-text search indexer
  • Consolidate different code plugin approaches, publish extension points
  • Better implementation of data privacy 
  • Integration to social tools, twitter, facebook etc.
  • Implement social relations to better implement data privacy, define visibility and sharing of personal data etc.
  • Learner tools: comment, annotate, mark
  • Refactoring properties table, implementation with dedicated course data infrastructure
  • Flexible roles and rights management
  • Flash cards for learners
  • Ability to undeploy, redeploy, deploy multiple instances in same app server
  • Replacement of home-brew pseudo-cluster code with standard practices, implement session replication
  • Finish virtual filesystem code, move metadata to database
  • Move calendar datastructure from file to database
  • Update folder component, old and ugly
  • Better life-cycle management of resources (users, groups, learning resources)

We would love to implement these stuff right away. Add your money to make it real! Contact us at contact(at)openolat.org