Dear OLAT community,
I‘m writing this letter to let you know that frentix GmbH will no longer be active in the olat.org community.
There are several reasons for this break up and it was a tough decision to make. As one of the founders of OLAT I care a lot for this project as it was the core of my professional life for the last twelve years. I don‘t let it go for no reason.
During the last year, University of Zurich made some fundamental decisions regarding community involvement, product vision, strategy and implementation on both technical and feature level that we do not agree with. Therefore frentix leaves the olat.org community today and focuses on openolat.org, a new initiative we started to build an independent open source version of our favorite e-learning solution OLAT.
Let me explain our decision in more detail:
In the last twelve years since I co-founded OLAT during my studies and today, OLAT grew from a student project to a sophisticated product that is deployed and operated in many large universities, smaller institutions and companies around the globe. About six years after the initial development and when the OLAT foundations were built, I left University and started frentix GmbH. The goal was to deliver commercial services for the open source system OLAT. In the following years frentix constantly worked together with the other OLAT developers at University of Zurich to push the system forward and contributed a lot of work to the project.
It was always clear, that University of Zurich is the project host and finally decides what makes it into the release and what not. We had many meetings, discussions and brainstorming sessions to find a common line. In the end, we usually agreed on how something should be done and did it that way. frentix felt as a part of the OLAT core community and a development partner. In the last few years this community process became more and more difficult and resulted in a full stop at the beginning of 2011 with the OLAT 7.1 release.
At that time, University of Zurich switched the OLAT development model from being relatively opened into closed. The final code is still available to the community as open source, however, the entire architecture, analysis, requirements and development process is hidden from the community members. Even the code repository is locked down so the community can not follow the ongoing development. We all experienced this dramatic switchover with the just released 7.3 beta, which has been announced multiple times on the list during the year and was in development for over eight month behind closed doors. During that time the community was not allowed to see the progress, to comment or discuss various refactoring approaches or to get a feeling in which direction the development was heading to adjust their own development process accordingly.
I do not judge this practice from the perspective of the University of Zurich, they have all rights to go this closed path!
But from the perspective of a commercial supporter and as a community member, this is disastrous. Trust and loyalty built over years are being thrown away and IMHO the current situation is in sharp contrast to what the olat.org homepage suggest and some remarks recently made by the OLAT „officials“ on the list.
When I step back and reflect the actual happenings of the last year I come to the conclusion, that the OLAT project is not open anymore. It is a closed project which releases their open source licensed code twice a year or so. The community that actually exists is a download only community. No involvement is accepted or desired (except for language translators).
frentix does not want to participate in such a project. We want to contribute in a project that evolves transparently and let community members participate in important decisions and offer ways to contribute to the project.
Recently the OLAT team released a agile inspired manifesto about OLAT and their team. This sounds all great, however it stresses once again that this is only an University of Zurich project.
There is only one part where the community is named: „The source code is freely available at no cost and we welcome exchanges of ideas with the Open Source Community„. What is understood by this exchange was demonstrated in the last community meeting: it means working two hours on a whiteboard once a year, which is great, but doesn‘t really make it an open project.
The other parts of the vision sound great as well, however, what we desperately miss is the strategy and the product management to implement this vision. Something like a road map, for example. The vision starts with a sound user centric approach, but the actual work on code level begins with a fundamental, multi-year code refactoring project that doesn‘t address any actual shortcomings from a user perspective but targets only technical issues and improves code beauty.
When collaborating in such a large project every party must accept that someone has the project lead and that some decisions are made there. frentix is fine with that. However, we do not want to be entirely remote controlled by decisions made by some others without having the slightest chance to review, reflect and comment on those decisions, not to mention having some influence in areas where we have expertise. We do not desire accomplished facts but involvement. And we want to focus on the user problems first and solve technical issues as ongoing tasks while going that user centric way.
I already mentioned that early 2011 a massive code refactoring project has been started by University of Zurich. The changes will be so fundamental, that once the refactoring is finished - nobody knows when that actually will be the case - OLAT will not have a lot in common with the OLAT we all know today.
The refactoring consists of three phases. With the upcoming OLAT 7.3 release, the first half of the first phase is done. The second half of the first phase will be Service Orientation, Enterprise Architecture, Security Infrastructure and Content Repository. The second phase will address business workflows and a third phase the GUI framework.
To recap: the 7.3 release took from start to beta about 8 month. It reflects 1/6th of the entire project, assuming that all phases take the same amount of effort. But unfortunately, this will not be the case as the coming phases are of much higher complexity than the layering part, which is actually not a lot more than moving and renaming all classes. Don‘t get me wrong, it is great to have a better code structure and decoupling, but compared to the forthcoming refactoring of all the services, re-implementing some of the business workflows and in the very end (?) question the entire GUI framework, this code layering was only the foreplay.
It has been said that during the refactoring a full feature freeze is implemented. This means, that from a user perspective during that entire refactoring everything stays the same while under the hood the system gets new shiny underwear.
We think this is critical on many levels. Systems and the internet evolve so quickly that we can not afford pausing development for end users for years. On the other hand, changing things under the hood while leaving the UI layer intact will no doubt lead to releases that feature new bugs. Things that worked will be broken. Not because of bad programming but because of unanticipated side effects and the fact that every new line of code potentially contains new bugs while existing lines of code have been tested and stabilized over years.
This is not a pleading for staying with the status quo in the OLAT source code. frentix absolutely agrees that the technical foundation needs refactoring here and there and that there is a lot of room for improvement in the OLAT code, the architecture and the enforcements of guidelines and code reviews. Refactoring is a normal process in modern software development. But we do not see the need to rewrite everything and we definitely don‘t agree to the way the refactoring is done.
We also think that formatting code over and over again does not make code in any way better. On the other hand, it makes it impossible for third parties to apply existing code patches and makes often hand-formatted comments unreadable. It is also very hard to apply patches after eight month of development. It is important that the community can merge their local changes as often as possible to minimize the size of the change set.
Our refactoring approach is not horizontal but vertical. We think the right way to move forward with OLAT is to question the user workflows, the business model behind it and refactor from the GUI down to the data layer. Extraction of business logic, services and a better layering will be positive side effects on that path. But every refactoring step will enhance the user experience and bring new and improved features for users with real benefit. A feature freeze is not necessary.
This is how we think it should be done, this is the agile way.
From all the reasons I explained above, the closed state of the project is the most relevant to us. All the other reasons can be explained by this single one. During the last year frentix hoped that the closed state of the project would be only of temporary nature and eventually the community would be involved again. In the last months and weeks it became more and more obvious that this will not happen anytime soon.
Therefore frentix is now leaving the olat.org community and continues the OLAT development as an independent project called OpenOLAT which is hosted at openolat.org. OpenOLAT will be compatible data wise up to OLAT 7.2.1. We might add compatibility with 7.3 as well, but this is not our priority. Feature wise it is compatible with 7.2.1 but it does not include the code formatting introduced with 7.2. This means that existing code patches for 7.1 or lower can be applied with minimal effort.
frentix will contribute most of the development we made for OLATpro to OpenOLAT. This means that support for browser back, new access control for repository, user management in courses, mailbox module, vitero support, enhanced LDAP and REST support and a lot more will be available to the open source community. OpenOLAT will also include other features contributed by other community members such as BPS, who already provided patches for improved SCORM handling and the long awaited virtual classroom integration for Adobe Connect and Wimba.
Development will be done transparently and in public exchange with the community. A community membership program enables users and institutions to be involved, to collaborate and contribute if they chose to do so.
Our initial release can be expected in the beginning of 2012, we hope to have a first beta ready just before christmas 2011. Please give us some time to setup our infrastructure, to clean up some code and to check everything for license compliance with the original project. In the meantime, you can communicate or follow us on twitter and discuss thoughts on our mailinglist.
I want to express my greatest respect to all developers, translators, testers, documenters and other involved people who contributed to OLAT during the last twelve years. I also want to thank the community members for all the interesting discussions we had at several occasions over the years. It was wonderful meeting all those talented people and working together. I also thank University of Zurich for having sponsored the greatest part of the OLAT development served as the project host for those years. I wish the OLAT Team at University of Zurich all the best for their future activities.
CEO frentix GmbH
The frentix team:
Christian Franck · Kirsten Scherer · Stéphane Rossé · Roman Haag · Sergio Trentini · Roland Streule · Michael Enz