September 2011
ThoughtWorks Technology Radar
    Nick Hines & Ian Cartwright


        #thoughtworksradar
Tech Radar (1)


                         Techniques                                        Tools




                         Platforms                                         Languages




Private and Confidential. © 2011 ThoughtWorks, Ltd. All rights reserved.
Tech Radar (2)
      !   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.




Private and Confidential. © 2011 ThoughtWorks, Ltd. All rights reserved.
Continuous Delivery – What and Why
        !   Continuous Delivery – ability to release software on demand
        !   Next logical step after Agile software development
        !   Why do we need Continuous Delivery?
            •  Competitive pressures
            •  Responsiveness to market
            •  Customers expect constant updates
            •  Allows testing of ideas in the market
        !   What are the benefits?
            •  Predictability & Reliability
            •  Fast feedback
            •  Power in the hands of the business




Private and Confidential. © 2011 ThoughtWorks, Ltd. All rights reserved.
Continuous Delivery – How (1)
        !   Development practices
            •  Code on the mainline - not feature branching (more later)
                •  Branch by abstraction & Feature toggles
            •  Automated tests of user journeys
            •  Automated cross-functional tests – simple performance trending
            •  Evolutionary DB
        !   Build and Deployment patterns
            •  Infrastructure as code
            •  Continuous Deployment
            •  Automated database deployment
            •  A/B Testing, Canary releases, etc
            •  CI, Build pipelines, etc



Private and Confidential. © 2011 ThoughtWorks, Ltd. All rights reserved.
Continuous Delivery – How (2)
        !   DevOps
            •  Greater cooperation between development and operations
            •  Use techniques from s/w development e.g. automation and testing
        !   Tooling
            •  Chef, Puppet, CFEngine, Powershell
            •  IAAS
            •  GO
            •  Vagrant




Private and Confidential. © 2011 ThoughtWorks, Ltd. All rights reserved.
Mobile Applications – Why?
       !   Massive growth in availability of Smart phones and mobile devices

       !   Apps from stores overtaking “traditional” applications

       !   Mobile devices becoming default means of accessing information

       !   Cross-platform still huge challenge

       !   Enterprise integration and strategy still in infancy




Private and Confidential. © 2011 ThoughtWorks, Ltd. All rights reserved.
Mobile Applications – How?
        !   Cross platform mobile toolkits – Holy grail but unfortunately an illusion
        !   Progressive enhancement – develop for lowest common denominator then
            enhance
        !   Mobile web
            •  jQuery mobile
            •  HTML 5
            •  Offline mobile
        !   Testing mobile applications
            •  Selenium 2
            •  Frank
        !   Web kit based browsers




Private and Confidential. © 2011 ThoughtWorks, Ltd. All rights reserved.
Web as platform
        !   Internet most scalable and resilient “application” on the planet

        !   Techniques from the web can be used in enterprise applications
            •  E.g. ATOM as pub/sub
            •  Use HTTP as default transport mechanism
            •  Thoughtful caching
            •  Caching reverse proxies

        !   Service choreography
             !   Defined by protocol rather than centrally

        !   Hypermedia driven application protocols
            !   Emulate way humans interact with Internet


Private and Confidential. © 2011 ThoughtWorks, Ltd. All rights reserved.
Web Development
       !   Many tools/techniques emerging to aid in development of rich HTML
           applications
       ! Javascript as first-class language
       ! Coffeescript
       ! Backbone.js
       !   SASS, SCSS, LESS
       !   HAML




Private and Confidential. © 2011 ThoughtWorks, Ltd. All rights reserved.
Cloud Computing

       !   Despite recent setbacks still huge momentum towards cloud
       !   AWS outages illustrate need for “cloud friendly” architectures
       !   Private vs. Public cloud
           •  Data Protection issues
           •  Many enterprises still reluctant or unable to use public cloud
       !   Hybrid cloud to manage excess load




Private and Confidential. © 2011 ThoughtWorks, Ltd. All rights reserved.
Cloud Platforms (1)

        !   AWS
            •  Despite problems range of services continues to expand
            •  Addition of Oracle and VPC
        ! Heroku
            •  Originally RoR PAAS,
            •  Now supports multiple web frameworks, Java and Clojure
        !   Cloud Foundry
            •  Supports Java/Spring applications, Rails, Sinatra, Grails and Node.js also
                MongoDB, MySQL and Redis
            •  Public (VMWare) or Private




