The Five Pillars of Modern Software Delivery
Today, enterprises face intense pressure to deliver compelling software experiences to customers. However, most organizations still struggle to deliver software quickly enough and often struggle to measure the business impact of their software efforts.
Enter the Five Pillars of Modern Software Delivery. By implementing these five capabilities, businesses can innovate constantly and accurately measure how software delivery affects their bottom line, without introducing new risks.
1 and 2) Continuous Integration and Continuous Delivery (CI/CD)
Modern development teams have embraced CI/CD as the best approach when implementing automation across the software development lifecycle. The first pillar, continuous integration (CI), means committing verified changes to code and more frequently integrating them with the application as a whole, thereby limiting the risk of introducing errors, conflicts and ensuring the code is working properly by itself and as part of the application. The second pillar, continuous delivery (CD), automatically and continuously verifies that code has been vetted and approved for release, ensuring the latest features are always production-ready.
In the enterprise, deployments tend to be more complex. They must often adhere to rigid compliance, governance and regulatory audit needs. Building a CI/CD strategy that connects engineering teams to the stakeholders requesting and approving their changes improves trust and increases the velocity at which new and exciting features can make it out to customers.
Companies like Autodesk, have seen dramatic increases in their ability to release new software after implementing robust CI/CD capabilities.
"We now see release frequencies daily. We're seeing lead times in hours,” reports George Swan, director of Build Platform at Autodesk. “This is what I always believed Autodesk is capable of doing, and now we can show it.”
3) Release Orchestration
Advanced CI/CD pipelines can be very intricate, especially if they include many different test and release stages. Thus, modern software delivery practices in an enterprise require more than a solid CI/CD strategy. Release orchestration glues CI and CD together and brings empathy from a business point of view to all the individual pieces of the process. Done correctly, release orchestration helps IT leaders manage release pipelines and dependencies across all enterprise teams, DevOps tools and environments, enabling Ops to safely and predictably release new applications and adapt to change at any speed demanded by the business.
The ability to model pipelines in repeatable ways helps improve the speed of software delivery, while maintaining the compliance and governance requirements. The visibility has been beneficial for companies like DZ Bank.
“We now have a clear view of the entire process - one that is secure, repeatable and predictable,” shares Dr. Julius von Rosen, head of electronic trading platforms at DZ Bank.
4) Feature Flagging
For IT leaders, managing which features are consumable in production is a critical aspect of software releases. Feature flags, the fourth pillar of modern software delivery, give development teams more granular control over when and how features are delivered to customers and product teams the ability to test new features with real users, allowing teams to progressively deliver fully-proven features when the market is ready.
Huu Le, engineering manager at Macmillan Learning, recently shared his thoughts on how feature flags have benefited his teams. “Feature flags reduce risk and give us incredible deployment flexibility and that allows us to be a lot more nimble than before.”
Traditional software release practices require engineering and business teams to work lock-step with each other in order to align business and technical requirements before a release. Unfortunately, these teams rarely work in perfect sync due to different priorities, practices and timelines. Feature flags allow features to be deployed to production when the development team is ready. They also allow features to be revealed to customers when the business team is ready. This removes the need for lock-step work and allows each team to work at their own pace. This shift gets developers back to doing what they do best - creating the next big feature.
5) Value Stream Management (VSM)
Success in today's economy requires IT and engineering teams to fully align with the overarching business goals of the company. Yet all too often they're left out of the decision-making process and forced to react to, rather than anticipate, the rapidly changing landscape of customer needs and new or improved technologies. Value stream management allows engineering teams to define and prioritize their goals as concrete business results and demonstrate their value back to the business.
For more information on how CloudBees can help you implement these five pillars of modern software delivery to achieve speed, innovation and security across your SDLC, check out The Definitive Guide to Modern Software Delivery.