Accelerating Your DevOps Processes with Agile
One theme we consistently hear is the urgent need to accelerate the application development process. Agile has done a lot to help meet this goal, in part through effective iterative development.
In teaching configuration management and DevOps continuous delivery, I often observe that while everyone is striving to be agile, few people can actually verbalize the guidance described in the Agile Manifesto, and even fewer can really discuss agile principles. Going faster without understanding whether we are going in the right direction has a significant risk of us getting lost. To really achieve development velocity, you need to understand agile in a pragmatic and hands-on way.
The Agile Manifesto aptly advises us to value individuals and interactions over processes and tools. Many organizations today fail to value their employees or establish a culture where individuals and interactions are fostered in a positive way. Processes and tools are critical for your success as well, especially if you are going to implement DevOps principles and practices.
But DevOps also highlights the importance of effective communication and collaboration. Too many organizations suffer from silos and dysfunctional interactions between employees, which directly impact the success of the firm. I see many firms mired in rigid processes that result in some teams working against each other instead of succeeding together.
Lots of folks like to complain about wasting time creating documentation that no one will use, but I also see many firms struggle to run and support their systems when contract consultants move on to other projects without leaving behind enough documentation or transferring the knowledge required to support the system.
Managing change is another challenging area. Developers can fail to recognize the importance of partnering with operations to plan for having the infrastructure required. Similarly, we find operations may not realize just how difficult it can be to predict how new technologies will work, including their consumption of memory, storage, and processing cycles. We need strong teamwork to communicate what factors are well understood and identify risks that could potentially impact the firm.
End-users and customers often take a first look at the evolving system and immediately change their requirements. This is usually because looking at the screens and functionality helped them understand what they really need in a more effective way. Other times competitive pressures or even changes in federal laws can necessitate new requirements. While these changes and scope creep are inevitable, they are not without impact. Successful firms learn and emulate agile principles, relying on each member of the organization to work as a collaborative part of the team.
The Agile Manifesto and its supporting principles provide valuable insight, but your team can only utilize this wisdom if they understand the concepts and the organization lives by its values. Getting this right can help your team accelerate your development process and achieve success.