With the traditional waterfall development model, the requirements for software are clear and well-defined in advance. The definition of the product itself is also stable. Developers program the software, after which the operational teams handle its implementation.
But, the world of IT is changing fast. Requirements change very often, and software must be developed at an ever-increasing pace. Not only must software and applications be marketed faster, it must also be possible to constantly update them, easily add new features, and fix any bugs that are found. This is where the agile development model really helps.
However, the team of developers are not the only ones who need to react quickly and efficiently. The operational team that must deploy and monitor new applications should also react in a similar way with updates and add-ons. This leads to what is known as the DevOps approach.
While DevOps was created from a need in the early 2000s, it has continuously evolved. In a recent finding from Puppet Labs in their 2015 State of DevOps Report, companies that adopt a DevOps culture experience "60x fewer failures and recover from failure 168x faster than their lower-performing peers. They also deploy 30x more frequently with 200x shorter lead times."
So, what is DevOps?
DevOps is a movement that aims to improve communication, collaboration and integration between the development and operations teams, while adopting the agile methodology principles and practices throughout the systems development life cycle (SDLC). The aim is to improve software product delivery by reducing the time between development and deployment.
Are agile and DevOps the same thing?
DevOps can be thought of as a branch of agile. In a DevOps environment, the development phase of a system will adopt agile practices and principles, such as continuous improvement and rapid development. However, DevOps goes a bit further. It ensures there is an extra focus on the development and operations teams collaborating closely, especially during the release/deployment and production support phases of the SDLC.
Here's how an organisation can transition to a DevOps culture effectively:
Start small: When shifting to DevOps, it is important to transition on a small scale. This can be done effectively by managing a low-risk, high-reward pilot project. It is important to get the development and operations teams in the same room, and allow them to work together towards a common goal on the pilot project. Starting on a small scale ensures any resistance to change is being catered for.
Eliminate the silo mentality: The silo mentality is where several departments or groups within an organisation do not want to share information or knowledge with other individuals in the same organisation. A DevOps environment thrives on collaboration. So, it is vital that the silo mentality and culture is eliminated. To eliminate this culture, a unified vision needs to be created within the organisation. Employees of the company need to row in the same direction, but the executive teams must be engaged and in control of steering the boat.
Morph the mindset of the development and operations teams: Ensure that individuals representing development and operations are put on the same team and have regular meetings. There should be a point of contact representing development and operations in the same room at the same time. It is important to give this joint team a shared goal that will help to foster commonality.
Understand the shared tools strategy across development, testing and deployment: The tool selection process often drives miscommunication within teams. A common selection strategy must adhere to a shared set of objectives among stakeholders. The strategy must also provide seamless collaboration and integration between tools. A key objective of the strategy is to automate as many processes as possible. Developers should be able to send new and updated software to deployment and operations with as little human interaction.
Use venture capitalist-style funding: Venture capitalists focus on value. They invest when projects hit milestones and when they need more funding to reach the next goal. They stop funding projects that aren't working. Agile companies are now adopting this approach. Teams set delivery targets with the business, which are reviewed on a rolling basis against commitments (see our recent blog article on Benefits Maps and how these can aid in keeping projects on track). Goals are updated throughout the year and funding is released as needed.
Does your business need someone to help you transition to DevOps? Allow us to pass along our knowledge to help you implement this culture in your organisation. Get in touch to find out how we can assist you in this process.
Share