Blogs about Jazz

Blogs > Jazz Team Blog >

DevOps adoption: tools, processes and culture

Tags:

In my previous post I described how the Collaborative Lifecycle Management (CLM) team is applying DevOps principles and practices to reach our goal of continuous delivery.

When the Jazz project began in 2005, even before Rational Team Concert (RTC) existed, we maintained all our source in CVS and used hand-crafted Ant scripts, Eclipse PDE and CruiseControl for builds. Once we had built RTC we were able to use the tool itself including the Jazz Source Code Management  (SCM) and the Jazz build capabilities as well as work items, planning, reports, dashboards, and all the other essential things that every development team needs.

Over time we had to support more platforms and our builds became bigger and more complicated. To facilitate building multiple Jazz products on a common platform, we split the Jazz project into separate Jazz Foundation and RTC projects and we started developing Rational Quality Manager (RQM) and Rational Requirements Composer (RRC). We also retooled our builds on Common Component Build (CCB), an internal build system that most other teams in IBM Rational were using. There were a number of reasons for this including our desire to further componentize our builds and the fact that some of the components we depended on were provided by other IBM teams and built using CCB. Although we used CCB as the back-end for builds, which also allowed us to leverage a large build farm, we continued to use Jazz build as the front-end for managing and scheduling builds. Once we had completed development on RQM and RRC we began to use those products to manage our test and requirements activities.

So today we use RTC, RQM, RRC, and an internal build system. Our project has over 400 people working in over 25 locations in over ten countries. We build the full suite of CLM products multiple times every day. Each full CLM build compiles approximately 10 million lines of code, generates about 100 GB of binaries, and takes about 6.5 – 7 hours to run without running all the automated tests. We have a lot of tests. For example, there are over 55,000 JUnit tests in Jazz Foundation and over 18,000 JUnit tests in RTC. It takes 1.5 hours to run the Jazz Foundation JUnits and 2.5 hours to run the RTC JUnits and that’s just against a Derby database.

Our adoption of DevOps is leading us to:

Use the Jazz products in new ways. For example, we’ve heavily customized our Jazz process templates to help us track things like Obstacles, Risks, Process Pain Points, Process Improvement Actions, and additional detail on standard work items such as Defects. You can see some of the ways in which we’ve customized our Jazz process templates on our wiki.

Adopt additional tools in IBM’s DevOps solution. For example, we’re adopting the UrbanCode products such as UrbanCode uDeploy for automating application deployment and UrbanCode uRelease for release management and coordination.

Streamline development and business processes. Like many organizations we have many business processes that are associated with our development efforts. As part of our ongoing effort to become more agile, we’re optimizing those processes such as the ways in which we maintain plan backlogs and plan forthcoming releases and the way in which we get all products translated into a multitude of languages to support customers worldwide.

Transform our culture. We’re a large and distributed team working in a large organization and our project is well-established. We have to adopt new ways of thinking and ensure that we’re all on the same page. This is arguably the most difficult part of the transformation we’re undertaking.

We’re telling the story about how we’re doing all of these things through blogging and other forms of communication. Yesterday we launched a new set of pages on jazz.net dedicated to DevOps and continuous delivery. The context for this is IBM’s DevOps solution. We first started talking about this at the Pulse conference in February this year – check out Kristof Kloecker’s blog post. Then in April IBM acquired UrbanCode, strengthening our DevOps offering. In June, we further expanded the solution. While IBM’s DevOps solution is not new it is continuing to evolve and you’ll be hearing a lot more about it here on jazz.net because the CLM products such as RTC, RQM and RRC are an essential part of the solution and our CLM team is adopting more tools from the solution over time.

We hope you’ll watch our DevOps page at jazz.net/devops to follow our progress. You’ll see all our forthcoming DevOps blog posts appearing there but it’s also a good place to watch for other DevOps content including posts in the forums and articles in the library. We’d especially like to hear from you if you’re adopting DevOps with the Jazz tools and other parts of IBM’s DevOps solution.

Adrian Cho
Program Director, Continuous Delivery Evangelist
IBM Rational