Development Process

OpenOLAT development team and financing

The development of OpenOLAT is mainly done by frentix staff. frentix was founded in 2006 as a spin-off company from the original OLAT project at the University of Zurich by one of the inventors of OLAT. frentix has offered hosting, operation and development services for this great LMS ever since, and initiated the OpenOLAT fork in late 2011. Since that point the development of OpenOLAT evolves independently of the OLAT project by the University of Zurich.

OpenOLAT development is backed by many frentix clients and the OpenOLAT community who, either directly (by requesting a specific feature or by participating in the partner program), or indirectly (by contracting hosting and maintenance services), finance the development. In addition we actively seek partners on a project-level to collaboratively collect the necessary funds 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 OpenOLAT, and translating it into other languages.

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

 

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 on the cutting edge of development. We plan features and manage bugs using the OpenOLAT Jira. The OpenOLAT Jira is open 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 assurance process has been passed, the code is automatically pushed to the public repository, ready for 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 procedures. Releases will get release notes and are announced whenever they are ready.

In OpenOLAT 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 bug fix releases, that can be applied to the base release without adding new big features. Such minor releases also contain enhancements and small new features, but normally they are drop-in replacements for the previous release.

Road map / product backlog

The OpenOLAT road map is not a definite plan of when the newest features are made available. Instead, there is a product backlog (according to the SCRUM terminology, as described below) in which new features are defined and the time to implement these is estimated.

When developing a new release, the most important features are selected and implemented. Which features are important is decided by frentix, our partners, and any financial supporters of a specific feature. The implementation is done in development cycles (sprints), until the feature is completed successfully.

In the following table you can find an overview of the most important planned features. A list of all features in the backlog can be found in our Jira.

Project Cost Secured Funding Status Update Information
Login Redesign (Twitter, Facebook, OpenID, … Authorization 10’000 CHF 50% Additional funding necessary 03.03.2014 The login screen should be made simpler and more appealing.
Redesign OpenOLAT 50’000 CHF 70% In progress 15.02.2014 Redesign of home tab, responsive design, course layout adjustments
New data structure 20’000 CHF 30% In progress 15.02.2014 New data structure for course and group permissions, to optimize scalability and performance.
New test editor QTI 2.1 120’000 CHF 10% In planning 15.02.2014 New web-based test editor and assessment tool for QTI 2.1

 

Are you interested in supporting the development of one of these features? If so, please don’t hesitate to contact us!

Agile development and SCRUM

For many years frentix has implemented 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 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 on relatively short notice, depending on product backlog, needs, estimates, and resources
  • Continuous integration and automated testing (unit tests, integration tests) ensure quality
  • On our path forward we refactor wherever we can to make the system and architecture more stable, consistent, faster, and lighter
  • Working in small, self-organized teams is more productive and is more fun
  • We value working code more than buzzword talk

 

Tool sponsors

The following companies are sponsoring OpenOLAT development by providing free tool licenses for open source projects. We bow down to them, they make the world of software development a better place.

RTEmagicC_atlassian_darkbluetext_large_transp

Atlassian is kindly supporting the open source project OpenOLAT with their outstanding issue management software Jira. Using Jira and Greenhopper, the development team can track bug fixes and new features with ease. Compiling release notes has never been easier.

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

RTEmagicC_yourkit2

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 maximum performance.

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

logo_intellij_idea

JetBrains is kindly supporting the open source project OpenOLAT with free licenses for IntelliJ IDEA, the most intelligent Java IDE on the planet. IntelliJ IDEA speeds up OpenOLAT development because things just work without fiddeling with a great user experience.

Take a look at JetBrains great software development products: JetBrains Products page