Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

What is the difference between Development Operations and Software Configuration Management?

For me it seems to be the same as long as both DevOps and Software Configuration Management are focused on:

  1. Establishing development infrastructure - being in charge of version control, build management, deployment management, dependencies management, continuous integration and delivery, etc.
  2. Using best practices for organizing developers environment.
  3. Quality Assurance of development processes - gathering metrics of development effectiveness, working on eliminating bottlenecks of development process (running unit-tests, evaluating unit-tests coverage, running inspections, etc)
  4. Infrastructure management - target platforms and its specifics.
  5. Release management - making sure release has been delivered to customer/client in time.

Maybe I'm missing something? This link shows that usage of term 'Software Configuration Management' prevails. But still, what word combination would you rather use to describe listed range of activities: Development Operations or Software Configuration Management?

share|improve this question

3 Answers 3

up vote 13 down vote accepted

The terms describe very similar concepts and responsibilities, and in general they are somewhat synonymous. The term "DevOps" is a relatively new one, popularized by the Devopsdays Ghent 2009 conference and subsequent Devopsdays events. It's best described in this diagram:

enter image description here

On the other hand, Software Configuration Management is a far more established term within the profession, and derives from the non software specific term Configuration Management. Software Configuration Management is often referenced in a software engineering context, a simple definition is given by Roger Pressman in "Software Engineering: A Practitioner's Approach":

is a set of activities designed to control change by identifying the work products that are likely to change, establishing relationships among them, defining mechanisms for managing different versions of these work products, controlling the changes imposed, and auditing and reporting on the changes made.

Although all the terms you reference are vague, DevOps seems to be just a less formal way of describing more or less the same set of principles as Configuration Management, or Software Configuration Management if seen from a software developer's perspective, especially prioritizing tightly coupled teams:

DevOps is a response to the growing awareness that there is a disconnect between what is traditionally considered development activity and what is traditionally considered operations activity. This disconnect often manifests itself as conflict and inefficiency.

In the same article, the similarities with SCM are noted:

Adding to the Wall of Confusion is the all too common mismatch in development and operations tooling. Take a look at the popular tools that developers request and use on a daily basis. Then take a look at the popular tools that systems administrators request and use on a daily basis. With a few notable exceptions, like bug trackers and maybe SCM, it's doubtful you'll see much interest in using each others tools or significant integration between them. Even if there is some overlap in types of tools, often the implementations will be different in each group.

As for the usage of the terms, your comparison doesn't really makes sense:

  1. SCM is a subset of CM, not a competitive term,
  2. DevOps is a fairly new term, no point in comparing against established terms,
  3. DevOps derives from Developer Operations (obviously) but is rarely expanded as such.
share|improve this answer
    
Do you mean SCM as Source Code Management or Software Configuration Management is a subset of CM? –  altern Jan 19 '12 at 12:31
    
@zaphod_beeblebrox: that image is taken from wikipedia article: en.wikipedia.org/wiki/DevOps :) –  altern Jan 19 '12 at 12:32
    
@altern Paragraph under the pretty picture: "On the other hand, Software Configuration Management is a far more established term within the profession, and derives from the non software specific term Configuration Management." :P Also the picture is taken from the blog I've linked to. If the author took it from Wikipedia, I wouldn't know. –  Yannis Rizos Jan 19 '12 at 12:33
    
@zaphod_beeblebrox: I should probably change the title of my question then –  altern Jan 19 '12 at 12:35
    
@altern What do you mean? Software Configuration Management is not just in the title. Also what the heck is "Source Code Management". Do you mean revision control? If yes, revision control is an aspect of Software Configuration Management, so the answer stands as is. But comparing revision control to devops is weird to say the least. –  Yannis Rizos Jan 19 '12 at 12:37

You'd be hard-pushed to find a solid definition for DevOps. It's more of an idea than a job to be done. And it's too new an idea for everyone to agree on exactly what it means. Nonetheless, here's my take.

DevOps is really just a new term for configuration management, but it was chosen to show that the role is not a one-person role, it's a collaboration between the development team and the operations team.

Historically, configuration management would be done solely by the development team and then handed off to operations who would view it all with deep suspicion. Which is fair enough, to be honest. They're responsible for it. They're the first to get called at 4am when it goes wrong. They really should have some involvement in its development.

share|improve this answer

I see DEVOPs is at the operational execution end - deployment automation scripts, environment buildouts, that sort of thing. SCM on the other hand, is about the products integrity and the effective management and traceability of changes to the products. I have always viewed ALM as being a part of SCM - after all, how on earth can you manage changes to a a product if you have no idea of the drivers for the change or who made them? Deployment frameworks could fall either side - and which side will invariably depend on the regulatory needs of the organization you work for - after all - do you want a developer to be able to do a quick hack that means your dialysis machine only works properly 99.99% of the time, or do you need that situation to allow you to hack your website code because your developers have hardcoded IP addresses?

share|improve this answer
2  
this looks more like a rant than an answer to the question asked –  gnat Jun 23 at 6:45
    
Deer Hunter, A Rant, yeah sure, it is, but relevant? 100%. Trust me on this - until the industry grows up and stops the gimmicks, the death marches will not only continue, they will get worse. This is a promise. –  Jack Jun 23 at 8:57

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.