Private and Confidential. © 2011 ThoughtWorks, Ltd. All rights reserved.
Cloud Platforms (2)
       !       OpenStack
               •  Open source private cloud
               •  Leverages existing virtualisation technologies e.g. KVM
               •  So far compute and object storage but under active development

       !   Continuous Delivery makes cloud a lot easier!




Private and Confidential. © 2011 ThoughtWorks, Ltd. All rights reserved.
Agile Analytics – Why?
       !   Data obesity
           •  Data collection from web, etc. outstripping ability of business to analyse
               it
       !   Demand for customer insights
           •  Clients sense that marketing can be better targeted
           •  Promise of mining trends from social networks
           •  Traditional finance oriented data warehouses don’t support this kind of
               analysis
       !   Business not getting expected ROI on BI projects
       !   Long project lifecycles – typically 18+ months
       !   Major cost overruns – little ability to fail fast




Private and Confidential. © 2011 ThoughtWorks, Ltd. All rights reserved.
Agile Analytics – What?
       !         Strong end user value focus – focus on business need not technical solution
       !         Iterative development approach – answer most important questions first
       !         Test led development – complexity of BI demands automated tests
       !         Focus on high value stories – don’t “boil the ocean”
       !         Same advantages as “normal” Agile
       !         Use of innovative and open source tools
       !         Event sourced BI – provides real time analytics




Private and Confidential. © 2011 ThoughtWorks, Ltd. All rights reserved.
Agile Analytics – Tools

       !   Use NoSQL databases – column stores and document databases often
           better fit to data
       !   Use Open Source or lightweight BI tools – e.g. Pentaho, JasperSoft,
           CloverETL, Talend, BIRT, SpagoBI
       !   Use Cloud computing to store large data sets
       !   Use functional langauges/tools e.g. MapReduce, Hadoop for rapid processing
       !   Leverage existing lightweight tools e.g. Excel for reporting




Private and Confidential. © 2011 ThoughtWorks, Ltd. All rights reserved.
Some controversies?
      !         The Future of Java
      !         Feature Branching
      !         VCS with “implicit workflow”
      !         Code in configuration
      !         Database or Procedure oriented integration
      !         Java portal servers
      !         GWT




Private and Confidential. © 2011 ThoughtWorks, Ltd. All rights reserved.
Build your own Radar!

       !   Advice: http://tinyurl.com/NealFordRadar
       !   Tool: https://github.com/bdargan/techradar




Private and Confidential. © 2011 ThoughtWorks, Ltd. All rights reserved.

