I threw my hat in the ring for a developer role with a company creating popular and progressive open source library. It was something of a long shot, but I was happy to make it through to the first round of interviews.
During the interview, it became clear that the members of this team are impressive developers. In fact, it seems like developing cutting edge software during the day is only half the story. A good number of them also have their own popular and well known open source projects on the side.
As much as I’m impressed, I also begin to realize that I’m out of my league. It’s not that I have not contributed code to the wider internet—my GitHub is full of small demos—but I’ve never actually created something that anyone would ever have heard of.
What does it take to create something good enough to give away? Giving something away sounds like the easiest thing in the world, and yet to do it actually requires a great idea, good execution and plenty of perseverance. But the benefits are obvious to anyone watching the trends in the software industry:
If you look at what the most forward-thinking companies are doing you can start to see glimpses of where the world is heading. Here’s a hint: they’re all giving their software away. Why? Because on a long enough timeline all technology becomes commoditized and they know it.
And yet it seems that a lot of engineering teams, and the managers directing them, are still afraid to let their precious source code leave the safety of a private repository. It is an easy position to adopt when you add up the cost of paying developers to write the code, and it can seem backwards to then just give that code away.
The truth is that it is actually extremely difficult to write open source software that is good enough to give away. Doing so forces you to not only build something that solve a problem faced by many others, but you are also required to deal with all those other non-functional requirements like documentation, release management and versioning, issue tracking, security, and just plain old good code. All of which is often miles above the quality you see tucked away in a private code repo.
What I realised is that having a team of developers who can write code that they can give away provides far more value than the salaries that went into the code itself. Maybe the competition will take something you have developed and improve it, and even monetize it. And what a glorious day that would be, because it means that you have the kind of engineering talent that will take your company right into the next century.