DevOps is a highly efficient method of delivering software development projects quickly and reliably. It also enables continuous delivery, an efficient approach to software development where the project is delivered in short cycles so that the build, test, and release phases are more integrated and happen more frequently. This all sounds great, but how do you achieve this in the modern corporate environment?
The reality of many organizations is that various departments and teams exist in silos. They concentrate on the things that are within their remit, using hardware and equipment that are set up to help them deliver on their objectives. DevOps breaks down these silos to bring better communication, a more collaborative way of working, and, ultimately, more reliable end results.
Two important principles of DevOps are:
- The way people approach a project in terms of working culture
- A commitment to ensuring that the software and process work on all system configurations
Without these two principles you get software that is unreliable and which works on some people’s systems but not others.
Change the Approach
For DevOps to work in a corporate environment you need buy-in from each member of the team. This includes in-house team members like managers, sysadmin, other IT staff, and the end users. It also includes outsource teams, like nearshore software developers.
The goal is that every person and sub-team working on the project is focused not on getting their bit done, but instead on making a positive contribution to getting the whole project completed. This requires a collaborative way of working, and good communication. Everyone needs to be in the loop and must pull in the same direction.
At its core this means breaking down barriers and reducing the risk of various elements within a project doing battle to defend their patch. The reality, of course, is that the operational part of a software development project and the development side are interdependent. Without one the other cannot exist and the project will fail. If everyone buys into this and agrees with the concept, you will find that teamwork improves, which in itself gives the project a greater chance of being successfully completed: i.e. on time, within budget, and to a standard that meets the needs of your business.
The right culture will go a long way to achieving a successful project through DevOps principles, but it is not enough. You also have to give the team the tools that they need to achieve the goal.
One of the biggest problems that DevOps-oriented development teams want to solve the situation where an application works in one environment or configuration, but not in another.
Virtualization is often used as a solution to this problem. Virtual machines enable your developers and IT professionals to deploy, test, debug, and release your application on multiple operating systems and hardware/software configurations. Compatibility problems are quickly identified, plus other issues can be resolved.
By implementing these two strategies it is possible to run a software development project in a way that maximizes a return on your investment.