A lot of software engineers want to use a tool because it promises to be “better” than an alternative. While we should seek better tools, many engineers forget one aspect that amplifies a tools’ success – it’s community. The power of a large, active community does much more to drive the adoption of tools, practices and processes than one that is marginally better. Let’s explore why in this article.
In the early days of telecommunications, people observed that a network’s value accelerated the larger it grew. A network with thousands of people was disproportionately more valuable than one with tens of people. Take a moment to imagine how less valuable social networks like Twitter or Instagram would be, if they only had 50 people instead of the millions or more they have today.
This disproportionate growth in value is named Metcalfe’s Law after Robert Metcalfe. An alternative term people use for this observation is super-linear growth. Linear growth means a doubling of network size results in a doubling of value. Super-linear growth means a doubling of network size results in more than a doubling in value. Metcalfe’s Law demonstrates how the power of communities contributes to a tool’s success, even when marginally better tools exist.
The Rise of PHP
In the early days of the web, websites contained mostly static HTML pages. Developers built dynamic pages typically using scripting languages like Perl, or sometimes a compiled C program, via the Common Gateway Interface (CGI). You might recognise the
cgibin path in URLs today.
Perl had excellent support for string interpolation. However, Perl, like many other programming languages at the time, was not designed as a templating language. Programming languages in the early days of the web made writing dynamic web pages harder.
During this time, Rasmus Lerdorf announced PHP. Lerdorf never designed PHP as a programming language, describing it as a toolkit. It evolved into the interpreted scripting language we know today. An interpreted language like PHP, offered developers a quicker tool for building dynamic webpages. Unlike C, a popular programming language at the time, PHP developers didn’t need to learn concepts like linking and compiling or explicitly allocating and deallocating memory. PHP, like Perl, offered developers a quick feedback loop. You write a small script, refresh the browser, and you could see the results immediately.
Developers using PHP produced dynamic web pages faster compared to the most popular scripting language at the time, Perl. While Perl supported good string interpolation, PHP made it easier to interleave code with blocks of HTML. A purist might argue PHP encouraged tighter coupling between logic and presentation. A pragmatist simply produced dynamic web pages faster. Even if there was a future maintenance cost.
Demand for more dynamic and interactive websites increased. PHP offered an easy solution to the growing demand for web developers. Its low barrier to entry including free downloads, many tutorials and quick learning curve made new developers productive. PHP’s community accelerated in growth leading to significant industry wide shifts like the LAMP stack and WordPress.
The Dominance of WordPress
More than 15 years ago, I wanted to set up a blog. It was the era of tools like JRoller, TypePad, MovableType and WordPress. My hosting provider automatically excluded JRoller (now called Roller), a java-based open-source tool. Running java on a shared host was too resource-intensive. As I wanted to run a self-hosted blog, I discounted TypePad, which left the two most popular options at the time – MovableType and WordPress.
MovableType was a closed source product that had some strange personal licensing issues at the time (read “Movable Type 3.0” and “Like a Lead Zeppelin” for details). I opted for the open-source WordPress and made a bet on its community. I picked WordPress because of two key traits:
- As an open-source project, WordPress had an active and growing community of contributors
- WordPress optimised for extensibility via its plugin architecture for new capabilities and themes
More than 15 years later and countless updates I think my bet paid off. According to W3Techs as of Oct 2020, 38.5% of all websites and 63.5% of websites backed with a Content Management System (CMS) use WordPress 🤯.
The Power of Community Creates a Virtuous Cycle
WordPress benefited from a virtuous cycle of an open platform with active contributors. People wanted to use WordPress because of its capabilities. More people using WordPress increased demand for missing capabilities. With its plugin architecture, anyone could develop and share a plugin to add a missing capability. More plugins increased WordPress’ potential, leading to more users and this virtuous cycle.
WordPress started as a blogging platform, but thanks to the power of community, it evolved beyond just a CMS. You can find many WordPress-powered blogs and content. But you can also build WordPress-powered e-Commerce stores, event and conference websites, learning management systems and much more. You only need to look at commercial market places like Envato (formerly ThemeForest) to see the power of community in action.
Examples of the Power of Community
I have seen the power of community drive tool adoption across our industry. Many tools with the largest communities are not my preferred choices, but I cannot deny how influential the power of community can be.
Many examples I have seen over my career include:
- Spring Framework – Compare this to earlier Dependency Injection (DI) frameworks, or even a preference for no DI framework.
- Maven – Compare this with the transition away from Ant, and what I see as a smaller community around Gradle.
- The Agile Community and to a certain degree, the more closed Scrum Community – Compare this with DSDM (Dynamic Systems Development Methodology), a lesser-known agile methodology due its expensive licensing and gated community.
- Git and its killer app, GitHub – Compare this to the less popular distributed source control system, Mercurial.
A Better Hammer Is Not as Useful as a Good Enough Hammer with a Rich and Active Community
Engineers forget that we pick tools to reach a goal quicker. Many engineers forget about this goal, distracted by the promise of something new and slightly better. When choosing tools, engineers must not forget about the power of community.
Want to level up your technical leadership skills? Discover self-paced courses at the http://techlead.academy, join a guided online workshop, “Shortcut to Tech Leadership“, or subscribe to Level Up, a free curated newsletter for leaders in tech.