Much of the software that powers the world's largest companies, protects
our personal data, or encrypts national security information is open to
the public. Anyone can download the source code behind Facebook's user
interface, Google's Android operating system or even Goldman Sachs' data
modeling program, and use it as a building block for a totally new
project. What's more, lots of this software is actually developed
collaboratively, created and maintained by an army of thousands, from
unpaid volunteers to employees at competing tech companies.
As a kid in a small town in Virginia, I could get connected to the best
developers anywhere on earth and learn from them and even read the code
that they'd written. I really wanted to give back and these people were
always my heroes, so I wanted to participate too.
And my voice mattered, it was just immediately, I was hooked.
This is the collaborative world of open-source software, where code is
written and shared freely.
If individuals catch a bug or see an opportunity for improvement, they can
suggest changes to the code and thereby become a contributor to some of
the biggest software projects on Earth.
But this model hasn't always been the norm.
At the dawn of the Internet era through the late 1990s, proprietary
software proliferated.
Microsoft even went so far as to call open-source un-American and bad for
intellectual property rights.
Software was a finite commodity that people hoarded and wanted to sell as
a product. Open-source software was only developed and maintained by a
dedicated few. And there was this fringe world, there was this academic
world who were creating software according to their own rules and sharing
it publicly and making it free.
Certainly dreamed, like wouldn't it be awesome if we could sort of take
over the world? Now, open-source has, essentially, taken over the world.
Companies in every industry from Walmart to ExxonMobil to Verizon have
open-sourced their projects.
Microsoft has completely changed its point of view and is now seen as a
leader in the space.
And in 2016, the U.S.
government even promised to open-source at least 20 percent of all its
new, custom developed code.
So whether you know it or not, you are relying on the volunteer labor in
many cases of thousands of strangers from around the world.
In the 1970s, the M.I.T
Artificial Intelligence Lab had a printer that regularly jammed.
So staff programmer, Richard Stallman, altered its source code, so that
when problems arose it would send a message to everyone in the lab saying,
"Go fix the printer." When the lab finally got a new printer, Stallman
discovered its source code was inaccessible.
He asked for the code, got refused, got upset and ultimately quit his job
to develop a completely open operating system called GNU, in 1983.
With this, Stallman spearheaded the free software movement from which the
open-source movement was born.
It's sort of a very natural way to work together.
Collectively, if everybody comes and contributes their piece, you end up
with something that's a lot greater than something that an individual
could contribute on their own. But throughout the 1980s and the 1990s,
proprietary software is still dominated.
And that was a very lucrative way of producing and selling software, and
created an incentive for large technology companies to create a
proprietary de facto standard.
It was against this backdrop that the open-source operating system Linux
was unceremoniously released in 1991.
It incorporated many elements from Stallman's GNU project, but was mainly
used by hobbyists looking for an alternative to Windows or MacOS.
Throughout the decade though, Linux gained momentum as large companies
took advantage of its flexibility and tweaked the software to their
specific needs. By the turn of the century, NASA, Dell and IBM were all
using it. The platform itself changes nine times an hour.
Ten thousand lines of code are added to Linux every day.
About five thousand lines are changed and about eight thousand lines are
removed. It is by far the highest velocity, most effective software
development process in the history of computing.
As Linux grew, other open-source projects were also gaining popularity,
like the database management system MySQL, the Perl programming language
and the web server Apache.
But for the layperson at the turn of the century, the rise of these
technologies could have gone unnoticed.
After all, hardly anyone ran Linux on their personal computers.
But then in 2008, Google released Android devices, which run on a modified
version of Linux. Suddenly, the operating system blew up the smartphone
market. We are still overwhelmed with the amount of innovation that is
happening in that ecosystem of Android.
Today, there are over 2.5
billion active devices using Android.
As Google demonstrated, businesses were increasingly relying upon this
complex web of open-source technologies to build products and platforms
quickly. And whether they knew it or not, this also meant that they were
depending upon the vast open-source community to maintain this software.
The ability for one company to produce the amount of software that's
required for any modern technology, product or service became
overwhelming. Today, in a modern luxury automobile, there are more lines
of software code than in an F-15 fighter jet.
There's just simply too much software to be written for any single
organization to write it themselves.
Ninety nine percent of Fortune 500 companies use open-source.
Every web server is pretty much Linux.
Most people choose to use open-source programming languages.
It's this like amazing buffet.
You just come in and take this, this, this, this and you slap together
something. You can build, you know, amazingly powerful products with very
little work. The sheer increase in volume drove a need amongst developers
for a central repository where they could collaborate on these huge
projects. And in 2008, GitHub provided an answer.
What GitHub really did for open-source is it kind of standardized the way
that people can contribute to open-source projects and interface with
them. And so that any developer, anywhere on earth knew how to contribute
to a project on GitHub.
And that fed this explosion of open-source activity.
Today, Github hosts the grand majority of the world's open-source software
projects. And in 2018, Microsoft even acquired GitHub, affirming the tech
giant's commitment to open-source development.
We have about 140 million open-source or software projects that are on
GitHub, and over 50 million of those have been added just in the last
year, so it's growing incredibly fast.
And the community has expanded far beyond idealistic hobbyists, as major
companies are increasingly leading the charge, spearheading the
development of open-source projects in-house.
So we see companies like Intel, Google, Facebook, Amazon, Microsoft all
contributing heavily to open-source, Googlers have been contributing to
over 28 thousand projects in 2018.
This number includes projects that Google has driven as well as
contributions it's made to projects led by other companies or individuals.
In the open-source world, you have these fierce commercial rivals who
collaborate every day together.
And they haven't signed anything.
And it's not just software companies.
ExxonMobil has open-sourced its developer toolkit.
Walmart open-sourced its cloud management platform, and Goldman Sachs
recently open-sourced its data modeling program.
This open-source way of working turned out to be better.
Because even in a big tech company where you might have 20 or 30 or 50
thousand developers, you can't compete with the 40 million developers that
are now on GitHub working on open-source every day.
Put simply, open-source development has become the new norm.
And so I expect to see more and more investment into open-source
communities and more and more projects as well as companies finding ways
to commercially monetize the activity that's collected across all of these
different open-source communities.
So how is open-source monetized, when the product is basically given away
for free? Basically, the answer lies in selling support services,
subscriptions and/or commercial versions of the software.
Red Hat, founded in 1993, was the first to figure out a successful
business model, which relies upon selling support services for its
operating system, Red Hat Enterprise Linux.
Anyone can download the software for free, but if businesses want
technical support and greater security, they'll need to buy a
subscription. After decades of commercial success, IBM officially acquired
Red Hat in 2019 for 34 billion dollars.
It was the largest software acquisition in history.
It's really groundbreaking, and it just shows the power and success of
open-source across the world, across the industries.
While Red Hat's 100 percent open-source model has been hard to replicate,
other companies like database program MongoDB and integration platform
MuleSoft, rely upon an "open-core" model, meaning the basic features are
free, but add-ons and other useful elements are proprietary.
As these companies have racked up multi-billion dollar valuations, there's
no doubt that on the enterprise level, there's big money in open-source.
But as for the individual developers, the hobbyists who contribute to and
maintain open-source projects just for fun, their path to profitability is
much less clear. There are a lot of different models for how people make
money in open-source.
One of the models is actually they don't.
A lot of them are volunteers and they do this in their free time, in the
evenings and on the weekends.
But sometimes these "just for fun" side projects end up becoming widely
used, critical to the internet infrastructure that we generally take for
granted. Certain projects get so popular and so widely used that, you
know, they're in every product.
They're used by every company. And then this result of like, you know,
massive Fortune 100, Fortune 500 companies building their businesses on
top of this code that's written by hobbyists for who knows what reason,
right? As one might imagine, problems can arise when critical systems are
based on software that's maintained by unpaid volunteers with no
professional obligation to see to the maintenance of the project.
This issue came to a head in 2014, when the security vulnerability dubbed
Heartbleed was found in OpenSSL, an open-source encryption technology
that's used by the majority of web servers to protect user's personal
data. The flaw has gone undetected for about two years and has exposed
millions of usernames, passwords and possibly credit card info as well.
They left this lock capable of being picked, because they didn't write the
code quite right.
And when they looked into it, the OpenSSL team was tiny.
It was just a few people, who were mostly working on donations, and their
donations had started to dry up.
And understandably, these incredibly talented programmers had a hard time
justifying spending full-time on this, even though it was one of the most
important building blocks of the entire Internet.
Ultimately, organizations like the Linux Foundation pulled together to
provide financial support for OpenSSL, as well as other critical pieces of
underfunded open-source software.
But the disaster served as a wakeup call for an industry that still
largely relies upon unpaid labor.
The burden on the maintainer can become quite intense.
You have sort of all these businesses coming and saying like, you know,
your code is broken, and it's preventing me from getting my job done.
And so you get this like almost intense guilt, I feel like, a lot of
maintainers have a guilt.
Now, companies are taking note and helping to formalize new funding
models. In 2019, GitHub rolled out their Sponsors program, which allows
developers to give and receive recurring donations for their work.
We already have some people who are making their full living on GitHub
Sponsors, so they don't have another job.
And so that's huge for us.
And that's really the key number that we are trying to move up.
For developers like Aboukhadijeh, making a full-time living around
open-source is indeed the dream.
I prefer the freedom of being able to just follow my interests wherever
they go and solve whatever problems I think are interesting.
I'll never make money from some of the stuff I've worked on, but I think
I've done a lot of good in the world by working on it.
It's still early days, but if funding models like GitHub Sponsors pay off,
we may see a new class of software engineers eschewing traditional tech
jobs in favor of independent, open-source work.
Open-source has created so much technological progress.
But because it never quite solved this funding problem in those early
years, I think that we are at a point now where we could lay the
groundwork for the next stage of open-source.
This could also mean expanding the cooperative ethos to industries outside
of software. As the idea of sharing technology and collaborating
collectively expands, we're moving into open hardware initiatives,
data-sharing initiatives, and that's really going to be the future.
After all, the success of open-source reveals that collaboration and
knowledge sharing are more than just feel-good buzzwords, they're an
effective business strategy.
And if we're going to solve some of the world's biggest problems, many
believe that we can't afford to hoard our resources and learnings.
We have environmental concerns.
We're trying to understand things like cancer and Alzheimer's.
These are major collaborative efforts.
The complexity of building these technologies isn't going down, it's only
going up. We can get that technology out there faster when everybody works
together.