<<

Continuous Delivery Software Release Methodology

CONTENTS Itron Software Release Methodology ...... 2 Change Control ...... 4 What is Continuous Delivery? ...... 2 Automated Deployment ...... 4 Continuous Delivery Benefi ts ...... 2 Development ...... 4 Agile Methodology...... 3 Test ...... 4 Microsoft Azure DevOps Services ...... 3 Staging ...... 4 Test-driven Development (TDD) ...... 3 Production 1 ...... 4 Incremental Iterative Changes ...... 3 Production 2 ...... 4 ...... 3 Customer Testing ...... 4 Required Peer ...... 3 Service Level Agreements ...... 4 Conclusion ...... 4

WHITE PAPER ITRON SOFTWARE RELEASE METHODOLOGY WHAT IS CONTINUOUS DELIVERY? CONTINUOUS DELIVERY BENEFITS

To provide the best value for our customers Continuous delivery (CD) is a software Accelerated Time to Market – CD lets at a competitive cost and increase the engineering approach in which teams organizations deliver the business value velocity of innovation, Itron Software and produce software in short cycles, ensuring inherent in new software releases to Services continues to move towards a that the software can be reliably released at customers more quickly. This capability Software as a Service (SaaS), Continuous any time. It aims to build, test and release helps us stay ahead of the competition. Delivery methodology. Instead of customers software faster and more frequently. The Building the Right Product – Frequent purchasing software and incurring the cost approach reduces the cost, time and risk of releases let the development teams obtain of the infrastructure and personnel to run it, delivering changes by allowing for more user feedback more quickly. This allows they purchase a monthly subscription to the incremental updates to applications in them work on only useful features. If they services and applications they need, as production. A straightforward and fi nd that a feature isn’t useful, they spend no they need it. repeatable deployment process is important for continuous delivery. further effort on it. This helps them build the Instead of worrying about upgrades and right product. versions, users have confi dence that they are running the latest and greatest versions, and they know they have the support of development teams who are focused on ensuring their system is running at optimal performance. Instead of waiting months for new features that might miss the mark, Itron speeds up innovation and delivers new features into users’ hands early and often. In doing so, we are able to collect valuable user feedback as we iterate on new functionality to ensure it provides promised value, with high quality. Itron Analytics successfully uses this model, releasing to production for all customer systems, every three weeks. DevOps Continuous Delivery Process Every release adheres to strict metrics before it is deployed to production. These Continuous delivery is enabled through the Improved Productivity and Effi ciency – metrics include: deployment pipeline. The purpose of the Considerable time savings for developers, testers, operations engineers and so on, 98% of all automated and manual tests deployment pipeline has three components: » through automation. for regressions and new features must visibility, feedback and continually deploy. pass Visibility – All aspects of the delivery Reliable Releases – The risks associated 0 Priority 1 or Priority 2 defects are open with a release are signifi cantly decreased, » system including building, deploying, testing Approval by product management, and releasing, are visible to every member and the release process is more reliable. » development management and of the team to promote collaboration. With CD, the deployment process and managed services scripts are tested repeatedly before Feedback – Team members learn of deploying to production. So, most errors in problems as soon as possible when they the deployment process and scripts have occur so that they can fi x them as quickly already been discovered. When the release as possible. frequency increases, the number of code changes in each release decreases. Continually deploy – Through a fully As a result, fi nding and fi xing problems automated process, you can deploy and that occur is easier, and the length of release any version of the software to any time for which the error causes an impact environment. is reduced.

Improved Product Quality – The number of open bugs and production incidents is decreased signifi cantly.

Improved Customer Satisfaction – A higher level of customer satisfaction is achieved. AGILE SOFTWARE DEVELOPMENT MICROSOFT AZURE Itron software engineers take ownership for METHODOLOGY DEVOPS SERVICES collaborating with the product management Agile software development is a set of Azure DevOps Services (ADS) is and test resources on their team to fi rst principles for software development in Microsoft’s modern Application Lifecycle write automated unit tests that are run with which requirements and solutions evolve Management system that provides teams every build deployed to any environment. All through collaboration between self- with tools to plan, collaborate and deliver unit test failures are expected to be resolved organizing, cross-functional teams. It software. Itron uses ADS for: immediately before that code can be promotes adaptive planning, evolutionary Requirements planning and tracking merged into the release branch, stopping it development, prompt delivery and » from ever getting out in the fi rst place. continuous improvement, and it encourages Release planning » A main component of the defect resolution rapid and fl exible response to change. Work scheduling and tracking » process is that unit tests and test cases Test case development, execution » are added to each time a and traceability defect is identifi ed in production and resolved.

