There must be millions if not billions of words published online about how to start a new project.
I know there are because I read a lot of them before I started writing Next Gen DevOps: Creating The DevOps Organisation.
Most of these articles can be boiled down to two main pieces of advice:
1. Step back from the project and look at the whole domain and then create a structured approach.
2. Dig in a little and get started until you get a sense of the complexity of your project and then step back again and take a second look.
So why does everyone starting a DevOps transformation immediately get cracking on Continuous Delivery?
It’s, arguably, the hardest technical activity in a DevOps transformation. Continuous Delivery in an enterprise with even a couple of years of legacy might involve the orchestration of hundreds of configuration items, the management of thousands of variables and an extremely complex validation process to ensure everything works as it should. There are organisations out there who still aren’t benefiting from reliable continuous build processes who are nevertheless downloading configuration management tools and starting to code the management of application properties. There are still businesses who consider testing to be an entry level role who are trying to get their entire estate to deploy continuously multiple times a day.
Don’t get me wrong I’m all for Configuration Management. If you can get that nailed you unlock a vast amount of potential, it’s just that it’s starting in the middle of the project!
I don’t know where your organisation is or where your strengths and weaknesses lie but before you start building building complex models for divining properties and environment variables you could consider configuration files as artefacts. Manage the creation, modification and deployment of those like you would your applications. You could also ensure you have your deployment tools in version control and treat them like you do your revenue generating services. Manage the development of them with stories and ensure their development keeps pace with the development of the services they need to deploy.
If you really want to push the bleeding edge you could include systems and testing experts in your development projects and ensure that your testing, monitoring and deployment capability is as sophisticated and as capable as your revenue generating services are
Good luck out there and feel free to drop me an email if you need a hand.
Oh and if anyone is wondering about the featured image, that’s my Dad teaching me to climb trees. If the reference is too subtle you start climbing trees at the bottom of the tree where it’s simplest but sometimes hardest to get a good grip :).