Retain Top Technical Talent by Embracing Open-source

Todd Kaplinger
DevOps For the Cloud
4 min readApr 23, 2017

The tech industry is constantly reinventing itself and as the job market continues to look for top technical talent, many large scale enterprises are searching for ways to retain their top developers. In this article, I will discuss the role that open-source plays in increasing developer productivity, industry recognition and eminence as well as continuing to stay ahead of the latest technology trends and directions.

Before I jump directly into the heart of the article, I would like to share this quote from Wikipedia.

The open-source software development, or collaborative development from multiple independent sources, generates an increasingly more diverse scope of design perspective than any one company is capable of developing and sustaining long term.

There are many benefits to embracing open-source but the key driver is the diversity of those developing collaboratively across many industries and geographic locales. Most companies do not have the manpower to deliver innovation at this pace in isolation.

Adopt Open-source Platforms
Shortly after the development team is assembled and the scope of the project has been identified, the discussion typically turns to how do we plan to build this solution. With the rise of cloud native applications based upon a micro services architecture, there are a plethora of options for developers to choose from. What I have found is that developers want to write code with minimal overhead and roadblocks to delivering code quickly and with high quality. This means that they want to leverage the best of breed solutions spanning not only the application server but the entire middleware stack including Databases (MongoDB), Caching (Redis) and Messaging (RabbitMQ) solutions. By leveraging open source, the development teams are able to quickly find answers to commonly known issues, have direct access to the development community associated with these projects and also able to view the source code if desired. By sharing the same technology stacks found in many startups, developers can be confident that these best of breed tools have strong community backing (tech startups would not survive building on top of inferior solutions) but with the added benefit of having directly translatable skills in the case they ever do decide to explore the job market.

Open-sourcing Code
While working on many projects, our development teams often find that there are often opportunities to build components and frameworks that can be delivered as common libraries that are suitable for multiple projects. Examples of these are security extensions focused on specific cloud platforms, wrapper libraries to common open source packages to deal with logging, tracing and analytics to open-sourcing SDKs to simplify the developer experience for developers using your service. I have found that these types of projects provide a great starting point for developers prior to joining larger community projects and teach concepts such as forking repos, submitting pull requests and the value of unit tests and code coverage that are all required before being granted commit privileges on these industry adopted projects.

Contributing to Open-source
To get started with existing open-source projects, it is often easiest to start with existing open issues and submitting pull requests with proposed fix (and tests demonstrating the problem is resolved). As developers continue to contribute pull requests, they start to gain credibility with the project committers and eventually may be granted committer rights. As the developers gain more visibility and leadership within the project, developers may start to identify new features that are required to deliver value for new market opportunities. If there is a sufficient number of up votes, the community will accept the pull request and integrate the code into their development process. Many source code repositories including GitHub keep track of commits and have outstanding dashboards that show leaders for given projects. By having commit rights to key open-source projects developers can quickly attain thought leadership and technical eminence in these communities.

Retiring Proprietary Code for Open-source
It is quite common to uncover proprietary code that could easily be replaced by open-source solutions. In the past, I have found that we wrote code that is now legacy that was considered a common problem the open-source community delivered as common components. With a goal towards reducing code maintenance and reduce the opportunity for bugs in our proprietary code logic, we often will retire our code in preference to open-source. This one is much less about maintaining technical talent than the other models we outlined but it does remove the annoyance teams have in maintaining obsolete code that is more aptly handled by the open-source community.

Conclusion
When I engage our development teams and discuss why they like to work on our cloud projects, the top reasons are open technology choices, contributing to open source and the pace of innovation that the first two provide. While many enterprises are focused on delivering value, the rate and pace that can be seen by following the principles seen in many startups around open-source cannot be ignored. If you want to ensure that you maintain a vibrant technical development team, embracing open-source may be your best decision ever.

--

--

Todd Kaplinger
DevOps For the Cloud

Vice President SW Engineering — Chief Architect, Retail Solutions@NCR Voyix. The opinions expressed here are my own. Follow me on Twitter @todkap