Think twice before adopting new technologies. Always keep your larger business goals in mind.


If you work with passionate software professionals who care about their craft, it is inevitable to come across discussions about emerging technologies:

“Microsoft just announced a killer technology called Silverlight. Let’s rewrite our legacy Flash code to stay ahead of competition!” “Our homegrown AJAX framework is difficult to scale. We should reimplement using this new framework called Backbone.js!” “Have you heard of AngularJS? It is so much better. We need to migrate our current jQuery source code as soon as possible!” “Facebook’s new React library is a game changer. If we redesign our application using isomorphic React, we can double our productivity!”

I do believe in learning new technologies. On low-stake projects or personal projects, I always make it a point to try out technologies I’ve never used before.

I also believe in waiting for a few releases of a new technology before adopting it on business-critical projects.

Adopting technologies early requires higher upfront development costs. Early adopters must spend effort not only on building their own product, but also on testing the technology they are adopting. And if issues are not addressed by the creator of the technology, early adopters must spend further effort on building workaround solutions.

Early adoption also leads to higher maintenance costs. A technology typically has the greatest changes/improvements in the second generation release, after its creator learns from early adopters’ feedback. To upgrade to more mature versions of the technology, early adopters must spend effort on refactoring and resolving compatibility issues.

Craigslist

Craigslist is a classic example of selecting and staying with mature technologies.

Through the years, server-side technologies have seen innovations in PHP, Python, ASP.NET, Go, Node, etc., while on the client side, JavaScript has been revolutionized by Ajax, jQuery, Backbone.js, Ember.js, AngularJS, React, etc. Meanwhile, Craigslist continues to be a Perl site and continues to keep JavaScript to a minimum. As its founder stated in a 2008 interview:

[We are under] very little pressure in innovation in the conventional sense. … What people want is something simple, fast, effective. People don't care about the fancy stuff.

Craig Newmark

This minimalistic view on technology selection helps Craigslist stay as one of the most popular sites on the Internet for over a decade. In Auguest 2015, Craigslist’s Alexa rank is 57.

Etsy

The benefit of choosing “boring” technologies like Craigslist is explained by Etsy’s Dan McKinley:

Mindful choice of technology gives engineering minds real freedom: the freedom to contemplate bigger questions. Technology for its own sake is snake oil.

Dan McKinley

To McKinley, this mindful choice is not only about

  • Selecting mature technologies with well-understood capabilities and failure modes, but also about
  • Selecting few technologies to focus engineers on technological mastery.

McKinley inherited this conservative philosophy on technology from Kellan Elliott-McCrea, who believes that it is more valuable to optimize globally, not locally:

If it slows down shipping, it probably isn’t worth it. Maturity is knowing when to make the trade off and when not to.

Kellan Elliott-McCrea

Etsy has profited from this philosophy. Its 2014 total merchandise sales were $1.93B. In 2015, it enjoyed a highly successful IPO.

Next time you are tempted to adopt an emerging technology, think twice. Always keep your larger business goals in mind.

Technology Selection