I’m sure there are hundreds of posts out there trying to define DevOps. What is DevOps, and why is it important? Here are my two cents:
If you subscribe to the Lean software development way of thinking, you think about a pipeline of value that results in working software. For example this might be:
Analysis -> Dev -> Test -> Deploy -> Monitor
As with any pipeline, there is likely a bottleneck somewhere that restricts the flow of value. Lean is all about identifying and attacking these bottlenecks. Ten years ago—before Agile—the bottleneck was probably Analysis, or maybe Test. With Agile development becoming mainstream over the last decade, it has done a pretty good job of attacking those bottlenecks, resulting in analysis and test becoming more just-in-time, spread out over the course of a project, and embedded in the regular dev workflows. They are no longer the bottleneck.
(also check out what is Agile product development and its benefits)
A New Bottleneck Has Risen
This occurs at the boundary of the dev/test team and the operations team. These teams tend to be very separate with a clear hand-off between them, resulting in friction and a bottleneck in the flow of value.
Here are a few common ways this bottleneck manifests itself:
Creating environments for dev/test/uat/prod, and managing or making changes to those environments.
Deployment to Production
Still often done by writing word documents with deployment instructions, scheduling a time for the Operations team to do the deployment, then delivering the document and deployment packages to Operations.
Production Support / Monitoring
Is the application available, are there errors, what is the load on the servers.
My Definition of DevOps
“DevOps is recognizing that a bottleneck exists between Development and Operations, and doing something to address it.”
How to Address It
When I hear people talk about DevOps, I often hear 3 common approaches:
Closer collaboration between the Dev & Ops team.
Perhaps having an Ops team member actively involved with the dev team throughout the project.
Increased Dev Team responsibility.
Writing automation scripts to provision / manage environments, deployment automation scripts, etc.
New role: DevOps Engineer.
Introducing a new role specifically to sit between dev and ops to facilitate automation and collaboration.
Although #2 is the approach I see most often, I believe all 3 approaches are perfectly valid ways to attack the problem.
Ready to Get Started with DevOps?
If you’re ready to adopt DevOps for your organization but not sure where to start, Imaginet is here to help. Our Imaginet certified DevOps and ALM experts have been working with the Microsoft ALM & DevOps tools since they originated in 2005 and can help you get started with any of your DevOps initiatives. To find out more, schedule your free consultation call with Imaginet today.
Imaginet is your trusted technology partner who turns your business innovation ideas into reality. 20+ years | 1200+ satisfied customers | 2500+ successful engagements. Primary services include Web Application Development, Mobile App Development, and SharePoint consulting services, with additional specialties in Power BI & Business Intelligence, Office 365, Azure, Visual Studio, TFS, & VSTS, Skype for Business, and more. Located in the United States (Dallas, TX) and Canada (Winnipeg, MB) with services offered worldwide. Contact us today at firstname.lastname@example.org or 1-800-989-6022.