Automating the software delivery lifecycle with developer-focused tooling
Like the code that professional developers work with daily, the processes around continuous integration and continuous delivery (CI/CD) are pretty opaque to most people in the enterprise. Try explaining the difference between a fork and a branch to anyone who’s not immersed in Git, and it’s only a matter of time until eyes start to glaze over.
“On average, software projects run around 30 per cent overtime. This percentage does not seem to have decreased since the 1980s,” says Elvan Kula in a 2022 paper entitled “Factors Affecting On-Time Delivery in Large-Scale Agile Software Development.” Small wonder, then, that it’s often a challenge to explain to corporate stakeholders why products take the time to become production-ready.
But developers are smart cookies, so over time, they have created a series of processes and tools that build various forms of what we can collectively term a Software Delivery Lifecycle (SDLC).
There are significant challenges along the journey to deliver on-time and on-budget products consistently and safely. Partly, that’s due to the changing nature of software languages and preferred delivery methods. Monolithic Java applications delivered via a waterfall methodology may require very different processes and automation tools from, for instance, container-based Rust applications in an Agile workflow that develops code quickly and breaks stuff.
DevOps teams bring together their specific tooling according to the needs of their organisation. It’s certainly possible to build on favourite FOSS applications and libraries to create a pipeline for work, but such a solution can suffer from several problems:
- security best practices may have been low on the priority list,
- some tools are great with interpreted languages, others excel in compiled object-oriented languages,
- there’s usually an element of hand-holding and sticking plaster to keep CI/CD moving smoothly,
- not every platform is fully integrated with the entire pipeline for whatever reason
The enterprise is interested in innovative products that don’t break, are safe, and can be iterated quickly. It also wants the same teams’ existing tools (within reason) to serve a diverse portfolio of applications. And it wants those tools to be flexible enough to encourage freedom, experimentation, and innovation. That is, of course, what differentiates one company from another.
Since software became commercially viable, developers have felt those commercial pressures, resulting in tools like Ansible – for infrastructure deployment – and Jenkins – for software development, with the latter automating processes around CI and release orchestration.
Like most areas of an organisation’s operations, automating tasks helps make work streams less prone to error and delay. Having well-paid accounts professionals pick their way through spreadsheets chasing staff expenses, for example, is universally recognised as a poor allocation of resources. Similarly, creating pull requests and waiting for a build server queue to work through a list of waiting jobs are the DevOps team’s version of the same mindset.
Explaining to decision-makers exactly why delays were affecting timely delivery is never easy, especially given the specialist knowledge required to understand any issue, never mind empathising or offering solutions. In some senses, only developers can solve developers’ problems, and thankfully, that’s exactly what has transpired in the form of the CloudBees platform.
Automated delivery is a major step in increasing the speed at which finished and secure software can be placed into production environments. By automating significant parts of the software development and delivery lifecycle, organisations can innovate and iterate more quickly, attracting more users with the new products and features they demand.
The de facto platform to achieve these ends is Jenkins, a modular framework familiar to most professional developers since around 2011-2012. The commercial vessel associated with this open-source centrepiece, CloudBees CI, offers users a familiar ‘FOSS plus’ model. DevOps teams already use the Jenkins platform’s methods and tools daily, but CloudBees CI enables a high degree of automation in software development and delivery streams for development in the enterprise. (CloudBees CI is often referred to as ‘Enterprise Jenkins’.)
Like CloudBees CI offering significantly more than Jenkins-with-wings, the CloudBees offerings help teams with continuous development automation and workflows, analysis into process efficiency, and the baking-in of best practices in data compliance and security. Project delivery at large scale, however complex, can be accelerated using the types of tooling and workflows that development teams will recognise and adopt.
The platform CloudBees CI is designed to be open and extensible, so it can be extended as and when new tools are required. The company continues to innovate on the Jenkins platform alongside its active and enthusiastic community, with CloudBees as one of the project’s most active contributors. The fully-supported, modular system helps companies build a culture of speedy innovation that can deliver on time and within budget.
In our next article in this series, we’ll look at some of the workflows developers use and how CloudBees’ product stable automates and simplifies workflows to lower the need for manual processes that eat time and introduce human error.
- Samsung introduces a groundbreaking microSD card for enhanced AI capabilities
- AWS strikes AI collaboration deals with Malaysian telcos at MWC 2024
- Retrieval augmented generative AI in backup and recovery
- Five cool gadgets announced at MWC 2024
- OpenAI faces New York Times hacking allegations while exploring deals with Tumblr