Sure, DevOps is about enabling automation of infrastructure and deployment of code. It’s a faster, better, and smarter way to get your changes into production. But, its so much more. Its about building an agile, continuous improvement, lean IT. To get there, an organization needs to assess their readiness for a holistic IT Philosophy change.
At the end of the day, if all you have done in implementing DevOps , is improve the automation of deploying code or infrastructure, but neglected the processes associated with it, you’ve done it wrong.
Ways the culture needs to shift
Below are key areas that you should focus on as an organization. Your specific situation may require additional culture shifts, but this will get you started.
Commitment to maturing agile practices throughout the organization
Agile practices are a precursor to DevOps . DevOps practices arose from a desire to bring about faster to market changes. Leaders in this field realized while we were revolutionising the development of software, the rest of the value chain in deploying code hadn’t kept up. Technologies and practices needed to mature. Enter the concept of DevOps. Now that we are coming up to speed with devOps, we need to make certain our development practices can utilize a devops driven infrastructure. Otherwise, you will have built into practice, a hurry up and wait infrastructure.
One thing bureaucracies and governments really like is governance. Governance is about ensuring that the right decision makers are involved and that no stakeholder is ignored in the process of making change happen. Governance boards typically meet on a recurrent basis from daily to annually. As governance is placed throughout the life cycle of an application you can quickly see how this would slow change down to a snail’s pace.
Governance in not all bad though. Governance serves a purpose. Typically a governance board is established to address a systemic problem. That systemic problem usually appears as multiple projects having the same problem. A quick fix approach is to put in place a simple, non-technological solution known as a governance board / process to eliminate the risks.
Governance, however, tends to beget more governance. As such you need to know how your governance is impacting your agility. The key to fixing your governance is mapping the value chain of the processes involved in deploying code and determining the necessity of the governance gates. Once you do that, you can streamline.
If you insist on governance steps, make them as automated as possible. Understand the more manual you make something the more delay is being built into your state of the art DevOps system.
Learning how to manage the portfolio of IT projects in an agile environment using agile methodologies and not waterfall
Changing your portfolio management approach to an agile based management framework like Scaled Agile Framework for Enterprise (SAFe) can serve as a catalyst to bringing about the change to get ready for a DevOps environment. A framework has already thought through many of the challenges with managing a large scale enterprise utilizing agile. Why waste your time doing something someone has already done for you? (read: Do not reinvent the wheel)
Process realignment / Process re-engineering
Many of the processes established by a large enterprise are built to ensure orderly transition as work hands off from one group to another. Setting up the framework to create the value map of the existing processes so you can see where you have built in delay is essential to getting your organization’s processes optimized for faster deployments. For instance, if you have a process that takes 180 days to complete to get a server provisioned, and the delays are due to governance board approvals, automating your infrastructure isn’t going to help you much
Establishing trust in test automation
Without test automation, you might as well stop your efforts to become a DevOps organization –Yes, it’s that fundamental. Test automation is the only thing that stands between an infrastructure/application that performs as expected and one that is completely out of control. If an agency is new to test automation, there will need to be an effort placed around getting people comfortable with the thoroughness of test automation. This can be done by doing parallel efforts for a while. Your testers can do their manual tests and you can run the automated tests (albeit much, much quicker) at the same time and compare the results. If your testers find things your automated tests do not, work to improve your automated testing.
Identify your cultural heroes in the DevOps space
Identify your people who embody what you want your organization to look like if you had hundreds of that individual. If those individuals are charismatic and have the technical chops to be respected by their peers, you need to give them a platform for evangelizing DevOps to the rest of the agency. Cultural heroes are powerful, because they have authority that comes from being respected by their peers.
Removing the cultural lines between Operations, Testing, and Development Staff.
In a day where monitoring is now fairly advanced, there is little need to limit developer access to production to the point where it is completely hands off. Further testers need to be more aligned with the capabilities that developers can build into their code for testing. System admins, database administrators and the like need to understand the challenges developers face, as well as the opportunities that exist to bring development in to assist with system and database administration.
It’s exciting to get IT to the point where it will operate in a lean fashion. The move enhances collaboration and working closer while removing silos. The journey to lean, agile, DevOps focused IT can and should be enjoyable. Afterall, you are making things better.