Continuous Delivery? Easy! Just Change Everything (Well, Maybe It Is Not That Easy)

Continuous Delivery? Easy! Just Change Everything (Well, Maybe It Is Not That Easy)

Continuous Delivery? Easy! Just Change Everything (well, maybe it is not that easy) Steve Neely and Steve Stolt Rally Software 3333 Walnut Street Boulder, Colorado 80301 Email: fsneely, [email protected] Abstract—Rally Software transitioned from shipping code goes straight to production. The frequency is not our deciding every eight-weeks, with time-boxed Scrum sprints, to a model factor. It is the ability to deploy at will. of continuous delivery with Kanban. The team encountered Covertly, we know that the engineering discipline required complex challenges with their build systems, automated test suites, customer enablement, and internal communication. But to support such a model must be strong. Our systems must there was light at the end of the tunnel — greater control and be finely tuned and comprehensively governed by automation, flexibility over feature releases, incremental delivery of value, with thorough monitoring and testing frameworks. lower risks, fewer defects, easier on-boarding of new developers, The engineering challenge to support per-commit produc- less off-hours work, and a considerable uptick in confidence. tion deployments is readily savored by technical teams. We This experience report describes the journey to continuous delivery with the aim that others can learn from our mistakes and engineers love a challenge. There may be an initial hesitation get their teams deploying more frequently. We will describe and by some in the organization who hold the belief that “letting contrast this transition from the business (product management) software bake” makes it somehow safer, but this fallacy is and engineering perspectives. quickly vanquished as the support system for continuous delivery is realized. The improved test coverage, rapid feed- I. INTRODUCTION back cycles, scrutiny of monitoring systems, and fast rollback When Rally Software was founded in April 2002 the mechanisms result in a far safer environment for shipping engineering strategy was to ship code early and often. The code. company founders had been successfully practicing Agile and But it is not free; it is not painless. Scrum, with its well-known patterns of story planning, sprints, It is important to have the right level of sponsorship before daily stand-ups and retrospectives. They adopted an eight week you begin. A champion trumpeting the the horn for continuous release cadence that propelled the online software as a service delivery is a key starting point but you must garner buy-in (SaaS) product forward for more than seven years. Then we from the executive and senior management teams. When you decided to change everything. present the vision to these stakeholders it is important to have Under the influence of Anderson’s book on Kanban [1], the mission clarified. What are you trying to achieve through Humble’s writings on continuous delivery [2] and on-site continuous delivery and why? You must set clear objectives training by Don Reinertsen [3], we adopted a model of and keep progress steering toward the right direction. There continuous flow, using Scrum-ban with the vision of releasing are many side paths, experiments and “shiny” things to distract new code on-demand and at-will. This was our first step you on the journey towards continuous delivery. It is easy to towards continuous delivery. become distracted or waylaid by these. We did not know how long this journey would take nor Equally important is setting expectations and tracking ap- how complex it could become. However, with careful planning propriate metrics along the way. This helps you demonstrate and designated exit strategies we knew there was a path of progress over time. Depending on your existing infrastructure Kaizen, or continual improvement, which would result in a and legacy systems the switch to a flow-based model of higher quality organization. software delivery will take varying amounts of time. Setting This paper presents our experiences in moving from an objectives, “mother strategies” and “true north” goals will help eight week release cadence to continuous delivery. We describe guide the whole team and provide anchor points for inspection and contrast this transition from the business and engineering and adaptation. perspectives as we provide motivation for why and experiential advice on how to adopt continuous delivery in other teams. A. Our starting point Rally had been in business for just over seven years and II. WHAT IS CONTINUOUS DELIVERY? had built a successful business deploying code to our SaaS Officially, we describe continuous delivery as the ability to product every eight weeks. We executed planning-sprint cycles release software whenever we want. This could be weekly or over seven of those weeks and spent one week “hardening” daily deployments to production; it could mean every check-in the code. This week was an extended bug bash when everyone in the company clicked around the application trying to find more conservative mindset. Continuous delivery shortens the defects in the new software. As defects were logged the feedback cycle and keeps progress moving at pace. engineering team worked frantically to burn down the defect Engineering also knew that shipping in small batches would backlog. It was a laborious and expensive week for the result in fewer fire drills and hence less stress. Regular code company. deployment makes you practiced, comfortable and efficient. Releases would go out on a Saturday morning, with sched- The “scary Saturdays” become a thing of the past. uled application downtime for executing database migrations. Finally, Engineering had a sense of wanting to be the cool Compressed WAR files would be manually copied across the kids. We had read engineering blogs and talked to teams network in preparation for the deployment process to begin. from other companies like Etsy, Amazon and Facebook about Engineering would be on call, with everyone watching the releasing continuously. We wanted to too. It would be a fun charts as the deployment took place via a mix of manual challenge. operations and scripts. If anything went wrong we could lose a Saturday to fixing the failure. Occasionally problems did B. Why would the business care? not surface until Monday when user traffic spikes and so we After seven plus years of practicing and selling Agile with would arrive early that morning as a precaution. Scrum Rally was proud to be labeled an industry expert. Our After a successful release Rally would celebrate. The event product was successful and the company was rapidly growing. was recorded for history with a prized release sticker and the Rally has always been a company that embraces change and eight week cycle began again. it was time to change. Eight week release cycles are too long in the on-demand III. WHY CONTINUOUS DELIVERY? software world. To stay competitive you must be able to sell features that match or beat your peers. Releasing every two In our Scrum days, product management would identify months is painful for a number of reasons: (1) when you major features in a release and everyone would plan to these miss a release you potentially have to wait another eight features with a date in mind. Marketing knew what was weeks to deliver your feature to customers; (2) technical coming up and could advertise accordingly, Sales could entice complexity builds up over time: merging code, coordinating customers with the latest and greatest product features, and data migrations, and integrating long running branches is User Learning could prepare help documentation and tutorials time consuming and error-prone. Rally’s product managers in advance. understood that this introduces risk; (3) the “Scary Saturdays” A downside of these eight week releases was that valuable required “all hands on deck” with everyone watching the shippable increments would often wait. Features completed charts. This included representatives from the business. Since early in the release are artificially delayed and lower priority we were only releasing code six times a year we had to defects (those that did not merit an special out-of-band release) carefully plan. Preparations were time consuming, detracting would remain broken in production. form other work, and we were not practiced at it. Worse, under pressure to deliver the major features identi- Yet our product managers were somewhat ambivalent to- fied at the beginning of the release, sometimes scope was cut wards the full adoption of continuous delivery. They simply back too aggressively. Features that needed one more week wanted to release code any time they wanted and did not care of work could not wait. They would be released as scheduled about every check-in going directly to production. However, without the full functionality originally planned. We always they were very interested in trying kanban in place of Scrum had the best of intentions to return to these features but eight and had been trying to convince Engineering to try kanban weeks is a long time; plans change. for some time. Here was a common ground here on which to build. A. Why would Engineering care? The business’ argument was that kanban would empower Selling continuous delivery to our development team was the teams to work at an optimal workflow and allow them the relatively easy. The software engineers at Rally are eager to latitude to deal with issues around technical debt. Engineer- experiment with new technologies and methodologies. They ing’s argument to the business was that continuous delivery understood that smaller batch sizes would lead to fewer could allow them to release whenever, ship fixes whenever, defects in production as we limited the size of code changes and better support the incremental delivery of value. and garnered fast feedback from our systems. When defects Although Engineering was quick to vote in favor of a shorter arise in a small batch system the focus on where to look is release cadence the business was ultimately convinced by a greatly narrowed since less code was shipped.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    8 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us