I have no strong opinions about the word "devops", however I think there is a role needed that doesn't get met by developers, QA, or IT. The problem is that some things don't fall squarely in anyone's lap, so everyone can play the "not my problem" game and nothing gets fixed. As a developer i've had to fix so many problems that aren't "my job" and are next to impossible to get time for. They add up to the point where it's darn near a full-time job. I'd love to hear anyone's recommendations on what job title that would be, or just how to handle this stuff better.
Some examples:
- Our software builds were completely manual. Everytime we wanted to ship a new version, someone would go and manually build the software, package it up by hand, and give it to QA. This led to all sorts of problems, and encouraged everyone to play the 'ping-pong game' between development and QA. I had to setup a Jenkins server and rework all of our builds. This was not that easy, because when you automate something, you lift the rug up and expose all the problems that have been swept under the rug for years.
- IT had created VM images for QA to use, with all the software dependencies pre-installed. That was screwed up because it didn't reflect how the customer installs on new machine. Plus they never updated their VM images because it's a PITA, and devs would never tell anyone when they added a new dependency. I had to turn all our stuff into RPM's that required the correct packages instead and teach everyone to update the spec file when they added new dependencies.
- Same story as above, but in regards to development machines. I had to create provision scripts and teach everyone to update those.