People might think that agile and infrastructure don’t go together. I will try to at least get you to think that there is something in this “agile infrastructure”. If you work in infrastructure, you may be thinking “Agile is for dev teams, not us”. Or maybe you are thinking “we have the right services to the business in place, so why would we need to be Agile?” Perhaps you are thinking “we already treat our infrastructure as code”. I hope you will all get something out of this piece.
To start with, what is Agile Infrastructure? Well, there are many answers to this question, ranging from DevOps to resilient operations to applying agile methods to infrastructure products. I think that there are aspects of all of this when creating a truly agile infrastructure as this is multi-layered. In the end what we are trying to do is to deliver a reliable product to the customer for a risk-appropriate price, while providing business value. When it comes to the infrastructure space, this is difficult to measure as the majority of infrastructure is sort of hidden under layers of other ‘stuff’. People generally only think about it when something goes wrong (or the access disappears). You’ve probably heard the cry of “the network is down” (when usually the network is not the problem, but appropriate access to it). However, the problem is that in the eye of the consumer this is all the same thing.
What do we want an Agile Infrastructure to do? First of all, it needs to fit all these criteria:
- Versioning of the infrastructure
- Address resistance to change
- No downtime due to change
- Deliver business value overall
- Enable change that works frequently
- Automation
- No downtime due to change
- Reduces complexity
- Makes everyone heroes not just a few individuals
- Resilient
- Process-driven
- Automation
- Makes everyone “heroes” not just a few individuals
- Predictive
- Proactive maintenance
- Monitoring
Agile infrastructure is multi-layered and must provide the answers to the above (except for the money to implement)! If you can show the company what are the benefits of delivering the things I mentioned above and also make small changes that start showing the benefits, you will for sure gain credibility to deliver on bigger scale. Just keep in mind that it is a journey and not a once-off thing.
Agile infrastructure goes beyond the infrastructure/operations teams. All the layers need to “work together” to deliver Agile Infrastructure overall. A break in any one of these will deliver an OK (sub-optimal result).
What is the Agile Mindset
The fact that it involves people change makes it probably the hardest area. If this change doesn’t come from the top and is supported, change will fail. For instance “parachuting in Agile/ Lean/Six Sigma experts doesn’t work because skills transfer is not something that happens easily. My tip is: Look to train the trainer as a priority and also embrace agile/lean activities in the everyday work routines of the business.
My view on Agile Projects
Development and also the infrastructure need to be seen as two parts of the whole, and not as separate entities as people might think. For example, the architecture and design of applications need to facilitate delivery into production. This includes things such as understanding the operational impact during the concept stage, and also ensuring that the business need for infrastructure remains without interference from, let’s say, project budgets with the business agreement. I think the best thing is to deliver the needed infrastructure sooner through the development teams, and then migrate both the infrastructure and application during the delivery process.
My take on Agile Operations
It’s interesting to note when the agile operations team goes from firefighting to a customer-centric approach. For that, it’s important to change the operating model, breaking down silos that might be existing and also creating smaller cross-functional teams. It’s important to identify and also document the operations processes. Don’t forget to apply lean principles because it helps remove unnecessary waste, and only in the final stage automate as much as possible. This is how you can drive resilience into the day-to-day processes and operations as well as products coming into the creation environment.
And to finalise… Agile Technology
Now you’re probably wondering what I mean by agile technology? Usually, the most obvious choices for agile tech are virtualisation and also cloud (I mean cloud in its many forms, but one could include here SDN and virtual storage). To sum up, anything here that takes away the need to manually or individually configure items and deliver as required (notwithstanding that underneath there is the physical hardware). Create and if possible own the continuous build servers, also test servers, and version control servers so that you can foster the link with the development teams.
What is the last part of the secret sauce? Create your set of agile infrastructure principles. They need to relevant to your organisation and the culture of your fit. Good luck and let me know in the comments how you go!
Guest article written by: Trudie, at http://www.diaxion.com
Good piece of content. Being one of the top software development companies in Michigan, we follow Agile software development methodology for project management as it helps us to work more efficiently and effectively, while delivering the highest quality product on-time and budget.