Technology Radar

Prepared by the ThoughtWorks Technology Advisory Board - May 2013

What’s New?

Here are the trends highlighted in this edition:

  • Embracing falling boundaries — Whether you like it or not, boundaries are falling down around you. We choose to embrace this by examining concepts like perimeterless enterprise, development environments in the cloud, and co-location by telepresence.
  • Applying proven practices to areas that somehow missed them — We are not really sure why, but many in our industry have missed ideas like capturing client side JavaScript errors, continuous delivery for mobile, database migrations for NoSQL, and frameworks for CSS.
  • Lightweight options for analytics — Data science and analytics are not just for people with a PhD in the field. We highlight collaborative analytics and data science, where all developers understand the basics and work closely with experts when necessary.
  • Infrastructure as code — Continuous delivery and DevOps have elevated our thinking about infrastructure. The implications of thinking about infrastructure as code and the need for new tools are still evolving.

ThoughtWorkers are passionate about technology. We build it, research it, test it, open source it, write about it, and constantly aim to improve it – for everyone. Our mission is to champion software excellence and revolutionize IT. We create and share the ThoughtWorks Technology Radar in support of that mission. The ThoughtWorks Technology Advisory Board, a group of senior technology leaders in ThoughtWorks, creates the radar. They meet regularly to discuss the global technology strategy for ThoughtWorks and the technology trends that significantly impact our industry.

The radar captures the output of the Technology Advisory Board’s discussions in a format that provides value to a wide range of stakeholders, from CIOs to developers. The content is intended as a concise summary. We encourage you to explore these technologies for more detail. The radar is graphical in nature, grouping items into techniques, tools, platforms, and languages & frameworks. When radar items could appear in multiple quadrants, we chose the one that seemed most appropriate.

We further group these items in four rings to reflect our current position on them. The rings are:

  • Adopt: We feel strongly that the industry should be adopting these items. We use them when appropriate on our projects.
  • Trial: Worth pursuing. It is important to understand how to build up this capability. Enterprises should try this technology on a project that can handle the risk.
  • Assess: Worth exploring with the goal of understanding how it will affect your enterprise.
  • Hold: Proceed with caution.

Items that are new or have had significant changes since the last radar are represented as triangles, ( ) while items that have not moved are represented as circles ( ). The detailed graphs for each quadrant show the movement that items have taken. We are interested in far more items than we can reasonably fit into a document this size, so we fade many items from the last radar to make room for the new items. Fading an item does not mean that we no longer care about it.

For more background on the radar, see http://martinfowler.com/articles/radar-faq.html

Contributors

The ThoughtWorks Technology Advisory Board is comprised of:

  • Rebecca Parsons (CTO)
  • Martin Fowler (Chief Scientist)
  • Badri Janakiraman
  • Darren Smith
  • Erik Doernenburg
  • Evan Bottcher
  • Hao Xu
  • Ian Cartwright
  • James Lewis
  • Jeff Norris
  • Mike Mason
  • Neal Ford
  • Rachel Laycock
  • Ronaldo Ferraz
  • Sam Newman
  • Scott Shaw
  • Srihari Srinivasan
  • Thiyagu Palanisamy

Previous tech radars

The Radar

Techniques

Adopt
  1. Aggregates as documents
  2. Automated deployment pipeline
  3. Guerrilla testing
  4. In-process acceptance testing
  5. Mobile testing on mobile networks
  6. Performance testing as a first-class citizen
  7. Promises for asynchronous programming
  8. Windows infrastructure automation
Trial
  1. Analyzing test runs
  2. Blue-green deployment
  3. Co-location by telepresence
  4. Continuous delivery for mobile devices
  5. Database migrations for NoSQL
  6. Edge Side Includes for page composition
  7. HTML5 storage instead of cookies
  8. Logs as data
  9. Micro-services
  10. Mobile first
  11. Perimeterless enterprise
  12. Responsive web design
  13. Semantic monitoring
Assess
  1. Capturing client-side JavaScript errors
  2. Collaborative analytics and data science
  3. Development environments in the cloud
  4. Focus on mean time to recovery
  5. Machine image as a build artifact
  6. Minimizing application configuration
Hold
  1. Exhaustive browser based testing

Platforms

Adopt
  1. Elastic Search
  2. MongoDB
  3. Neo4J
  4. Redis
  5. SMS and USSD as a UI
Trial
  1. BigQuery
  2. Continuous integration in the cloud
  3. Couchbase
  4. Hadoop 2.0
  5. Node.js
  6. OpenStack
  7. Rackspace Cloud
  8. Riak
Assess
  1. Azure
  2. Calatrava
  3. Datomic
  4. PhoneGap/Apache Cordova
  5. PostgreSQL for NoSQL
  6. Vumi
  7. Zepto.js
Hold
  1. Big enterprise solutions
  2. Singleton infrastructure
  3. WS-*

Tools

Adopt
  1. D3
  2. Embedded servlet containers
  3. Frank
  4. Gradle
  5. Graphite
  6. Immutable servers
  7. NuGet
  8. PSake
Trial
  1. Apache Pig
  2. Gatling
  3. Jekyll
  4. Locust
  5. Logstash & Graylog2
  6. PhantomJS
  7. Puppet-librarian and Chef-librarian
  8. TestFlight & HockeyApp
Assess
  1. Browser-based templating
  2. Faraday
  3. Hystrix
  4. Icon fonts
  5. Light Table
  6. Octopus
  7. Reactive Extensions for .Net
  8. Riemann
  9. Snowplow Analytics
  10. UIAutomator
Hold
  1. Heavyweight test tools
  2. Maven
  3. TFS

Languages & Frameworks

Adopt
  1. Clojure
  2. CSS frameworks
  3. Jasmine paired with Node.js
  4. Scala
  5. Sinatra
Trial
  1. CoffeeScript
  2. Dropwizard
  3. HTML5 for offline applications
  4. JavaScript as a platform
  5. JavaScript MV* frameworks
  6. Play Framework 2
  7. Require.js & NPM
  8. Scratch, Alice, and Kodu
Assess
  1. ClojureScript
  2. Gremlin
  3. Lua
  4. Nancy
  5. OWIN
  6. RubyMotion
  7. Twitter Bootstrap
Hold
  1. Backbone.js
  2. Component-based frameworks
  3. Handwritten CSS
  4. Logic in stored procedures