When it comes to open source, collaboration is key to the development of software that benefits everyone in the community. The idea is simple: everyone in the community has the power to contribute their own ideas and code to the product, helping to reduce time spent duplicating efforts across the community and benefitting everyone with the best new features and functionality from across the network. That’s how we work at Totara Learning - we welcome input from across our Partner network, helping us ensure we’re delivering features that will benefit our end users.
We’re always delighted when these code contributions turn into long-term collaborative partnerships, which is how Learning Pool came to be selected as our 2015 Open Source Contributor of the Year in our 2015 Totara Awards. We spoke to Totara and Learning Pool’s Chief Technology Officers Simon Coggins and Mark Lynch to find out what makes ours such a successful collaboration.
Making Totara what you want
With an open source model, the benefits of collaboration are realised by everyone in the community. Partners have the ability to impact the future of Totara and get access to a wider range of features faster, customers enjoy richer products with the exact functionality they have requested and we at Totara benefit from working with the talented teams across our global Partner network to drive innovation faster.
“Collaboration is part of Totara’s DNA,” said Simon Coggins. “We’ve been doing it for a long time. Collaboration is at its best when there’s good communication from very early on in the process so we can steer it in the right direction.”
The beauty of open source is that Partners and customers don’t have to wait for us to develop the functionality they need - they have the power to get to work right away, and with our help we can all build better products faster, together.
Working with Learning Pool
Totara has been collaborating with Learning Pool on multiple levels on several important features in recent years. The communication has been constant, according to both Simon and Mark, with both parties writing specifications, offering feedback, working on the actual development and reviewing each other’s code. This has had the added benefit of upskilling Learning Pool’s developers in developing for Totara LMS, which will make future collaboration easier.
One of Learning Pool’s key areas of collaboration has been an extension of Totara LMS’s face-to-face module with their Classroom Connect enhancement, which will be integrated into the core release of Totara LMS 9. Several of Learning Pool’s customers will be migrated onto Totara LMS 9, so these customers will have the ongoing benefit of future features that will be developed by both Totara itself and the community, meaning Learning Pool and its customers benefit from this successful collaboration. Part of the reason this has worked so well is because Learning Pool’s ideas married up with the features Totara was already planning for its seminar module, making collaboration a natural move to speed up the process of development.
Our collaboration with Learning Pool has also included extending the ‘My Goals’ functionality in Totara LMS 2.9 to add personal goals and custom fields, giving users more flexibility. These are now popular elements of ‘My Goals’, showing how collaboration can benefit the entire community, and contributing code back into the product improves it for everyone.
“Writing documentation together and having our developers work with Totara has been a really good experience,” said Learning Pool’s Mark Lynch. “It strengthens the relationship between Learning Pool and Totara, and allows us to implement features beneficial to both of us. We’re happy to lend a hand because our closeness with customer requirements helps us shape the product. With these features now part of the core product, there is no need for us to maintain our own separate fork, so everyone wins.”
This successful collaboration is also set to continue into the future. Our previous work with Learning Pool has helped us both clarify the process on both sides, making it easier to collaborate on new code in the coming years.
How to ensure a successful collaboration
Ensuring we are aligned with our collaboration Partners from the outset allows us to clarify our drivers, whether this is timelines, budgets, goals or anything else. Being on the same page from the very start means we are more likely to end up with features which are configurable, flexible and suitable for use in the wider community, rather than only being fit for a single purpose. This is why our collaboration with Learning Pool has been so successful - both of our technical teams worked together from the start to create and review specification documents and to write the code according to each other’s requirements.
“Talking early - ideally prior to development - is a key way to make sure everyone wants the same thing,” said Simon. “We can talk about ideas for code in the Totara community - sometimes we find out someone has already written that code, so Partners don’t have to double up their efforts.”
It also helps if any proposed collaborations align with the needs of the wider community. If lots of people have been asking for a particular feature, it will be more beneficial to collaborate on this than a more tangential or niche feature. We at Totara Learning also act as ‘stewards’ in the process to ensure core standards are met and any contributions fit into the product as a whole. The more demand there is for new functionality, the more likely Partners are to attract assistance from the open source community, which can speed up the development timeline, meaning both Partners and customers win.
“A key advantage of open source collaboration is that everyone can benefit from the contributions of others,” said Mark, “meaning our customers get the best results, and we can draw from the community for new features.”
Want to get involved?
Inspired by Learning Pool and wondering how you can influence the future of our Totara products? Here’s everything you need to know, including the benefits for you, the code contribution process and things to be aware of before you get started.