Daily Review INCREMENTAL ITERATIVE CHANGES To provide more visibility and feedback on new features, with CD, Itron deploys only Items Feedback very small changes, incrementally over time. Because only 1-10% of a new feature is put into production at a time, any issues that are found in production are resolved quickly and have limited impact to end users. With other software delivery models, huge software changes create the need for signifi cant user training and advance Backlog Iteration Release Deliverable upgrade planning to ensure changes are Plan Collaborate Deliver accepted. With smaller, iterative changes, users can more easily adapt to changes Agile Project Management: Iteration and provide early feedback to the team; Defect and issue tracking reducing or eliminating the pain of upgrades. Itron software development teams use » Agile methodology to plan and deliver Deployment automation high-quality software in a short continuous » CONTINUOUS INTEGRATION Cross-team collaboration delivery model, with focus on early user » Continuous integration is a software Change control management feedback and continuous improvement. » development practice where developers Each team owns the services or Peer code reviews, or » regularly merge their code changes into applications they provide from planning, “Pull request” review a central repository, and automated design, implementation, deployment, Software programming builds and tests are executed. These » documentation and support—working automated tests that are run with every closely with stakeholders such as sales, The tools ADS provides enables Itron build identify and inform developers of any marketing and support services to to successfully implement an Agile defects created by their code. Developers external users. methodology and continuous delivery, can resolve those defects early in the Itron uses specifi c tools and processes to speeding up the velocity of innovation development process. ensure high quality, innovative software while improving quality. is released to production every three REQUIRED PEER CODE REVIEW weeks or even less to add more value to TEST-DRIVEN DEVELOPMENT (TDD) All code changes that are integrated into its customers using Agile methodology to Test-driven development (TDD) is a software the release branch require peer approval. support continuous deployment. development process that relies on the A developer’s code changes must be repetition of a very short development reviewed and approved by another cycle: Requirements are turned into very developer on the team before it can be specifi c test cases, then the software integrated. Code changes require team is improved to pass only the new tests. collaboration on the rework to ensure Alternative software development defects are prevented even before they processes can allow software to be added are ever integrated and caught by a test. that is not proven to meet requirements. CHANGE CONTROL CUSTOMER TESTING Developers use change control tools in ADS verifi ed; and 98% of all test cases must pass Because new releases can be deployed to ensure code changes happen in a before deployment can proceed to any at any time, customers are not able to test structured way. Code changes are tracked production environment in the pipeline. before released to production. However, by the person who made the change, the upon request in certain circumstances, Staging work item associated with the change, customers can review any test cases and In the Staging environment, builds are deployed the reason for the change and when to even request that specifi c test cases are upon approval once the development team, assist with continuous improvement and included in automated tests to ensure in collaboration with product management, prevent defects. adequate test coverage of customer- agree the release is stable and near “production specifi c scenarios. ready”. This environment is where Itron AUTOMATED DEPLOYMENT The changes introduced into releases are internal stakeholders, such as Itron Customer Itron utilizes automated deployment very small. Therefore, if any defects are Support and Product Management can start mechanisms and scripting. When applied identifi ed by a user, they can be reported previewing new functionality and report any within the development, testing, staging to the team, where it becomes the issues found. Bugs reported are prioritized and production environments that mimic development team’s top priority to and potentially required to be resolved prior production environments, we ensure solid, investigate, fi x and add needed automated to release to production. This is also the reproducible deployments throughout the unit tests to the regression testing to ensure environment used to demonstrate new entire pipeline. Itron also uses a concept it remains resolved. features to internal or external Itron stakeholders known as “canary releases” to reduce the prior to production release for initial impact of issues found during deployment. SERVICE LEVEL AGREEMENTS stakeholder feedback. If a canary release fails deployment at any Service Level Agreements (SLA) are the step, other environments continue working customer’s primary measure of product on their current build until the issue is resolved. quality. If an Itron service or application does not adhere to their SLAs, customers can demand recourse, including fi nancial compensation. We take very seriously Deployment Pipeline Diagram the trust that our customers have in us to deliver high quality software and services. Development Production 1 For this reason, we believe we should The Development environment is where After the fi nal release candidate build has compensate our customers if we don’t software engineers implement new been successfully deployed to the Staging meet their expectations. automated unit tests and functionality within environment with 0 priority bugs and 98% a given sprint. Code changes are peer pass on all test cases, then approval is given An example SLA is, “Service is available reviewed prior to being allowed to integrate to deploy the release to the fi rst production 99% of the time, excluding a specifi ed into the codeline and automated tests run on environment. Any deployment failures are maintenance window of Sundays from all new builds. resolved by the team as soon as possible 24 9PM-12AM pacifi c time.” hours per day, 7 days per week. Test CONCLUSION The second environment in the deployment Production 2 Continuous Delivery is a proven methodology pipeline is the Test environment. It is updated After the release build has been verifi ed that increases the speed of innovation automatically with new builds multiple times as successfully deployed to Production 1, and the quality and reliability of software per day within a given sprint. Unit tests are then the build is deployed to all remaining applications and services in an effi cient, run with every deployment where failures production environments. Any deployment cost-effective manner. Through the are fi xed immediately. Developers and failures are resolved by the team as soon as combination of SLAs, Agile Methodology, testers also execute additional automated possible 24 hours per day, 7 days per week. Automated Testing and Deployment, and and manual testing of new functionality Deployment to production systems is done Test-driven Development, Itron believes we and targeted regression test cases beyond with zero down time when possible, but if deliver new value that’s reliable and trouble- existing unit tests. Bugs identifi ed are tracked not, always occurs during off-work hours free for our customers. through resolution and prioritized. Priority (6PM to 5AM, weekdays) to minimize any 1 & 2 bugs are required to be resolved and maintenance down time of the applications.

Join us in creating a more resourceful world. CORPORATE HQ To learn more visit itron.com 2111 North Molter Road

While Itron strives to make the content of its marketing materials as timely and accurate as possible, Itron makes no claims, promises, Liberty Lake, WA 99019 USA or guarantees about the accuracy, completeness, or adequacy of, and expressly disclaims liability for errors and omissions in, such Phone: 1.800.635.5461 materials. No warranty of any kind, implied, expressed, or statutory, including but not limited to the warranties of non-infringement of third party rights, title, merchantability, and fi tness for a particular purpose, is given with respect to the content of these marketing materials. Fax: 1.509.891.3355 © Copyright 2020 Itron. All rights reserved. 101603WP-02 08/20