Nitor and Finnair have published Finnair's first open source library to facilitate the validation and conversion of data. The library was implemented to meet the needs of Polaris, Finnair’s operative flight information system, and was later converted into a general open source library. Nitor is the supplier of Polaris.
Nitor's team was selected to renew Finnair's operative flight information system. By publishing the tools used for validation, normalisation, and conversion of data as an open source library, the entire development community can now benefit from the solution. ‘Open source’ means giving developers outside Finnair access to the source code of the library program, but not to material such as customer data or other information about Finnair's systems. This allows developers around the world to use the software in their own projects.
The library was initially built for Finnair's Polaris system and later expanded into a general open source library. Polaris uses dozens of data sources, with the prerequisite that all data is validated and data integrity is achieved. For example, in the case of flight information, time data must be converted into the correct data types to enable comparisons, searches, and calculations.
"It's inspiring to help introduce Finnair to open source software. Open source is often perceived as something done by small players, but this library was built to meet the needs of a large international organisation. It adapts data from dozens of sources to meet our needs," says Samppa Saarela, a software architect at Nitor.
There are several validator libraries on the market, but none could meet Polaris’s requirements. Once the library was built, interest within Finnair grew and it was used for other projects. Jukka Paasonen, who is leading the development of Finnair's digital services, has promoted open source for many years and supported the library's creation.
Open sourcing of the code was greenlighted when it was seen that the usage in internal project’s was growing inside the organization. Finnair had also planned an open source program that would help in sharing its in-house development expertise. The criteria for open sourcing are a demand for the common usage of the code, high quality and good documentation. An extensive internal review confirmed that the Polaris validation library met the conditions.
How to develop open source code in customer work
When the decision was made to publish the library, project specifics were removed and supporting documentation added. In recent years, a move towards open source code has begun among big players, which have not tended to publish open code for their software. Since high quality was a priority, Finnair allocated sufficient time and support for the library’s development.
The threshold for publishing one’s own code is often high: what if external developers mess up the code or, worst of all, what if the library is ignored by the community.
"I would advise developers that any open source development must meet customer needs and be justified. Proceed with humility, because the client is the ultimate owner of the code. We have worked on the content alongside the customer's product owners, and our additions to the library have always been items required for the development of Polaris," says Samppa Saarela, who is responsible for the library's development.
What was the library built for?
"The library is best suited to API and microservice projects, in which data integrity needs to be ensured. For example, validation is a basic requirement in all applications. That's why I view the creation of an open source library as useful. I find work meaningful when I’m able to create high-quality solutions with care. It's more fun to focus on solving business-critical problems when you don’t have to keep rewriting the same solution over and over again," Samppa says.
In the future, new validators and various use cases will be added to the library. We hope that the library will be used as widely as possible and that the content can be improved in response to requests for further development. Open source development cannot be successfully led by traditional business management — a community must be built to take charge of it. Open source is ultimately in the hands of its community.
Nitor’s experts are familiar with the creation of open source: the company’s “Core-time” enables exploration of interesting personal projects during working hours, and can be used to develop open code. Several open source projects — such as the process engine, nFlow, and cloud infrastructure management software, NDT — have been published over the years.
In individual customer projects, the code has rarely been written on such a generic level to make a library viable (e.g. to use it in a broader context). However, Finnair saw both internal benefits and an opportunity to share its expertise with the developer community. Thanks to Finnair, a small additional investment as part of this large project enabled us to generalise the code and publish the library.