The Road to CI/CD – A Short History of Agile Development
Whether you’re new to agile development, completely at home in a DevOps environment or dipping your toe into CI/CD, sometimes it’s worth taking a moment to consider how application development got to where it is today. So, then, a brief history of agile development….
In the beginning
In the 80s and 90s the dominant development methodologies followed the waterfall process. This meant software development followed a strictly sequential structure in which teams embarked on the next phase only once the last one had been completed. The downside of this approach lay in the way teams worked in siloes. There was an ongoing tussle between the development team and the QA team. “Why can’t you test faster?” was the old complaint from the developers, and the testers’ retort was, “Why can’t you code better?” Fixing the flaws, especially if they were made early in the development phase, was time-intensive and at times excruciating. What’s more, it was starting to become apparent that the length of the overall process meant that the end-product didn’t always fit the original business need.
And so a movement towards a more “lightweight” approach began to gather strength. It culminated in what we now see as the start of agile. In 2001, 17 pioneering software developers met at the now-famous development conference in Snowbird, Utah. Together they published the Agile Manifesto, which set out to find ways to build software that would be more collaborative, responsive and delivered more frequent updates. They saw that a lot of the cumbersome, repetitious work could be much improved if the software development life cycle was set up so that the development and test groups worked together to iron out early problems rather than one after the other.
Agile takes hold
What began as a radical and even controversial movement soon began to attract discussion and a following. The Agile Alliance, a nonprofit organization aimed at advancing agile practices was formed by some of the founding developers of the manifesto. Later, in 2009, another group created the Scrum Alliance. This study by HP shows that it was around this time that agile began to really take off in enterprises. Agile adoption had been growing slowly but steadily and by 2008 it had reached 13% uptake. By the next year, this had jumped to 17% and by 2010 it was 37%.
Enter DevOps
Around the time that agile practices really took hold in business, a new kid on the block appeared. Born of agile, but distinct from it too, DevOps was a new interpretation of what collaborative software development should be like. While agile brought development and testing together, DevOps argued that other areas of the businesses needed to be part of the process and saw the creation of teams involving non-IT staff, such as product managers. This was quite a cultural shift. DevOps had other aims too. One important one was to create an environment where new releases could be delivered faster and more frequently. By 2013-14, DevOps’ time had come. In Gartner’s study, Survey Analysis: DevOps Adoption Survey Results 2015, 29% of businesses were using or piloting DevOps projects by this time.
Along comes CI/CD
From the start, agile practices, in common with DevOps, sought to shorten development times, improve quality, increase and increase the number of releases. “Continuous delivery” was referenced in the Agile Manifesto but only now do we have the right tools for the job. When we talk about continuous integration & delivery (CI/CD), really it’s another extension of agile that focuses mainly on the tools and processes needed to integrate smaller chunks of code into the core code quickly, automate testing and deliver continuous updates that in turn enable faster application development.
If you’ve been hearing a lot about CI/CD, you’re not alone. It’s a red-hot trend right now. In terms of actual adoption, CI/CD is still emerging. To give you an idea, Gartner’s 2015 Hype Cycle for Application Development estimates CI is less than two years from mainstream adoption and its impact will be high. CD, by contrast, is more like five years from all-out adoption but its impact will be transformational.
If you’re wondering how to jumpstart CI/CD in your organization, why not contact us for advice?