Continuous Delivery with Go enables an 87% improvement in release time, 85% reduction in test time and ROI of 6x in one of Germany s largest consumer portals. Increasing frequency of releases to every week down from quarterly major releases
Executive Summary With revenues of 54.6 million (2010), about 4 million visitors per month, and more than 4 million brokered contracts, is one of Germany s largest independent consumer portals for energy and telecommunications products and services. To enable the consumer to stay a step ahead of the highly competitive German energy and telecommunications industry, needed to improve deployment time and frequency of releases. Go, ThoughtWorks Studios Agile release process, but also accelerated adoption of the practice of continuous delivery. The Customer The German energy industry has grown into one of the most competitive in Europe, kept on its toes by a dynamic switching market - 10% of the total domestic market (40 million households) has switched energy providers. enables users to conveniently compare over 21,300 available tariffs in the German energy and telecommunications markets and switch directly to their best-suited supplier. With nearly 20 million page impressions and in excess of 4 million brokered contracts, has emerged as a leading consumer portal for the energy provider switching market. - Europe s leading energy switching portal The Challenge The German energy and telecommunication market is extremely volatile. Suppliers frequently change tariffs and challenging for them to keep abreast of the changes. enables consumers to stay on top of this dynamic market by constantly evolving their applications and data to adapt to change. This involves changing the User Interface (UI) to display the accurate price for their customers. We are so vital to the German market for switching portals that providers always want to have their latest calculation model with current data in our comparison tool. We thus have to constantly adjust our tool and the time to Apart from the analysis and development effort in adapting to frequent change, testing and deploying was 2 days. This delayed the frequency with which we could release updates and keep up with the changes in various price models. Additionally, if highly attractive tariffs are not available on our website, we stand the risk of losing money and customers, says Matthias Riesterer, Systems Architect,.
How did Go help? When decided to revamp their processes about 2 years ago, their approach was holistic and included adoption of both Agile management and engineering best practices. It involved organizational restructuring and the removal of silos between different development streams, while implementing continuous delivery as a core concept, increasing test coverage, and improving test automation. The team, consisting of 5 Quality Analysts (QAs), 6 Business Analysts (BAs), 35 developers, 6 database administrators and 2 from Operations (DevOPs), typically works on 6 projects in parallel, with a major release every quarter. Due to the frequency of change and multiple test environments the team was keen on a tool that facilitated both Continuous Integration (CI) and Continuous Delivery (CD). We started CI with CruiseControl.Net and we also had a look at other tools, like Jenkins (formerly Hudson). However at that time it did not fully support the concept of build artifacts and we would be forced to recompile at every stage, says Riesterer. We now spend most of our time developing new features and new models and not trying to deploy it. Well, this was different before, when we actually started to implement such us more than 2 days just to deploy the application. -- Joachim Hefner Head of Development acceptance criteria by the BAs and QAs. The developers use XP practices such as pair programming, Test Driven Development (TDD) and Domain Driven Design to implement the stories. The code is developed in tests are run by NUnit and Watin is used for acceptance tests. Go with its concept of build pipelines to model the delivery process, build grid to run tests in parallel and easy-to-use UI was the team s choice for both CI and CD. It empowered the team to build a robust and rapid delivery process in various ways including: defects. such as the source in SVN, they re absolutely the same because we re using templates, says Hefner. In the end you want to control the delivery process and not have the tool control your process and team. This is what we actually like about Go- it is so open to ideas and the feeling that we can t do this because Go cannot or will not do it. -- Matthias Riesterer Systems Architect Continuous Delivery based on Feature Toggles: We do not use SVN feature branches anymore for new features but develop them on trunk using the feature toggles concept as described by Martin Fowler et al. That tremendously improved the overall productivity of the development department. We used just does not exist anymore. On Go we set up Feature Toggles pipelines, again based on Go s concept of templates, as required for each toggled feature. The build scripts pick up the differences in the environments via Go s environment variables. So a pipeline for a toggled feature is set up in 5 minutes. No kidding, says Riesterer. Continuous Delivery using Feature Toggles Adaptable environment modeling: and delivery process. Our BAs and developers discuss the domain
model, as we try to use a model that describes our real-world scenario. Go allows us to model the CD process the way we want to and have full control over it, says Hefner. Reliable release management: Go serves as a repository for the output of the various build stages and supports deployment of any and creates an artifact, which is the assembled code. Then Go runs all the tests on it - unit, integration and functional. So this artifact is pushed through all test environments and is used for deployment. This code you compiled is exactly what you tested and this is what you are going to deploy. Not all the tools we evaluated supported this as well, explains Riesterer. Continuous Delivery using Feature Toggles Continuous delivery with Go reduces release time considerably, but more importantly, helps remove silos from the deployment process. Anyone on the team can execute the deployment process, and it is not solely dependent on the knowledge and availability of key members of our DevOps team. -- Joachim Hefner Head of Development Scalable build cloud for parallel test intelligence: Go s robust, highly scalable build cloud allows tests to be run in parallel on multiple environments. Hefner adds, Go s concept of having a grid of agents and running all the tests in parallel, saves a huge amount of time. Go runs 7 acceptance tests in parallel in 20 minutes which would ordinarily take more than 2 hours. Visual and easy deployments: Go s usability-driven interface provides real-time deployment progress for all your applications at one glance. Go is easy to use and very easy to maintain. Or rather does not require any maintenance. Go is used by everyone on our team, from developers to QAs and even BAs. The interface also makes the delivery process very transparent and manageable, reiterates Riesterer.
The Results The numbers speak for themselves Release time reduced by 80% Test time reduced by 85% 1200 person-hours saved each year ROI of 6x Releases every week down from major releases every 3 months We deliver code much faster now and keep up with business changes. Go is a story. -- Thomas Haida CIO It would take up to 2 days to deliver code, and now it is down to a few hours. Besides the whole release process being monitored by a solution such as Go gives a high degree of transparency to the entire team. plans to continue maximizing Go to improve delivery processes. While our QA can trigger most of the applications to the production environment, our DevOPs team still needs to deploy certain scripts to make the website go live. We are working on including our load balancer and other scripts into our Go pipeline so we achieve true 1-click deployment. By including the load balancer into the deployment pipeline, the manual steps executed by DevOps goes down from 15 minutes to about 10 minutes. More importantly however, it removes silos from the process. While currently the whole deployment process depends on the knowledge and availability of key members of our DevOps team, all our QAs, developers and theoretically even the BAs would be able to perform the deployment at any time in a reliable and repeatable process. DevOps would continue to improve or adjust the delivery process but there would not be a dependency bottleneck for and improve environment modeling, Go will continue to simplify continuous delivery so new functionality can be released frequently and rapidly.
The best decision About ThoughtWorks Studios Backed by more than 17 years of experience in Agile delivery, ThoughtWorks Studios is the product division of ThoughtWorks, Inc., the pioneering leader in Agile development. Mingle and Go are part of the Agile Application Lifecycle Management (ALM) solution from ThoughtWorks Studios, a global leader in Agile software development solutions and services. Adaptive ALM supports each stage of the software development process with an intrinsically Agile solution that enables release of high-quality software while accelerating Agile adoption. Adaptive ALM includes Go for Agile release management, Mingle for Agile project management and collaboration, and Twist for Agile testing. ThoughtWorks Studios has over 400 customers in more than 20 countries. The company headquarters is co-located in San Francisco and Bangalore, with offices in London and select cities in Europe, Asia and Australia. For more information, visit www.thoughtworks-studios.com. Mingle, an Agile management and collaboration tool, provides a common workspace for all team members and an automated system of record for all projects. Mingle can adapt any existing workflow process and easily manages daily development activities. Offering true-tolife visibility into the entire development process for all stakeholders, Mingle helps development teams become more open and collaborative. Go provides both continuous integration and release management and can drive development and IT operations to collectively plan continuous product releases. Go offers deployment pipelines and a zeroconfiguration build grid, which simplify the release management process. Unlike opensource tools, Go scales to meet the needs of a complex development project with numerous dependencies. Twist, an automated testing solution, provides English-like constructs, making the testing process more productive for all team members. As applications grow in complexity, Twist helps to more easily maintain complex test suites. These suites keep pace with application development and are held as long-living assets. Why is Go different? Continuous delivery Accelerate returns on IT investments with rapid, push-button deployments of fully tested software. Deliver new functionality faster with rapid, automated feedback on the production readiness of your applications whenever changes are made to them. Release reliably by modeling your organization s environments and gaining visibility and control of deployments through them. Based on real-world Agile Solutions are based on 16 years of real-world software delivery expertise for customers worldwide. We have pioneered Agile and delivered 1000+ Agile projects. Regarded by Forrester as one of 5 firms to make a difference to Application development. Holistic Agile adoption Get the most out of Agile by holistically implementing Agile best practices. Get support through the entire development lifecycle with our Adaptive ALM solution (Go, Mingle for project management, and Twist for test automation). Attend interactive workshops by Agile experts tailor made for various roles, levels of Agile adoption, and Agile best practices. ThoughtWorks Studios CALL: Americas (9:00am - 5:00pm CST) +1 312 543 2599 Europe (9:00am - 5:00pm GMT) +44 (0) 20 7497 4500 Asia, Australia and Africa (9:30am - 6:00pm IST, 4:00am GMT - 12:30pm GMT) +91 80 4323 3722 - Direct Sales Desk +91 80 4323 3700 - Office Board line EMAIL: studios@thoughtworks.com WEB: www.thoughtworks-studios.com SAN FRANCISCO CHICAGO LONDON BANGALORE BEIJING MELBOURNE