TaskTop, a company specializing in DevOps software, has just been listed on a site hailing high-achieving companies in BC. What is DevOps though, and how can it help CIOs?
Vancouver-based TaskTop was listed on Ready to Rocket, which is a list of technology companies with high revenue potential on the west coast. The company sells software designed to help bring developers and operations staff together.
DevOps stands for Development and Operations, and it’s about connecting those two groups of people in a company, said Dave West, chief product officer for TaskTop. They have to work together, because once software developers release an application, the operations staff have to run it. The problem is that they have different incentives.
“DevOps is all about connecting the people with a clear mandate to deliver new stuff faster, with the operations people whose mandate is the exact opposite,” he said. “Change is bad when you’re measured on availability and uptime.”
When those two groups don’t work well together, the result is slow, cumbersome software development, because developers are discouraged from rocking the boat with new product features. Yet many companies these days want their software to be updated more quickly.
Software as a Service (SaaS) companies are one such group. DevOps came out of the SaaS community, and has become more popular over the last five years, West said. These companies don’t update the software every six months, or every month. Often, they’re not even updating on a weekly basis. Instead, think daily, or even by the hour.
This is one way in which SaaS vendors are eating on-premise software vendors’ lunch, and they typically use DevOps to help do it.
DevOps focuses on automation. As much is possible is automated, from development through to production deployment. Everything from source code management, through to regression testing, and configuration management is automated using scripts that impose standard ways of working and minimize human error. Monitoring of software performance in the field is also automated, so that if something does go wrong, operations staff and developers can hear about it instantly, and then the developers can fix it.
The new generation of DevOps-driven software forms often follow a process called agile software development.
Traditionally, software developers worked under the ‘waterfall’ methodology. They would speak to customers at the start of the project, and compile a long list of requirements. Then, they would go away for six months and develop it, going through a series of phases. When each phase is complete, there is no going back, meaning that there is very little room for error.
During the whole process, the development team may easily lose touch with the users, whose requirements had usually changed by that point anyway. The result? Software with features that were out of date or no longer wanted.
“It’s hard to do DevOps in the traditional waterfall model, because the batch sizes are too big,” said West.
Instead, agile software development focuses on short development cycles, where development teams work on bite -sized chunks of functionality. These are delivered to users, who feedback quickly, and inform the next development cycle.
“It tends to be agile first, and by that I mean development agility. That tends to drive us into DevOps,” West added. Without DevOps, agile developers find themselves pushing rocks uphill as they try to get their software out.
There are potential challenges to implementing DevOps, though. One of them is the software architecture itself. DevOps works best on software that has been divided into small chunks, each providing a small service that makes up a large application. So, if the search engine in your application is taking too long to return results, your development team can update that piece of software without affecting anything else.
For many, that kind of component-based software architecture is the holy grail of software development. Many companies are saddled with monolithic code structures, though, in which huge chunks of source code, intricately woven together, handle all of the functionality within an application. For DevOps to really work, that code must be dismantled and rebuilt in a new, more modular architecture over time.
DevOps can work for your organisation, then. Indeed, it may get it ‘ready to rocket’. But it takes a lot of cultural and technical preparation to get yourself ready for a transformation of that magnitude.