Agile Planning for Continuous Integration and Deployment Projects

Tuesday, November 13, 2018

#Automotive Agile

Your company has jumped into Agile software development (Scrum is used in this example), standups are happening, and the IT team stood up a Jenkins server last week. Soon the builds will be kicked off at each check-in and some automated tests will be run. Does that mean you are doing Continuous Integration (CI)?  How will the Continuous Deployment (CD) work?

Designing, building, deploying, and supporting CI/CD in any organization is a big job. I’m defining CI to mean frequent integration of work which is verified by automated builds and tests, and CD to mean frequent delivery of value to the customer ideally in a fully automated way.  While planning a CI/CD rollout, there are many considerations that you may (or should) be wrestling with, such as:

  • How many teams will be using the service? Do they have different quality goals such as the robustness of the testing or the tools / services that are needed for testing?
  • Will MIL/SIL/PIL/SIL systems be used for automated test? At what level of integration?
  • Are there multi-site issues to consider? Does this present unique tooling challenges?
  • How many check-in's per day will the system support? 1000s?
  • What type of metrics will be tracked? What type of dashboard(s) will be needed and how will they be built?
  • How will tool versioning and updating be handled?
  • What is the goal for check-in to tests-completed to developer-feedback? Minutes? Hours? Days?
  • What happens when the build breaks? What will the culture of the organization support?
  • What does it mean to deploy software continuously?

While some of these questions are technical and architectural in nature, others involve metrics, product strategy, or organization culture. Many companies wade into the water of Agile and piece together a CI / CD system as they go. Smart companies plan with the end in mind.  I’m not going to address CI /CD strategies in this post, but I will propose the use of Agile methods to plan this critical part of your Agile transformation.

Five Agile Planning Tips for CI / CD Projects

  1. Use Lean methods to identify value streams which will require CI/CD. Design around value streams, not organizational structures. Automotive development often crosses international lines and customer / contractor boundaries. Build systems that can support product delivery, not just development site requirements.
  2. Build CI/CD product backlog(s). Assign a product owner (or owners in the case of large multi-site developments) and gather input from the diverse teams that will eventually use the system. Consider the quality needs for each team. For example, an ECU needs to have code reviews (check out Gerritt), static analysis, and MIL and HIL testing on every checkin. A research team might only need build automation and 'smoke' test automation.
  3. Write down a clear definition of Done. IT stories need ‘doneness’ just like product delivery stories. Have the team agree on a standard definition that applies to all stories, and then revisit the definition at each sprint retrospective.  Include quality goals and verification criteria (how to test it).
  4. Identify one or two pilot teams. Whichever team is building the new infrastructure, identify the users and include them (potentially a product owner but certainly as a stakeholder) in backlog refinement, standup meetings, and sprint demos.
  5. Learn from your lessons. Try new ways to run retrospectives after each iteration to find the best way to get team input and engagement. Implement lessons learned in the next sprint and practice continuous improvement. Don’t forget to start tracking velocity from the very first sprint so that you will be able to do effective release planning down the road.

What I’m proposing is for IT teams responsible for building production grade CI/CD systems to use the same planning rigor as the product teams. My hope is that your IT teams realize the Agile benefits that got your company into Agile in the first place, and that along the way, development and IT walls crumble as collaboration around shared goals and values grows.

LET'S TALK

Do you need to improve your automotive product development, to increase efficiency, or to comply with ASPICE and Functional Safety? You are at the right place.

Back