Tw Technology Radar Qtb Sep11

  • 1.
    September 2011 ThoughtWorks TechnologyRadar Nick Hines & Ian Cartwright #thoughtworksradar
  • 2.
    Tech Radar (1) Techniques Tools Platforms Languages Private and Confidential. © 2011 ThoughtWorks, Ltd. All rights reserved.
  • 3.
    Tech Radar (2) !   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. Private and Confidential. © 2011 ThoughtWorks, Ltd. All rights reserved.
  • 4.
    Continuous Delivery –What and Why !   Continuous Delivery – ability to release software on demand !   Next logical step after Agile software development !   Why do we need Continuous Delivery? •  Competitive pressures •  Responsiveness to market •  Customers expect constant updates •  Allows testing of ideas in the market !   What are the benefits? •  Predictability & Reliability •  Fast feedback •  Power in the hands of the business Private and Confidential. © 2011 ThoughtWorks, Ltd. All rights reserved.
  • 5.
    Continuous Delivery –How (1) !   Development practices •  Code on the mainline - not feature branching (more later) •  Branch by abstraction & Feature toggles •  Automated tests of user journeys •  Automated cross-functional tests – simple performance trending •  Evolutionary DB !   Build and Deployment patterns •  Infrastructure as code •  Continuous Deployment •  Automated database deployment •  A/B Testing, Canary releases, etc •  CI, Build pipelines, etc Private and Confidential. © 2011 ThoughtWorks, Ltd. All rights reserved.
  • 6.
    Continuous Delivery –How (2) ! DevOps •  Greater cooperation between development and operations •  Use techniques from s/w development e.g. automation and testing !   Tooling •  Chef, Puppet, CFEngine, Powershell •  IAAS •  GO •  Vagrant Private and Confidential. © 2011 ThoughtWorks, Ltd. All rights reserved.
  • 7.
    Mobile Applications –Why? !   Massive growth in availability of Smart phones and mobile devices !   Apps from stores overtaking “traditional” applications !   Mobile devices becoming default means of accessing information !   Cross-platform still huge challenge !   Enterprise integration and strategy still in infancy Private and Confidential. © 2011 ThoughtWorks, Ltd. All rights reserved.
  • 8.
    Mobile Applications –How? !   Cross platform mobile toolkits – Holy grail but unfortunately an illusion !   Progressive enhancement – develop for lowest common denominator then enhance !   Mobile web •  jQuery mobile •  HTML 5 •  Offline mobile !   Testing mobile applications •  Selenium 2 •  Frank !   Web kit based browsers Private and Confidential. © 2011 ThoughtWorks, Ltd. All rights reserved.
  • 9.
    Web as platform !   Internet most scalable and resilient “application” on the planet !   Techniques from the web can be used in enterprise applications •  E.g. ATOM as pub/sub •  Use HTTP as default transport mechanism •  Thoughtful caching •  Caching reverse proxies !   Service choreography !   Defined by protocol rather than centrally !   Hypermedia driven application protocols !   Emulate way humans interact with Internet Private and Confidential. © 2011 ThoughtWorks, Ltd. All rights reserved.
  • 10.
    Web Development !   Many tools/techniques emerging to aid in development of rich HTML applications ! Javascript as first-class language ! Coffeescript ! Backbone.js !   SASS, SCSS, LESS !   HAML Private and Confidential. © 2011 ThoughtWorks, Ltd. All rights reserved.
  • 11.
    Cloud Computing !   Despite recent setbacks still huge momentum towards cloud !   AWS outages illustrate need for “cloud friendly” architectures !   Private vs. Public cloud •  Data Protection issues •  Many enterprises still reluctant or unable to use public cloud !   Hybrid cloud to manage excess load Private and Confidential. © 2011 ThoughtWorks, Ltd. All rights reserved.
  • 12.
    Cloud Platforms (1) !   AWS •  Despite problems range of services continues to expand •  Addition of Oracle and VPC ! Heroku •  Originally RoR PAAS, •  Now supports multiple web frameworks, Java and Clojure !   Cloud Foundry •  Supports Java/Spring applications, Rails, Sinatra, Grails and Node.js also MongoDB, MySQL and Redis •  Public (VMWare) or Private Private and Confidential. © 2011 ThoughtWorks, Ltd. All rights reserved.
  • 13.
    Cloud Platforms (2) ! OpenStack •  Open source private cloud •  Leverages existing virtualisation technologies e.g. KVM •  So far compute and object storage but under active development !   Continuous Delivery makes cloud a lot easier! Private and Confidential. © 2011 ThoughtWorks, Ltd. All rights reserved.
  • 14.
    Agile Analytics –Why? !   Data obesity •  Data collection from web, etc. outstripping ability of business to analyse it !   Demand for customer insights •  Clients sense that marketing can be better targeted •  Promise of mining trends from social networks •  Traditional finance oriented data warehouses don’t support this kind of analysis !   Business not getting expected ROI on BI projects !   Long project lifecycles – typically 18+ months !   Major cost overruns – little ability to fail fast Private and Confidential. © 2011 ThoughtWorks, Ltd. All rights reserved.
  • 15.
    Agile Analytics –What? !   Strong end user value focus – focus on business need not technical solution !   Iterative development approach – answer most important questions first !   Test led development – complexity of BI demands automated tests !   Focus on high value stories – don’t “boil the ocean” !   Same advantages as “normal” Agile !   Use of innovative and open source tools !   Event sourced BI – provides real time analytics Private and Confidential. © 2011 ThoughtWorks, Ltd. All rights reserved.
  • 16.
    Agile Analytics –Tools !   Use NoSQL databases – column stores and document databases often better fit to data !   Use Open Source or lightweight BI tools – e.g. Pentaho, JasperSoft, CloverETL, Talend, BIRT, SpagoBI !   Use Cloud computing to store large data sets !   Use functional langauges/tools e.g. MapReduce, Hadoop for rapid processing !   Leverage existing lightweight tools e.g. Excel for reporting Private and Confidential. © 2011 ThoughtWorks, Ltd. All rights reserved.
  • 17.
    Some controversies? !   The Future of Java !   Feature Branching !   VCS with “implicit workflow” !   Code in configuration !   Database or Procedure oriented integration !   Java portal servers !   GWT Private and Confidential. © 2011 ThoughtWorks, Ltd. All rights reserved.
  • 18.
    Build your ownRadar! !   Advice: http://tinyurl.com/NealFordRadar !   Tool: https://github.com/bdargan/techradar Private and Confidential. © 2011 ThoughtWorks, Ltd. All rights reserved.