If DevOps terminology sounds Greek to you, then you pretty much are like the rest of us. Terms like Docker, Containers, CloudBees, Ansible, Automated Testing, are just a few of the Buzzwords, technologies, and practices that your agency may need to learn in order to move towards DevOps as an organization.
There is hope though in learning this at this point in time. The technology is not as bleeding edge as it has been and is on the path towards mainstreaming. This means better training and user community support for you.
Many agencies IT shops still operate with practices from the late 90’s and early 2000’s with respect to their operations. The practices are refined and well established. In addition, support staff are well accustomed to the technology they are being asked to support.
With DevOps technologies, the future seems cloudy only because there are lots of new players in the space, and no clear cut winner on which technologies to use and how to train your staff and structure your organization to do the work. Very similar to when internet technologies where first emerging and you had a slew of application servers, languages, and applications architecture, (anyone remember applets) . To top it all off open source was emerging at the time too. The problem here.. choices, choices, and more choices.
DevOps means doing more with less, and doing it quite a bit better than it has been done before. The only way to achieve that is through a push towards using technologies to automate the labor intensive operations short of actually writing development code.
Your agency needs to think automation first and put in place the practices, people and technologies to get there.
The Technology Stack
The technology Stack can be complex and difficult to make sense of. That’s where a graphical visualization of the technology stack can help you make sense of the world. There are many out there and I encourage you to go looking. That said, I found this the other day on GrowthPoint’s website and it has quite a few of the technologies used and it has lumped them together to show their purpose in the DevOps pipeline.
If you have adopted agile practices in your agency, some of these techniques might already be in place. In addition to the technologies needed to support development, your teams need to know the why’s behind automation and the pitfalls of practices that can cause havoc in the long run. Poorly documented code, coding without building unit tests first, neglecting code reviews, only dealing with security at the end of a development cycle, et c., will cause issues especially when you try to automate of make changes quickly.
Importing the talent verses growing talent
Classic IT problem: You need your long term employees to know the technology since it will be critical to their ability to complete work for you in the long run. However, the learning curve can be pretty steep and that means time. On the other hand, you can hire new employees or bring in contracted skill to do the work but you end up leaving your existing employees to work legacy solutions. Nothing kills morale more than neglecting your people and locking them out of skill set improvement.
Think of this as growing food to eat. You have a couple of options, you can pay an expert, the farmer, to give you food, and you eat well until the farmer leaves or you run out of money. Or if you want to train your people how to grow food, you can send them off to farming school and give them a book or two, but you may end up starving in the process. However, there is another way. You can pay the farmer for food, while the farmer teaches you and your people how to grow food.
This is why you need to bring in new talent, with the idea of bringing your in-house talent along for the ride. Getting your employees up to speed while hiring people to get the skills you need immediately is the winning combination in this area. It should be a stated goal of any DevOps talent infusion effort to train and educate those who have been with you in the beginning.