Many large enterprises over the last decade made a deliberate shift to an agile development process as a response to the ever-changing demands of the business. One key tenet of the agile development process is to deliver working software in smaller and more frequent increments, as opposed to the the “big bang” approach of the waterfall method. This is most evident in the agile goal of having potentially shippable features at the end of each sprint.
When this shift to agile development was made, it required development to change the way the entire organization operated. The principals of the agile approach fostered holistic thinking, heightened engagement, and communication and problem solving skills. This style of collaboration was to result in a greater understanding of practice areas among the larger team and was meant to encourage individuals to consider varying points of view, even when they worked in isolation.
Sounds eerily familiar to the promises being made these days with DevOps….
DevOps is not against agile
DevOps is very complementary to the agile software development process, as it extends and completes the continuous integration and release process by ensuring the code is production-ready and providing value to the customer.
Agile has been instrumental for development to produce higher-quality software that is more in tune with user needs and offers swifter release cycles. However, agile unintentionally left IT operations behind due to the piled up deployments waiting for operations to do something with them. Some say DevOps is the new-age version of agile that prevents this issue from happening and enables a far more continuous flow of work into IT Operations. When code is not promoted into production as it is developed, deployments will pile up in front of IT Operations, customers don’t get value, and the deployments often result in chaos and disruption.
Implementing DevOps to increase speed and innovation requires adopting agile development methodologies, and agile development requires quicker and more frequent release cycles. The ability to tear down and rebuild a test environment in minutes — and then to do it over and over again — isn’t just a nice-to-have capability for DevOps; it’s a necessity. Automating this process so that it is visible to change control, but doesn’t require intervention or special approval to implement, reduces the time needed for development.
DevOps transforms IT into a business enabler AND provider
As an IT discipline, DevOps promotes bringing order to an otherwise chaotic and complex world of application/service development, testing, deployment, scaling, and monitoring. DevOps strives for more collaborative, productive relationships between development and operations teams, with faster development cycles and reduced production risks. DevOps carries many advantages over traditional development processes, including fewer bugs, faster fixes, and increased visibility. But most importantly, DevOps makes huge leaps in delivering more customer value into production faster and more efficiently which creates top and bottom line impact on the business.
By minimizing friction between independent teams, DevOps enables a collaborative approach for enterprise software development and delivery that reflects the needs of the entire application lifecycle for today’s modern enterprise. However, it also presents new challenges and demands a greater degree of interdepartmental coordination.
Making the transition from Agile to DevOps means leaving behind many of the comforts you and your team have gotten used to. Both approaches stand for iterating and improving, discussing and redefining - many things that pose challenges within a traditional, entrenched IT enterprise. For these reasons, your biggest bump in the road may be shear resistance and fear of the unknown - some of which may even be your own. But these obstacles should not stand in your way from making the transition since it is one way you can make a true step-change in your IT department, regain the trust of your business and begin to align your entire development lifecycle to take advantage of the many talented resources and tools available to all of us.