What is DevOpsDevOps is a buzz phrase I’ve started to see more and more of in the last year. It is defined (by Wikipedia) as “a software development method that stresses communication, collaboration and integration between software developers and IT professionals. DevOps is a response to the interdependence of software development and IT operations. It aims to help an organization rapidly produce software products and services.”
When I first heard the DevOps phrase, I thought: here’s a marketing department or consultant working overtime to try to position themselves to help IT departments develop software. I honestly was not sure if it served much of a value. But when I read a report from Ovum, it helped make this concept much more meaningful for me, because it really highlights how DevOps is the intersection of the software development group, the QA group and the IT operations groups within a company, all of whom must collaborate to develop, test and deploy applications successfully.
About 15 years ago I worked for a startup company that created a true SaaS product (they called us an Application Service Provider or ASP back then), the first online marketplace for buying and selling electronic parts. We coordinated among software developers, testers and a small group responsible for deploying the application on the web. There were always barriers between the groups, and when something didn’t work, there was a lot of finger pointing going on – with each group blaming the other for whatever problem there was. We certainly could have used the concept of DevOps then.
While it is a relatively new concept, DevOps breaks down the barriers between the different groups responsible for portions of the development and release process. But even 15 years ago Yahoo! was a perfect example of a company using a DevOps approach effectively. The programmers actually carried around a pager and were responsible for the behavior and deployment of their applications on the Internet and the Yahoo! servers. Although there might be IT support people doing networking and server maintenance, the development team’s work was not done when the application was launched. It was much more effective than having this artificial barrier between different departments.
Taking it one step further, most development teams include QA as part of the development group to eliminate any kind of barrier, which also ties the operations group much more closely to the entire process. Applying the DevOps concept, much more attention is paid to the release process, to the deployment process and to the proper integration of the various software modules that are under development by the various programmers. This sophisticated level of integration and continuous deployment lead to a much more fluid process from start to finish.
DevOps may have begun as just a buzz phrase, but it is a concept that can streamline software development, improve the quality of each release and reduce costs while creating better cohesion among team members. It is a concept we and our offshore partners embrace. What do you think? Is this just a marketing term, or can it really help develop quality software?