<p>The activities on the development and implementation of software previously did not require deep integration between the departments. But for today it is necessary to closely cooperate all departments (Development, IT Operations, Quality Assurance, etc.).</p>

<p>For developers, change is what they get paid for. Business always needs changes to match the modern world. This understanding pushes developers to produce the maximum possible number of changes. IT professionals have a different understanding, in which change is harm. Each of them thinks that it works correctly, benefiting the business. Indeed, if we consider them separately, they are both right.</p>

<p>All employees must understand that they are part of a single process. DevOps cultivates thinking, which makes it possible to realize that the personal decisions and actions of everyone should be directed towards the realization of a single goal. And success should be measured relative to the entire development-to-delivery cycle, and not from the success of individual roles.
As a result of close cooperation between developers and maintenance specialists, a new generation of engineers is formed, which take the best achievements of both disciplines and combine them for the benefit of the user. This is manifested in the appearance of cross-functional teams with experience in development, configuration management, database management, testing and infrastructure management.</p>

<p>So the methodology is useful not only in SaaS.</p>

CC BY-SA 3.0
2017-08-22T18:51:47.390Z
2017-08-22T19:07:28.400Z
2017-08-22T19:07:28.400Z
Quarind
<p>I've worked for companies producing software as shrink-wrap products, as fully installed and supported deployments and as embedded code in devices.  In all of those companies, DevOps provides essential support for development:</p>

<ul>
<li>Automated, reproducible builds of software, with known, controlled configurations of compilers, libraries and other build tools.</li>
<li>Automated, repeatable system tests for regression testing and for new functionality tests.</li>
<li>Other automated and regular actions (for example, continuously updated sample screen shots available in all supported languages, for translators to verify and for technical authors to incorporate into user manuals).</li>
</ul>

<p>In all cases, these are things that individual developers <em>could</em> do as one-offs, but that would not be good use of developer time, nor have the same assurance of configuration control that the automated builds have.</p>

CC BY-SA 3.0
2017-03-07T15:59:36.970Z
Automation is not devops. Same comments as David Bock's answer below  finally (sorry, my comment was lost at time I downvoted, just noticed it)
Tensibai
CC BY-SA 3.0
2017-03-02T10:52:27.420Z
2017-03-02T10:52:27.420Z
Toby Speight
<p>My team and I are responsible for developing "one-offs", products that once finished are given to the client for upkeep or in some cases managed by us for a fee. </p>

<p>We still need to maintain a solid development pipeline to handle the constant feedback from our clients in order to ensure that we ship them something reliable and proven to run. </p>

<p>While the client doesn't care about DevOps (in most cases), it is still helpful for us. With DevOps, we can rapidly push new builds, so clients can see feedback in minutes not hours, and we are also able to catch any errors/bugs with our testing via Jenkins/Travis. </p>

<p>To ensure our deployment strategies are the same across projects, we focus on containerizing our applications. Using Docker, we are able to easily hand off the application to our clients.</p>

<p>The cost saved by DevOps is hard to determine. We do have extra costs in the form of software we choose to use for the pipeline (Travis, Jenkins, Puppet, what have you), but we also save time and money by fixing bugs/ giving the clients feedback quickly. Our quick response time keeps our customers happy, in turn, keeping our wallets happy.</p>

CC BY-SA 3.0
2017-03-01T04:01:33.543Z
Can you provide some reasons and benefits of why this is important? Do clients actually care about your pipeline, or just the finished project at the promised date and the price they need to pay? Could you cut costs by not doing all these "devops-y" things? Could you get more hours into a project byt not doing these things and get more money for the projects (since it is longer)?
Evgeny Zislis
CC BY-SA 3.0
2017-03-01T05:47:40.897Z
@Evgeny DevOps helps finished the project on time and on budget for reasons explained in my answer. By cutting on DevOps, you would also cut on the benefits I explained. Building and testing often help staying in budget and on time. Finding a bug later cost more money and takes more time to fix, it has been proved over and over. The client doesn't care about the pipeline, but the longer you wait for his feedback, the more costly and time-consuming the rewrite will be.
Alexandre
CC BY-SA 3.0
2017-03-01T05:55:29.177Z
Isn't it just Agile Software Dev?
Evgeny Zislis
CC BY-SA 3.0
2017-03-01T14:51:22.037Z
@Evgeny I have updated my answer to clarify. We do use Agile, but that doesn't mean we can't have a DevOps mentality..
Turtle
CC BY-SA 3.0
2017-03-01T17:25:00.810Z
@Evgeny you could probably save some by not upkeeping your unit tests and acceptance tests, but this builds up Technical Debt which is a DevOps anti-pattern. You might get away with it for a few weeks or months, but you'll soon end up (probably) with a difficult to maintain mess which is impossible to test.
Steve Button
CC BY-SA 3.0
2017-03-01T03:50:15.837Z
2017-03-01T14:50:36.587Z
2017-03-01T14:50:36.587Z
Turtle
<p>Not at all.  While there are already great examples on this thread, I'd like to share an anecdote of my own.  In 2001 I inherited a software project with a release that involved the creation of a CD.  The documentation for the release process included 40(!) steps documented by a previous engineer, that included some ridiculous hand-written instructions like "open this config file and change the name of the .jar file on line 41 to include the version number of the new release".</p>

<p>We aggressively automated every step of that build process, replacing hand written instructions like that with things like 'patch' scripted with bash.  We even had to open tickets with our third party install-tool vendor to make their project files patchable.</p>

<p>Once that process was automated, we bought a 'CD Jukebox'.  Every night after the tests would pass, the build machine would automatically create a new install CD.  Our testers could come in the next morning, grab a disk, and make sure everything was installable.</p>

<p>We certainly have tighter feedback loops when we can deploy software as a service, but the core principals of automation, feedback, cycle time, small releases, etc. all apply.</p>

CC BY-SA 3.0
2017-03-08T19:32:55.243Z
I'm gonna try one more time to clarify - by having the CD cut so consistently and quickly, we could get feedback from QA much more quickly than we could have before.  This reduced a silo.  It didn't eliminate it, as it took another year or two before we disabled the fiefdoms around centralized budgets for activities, but it certainly was a critical step in makig that happen.  We also knew much sooner when the release process was broken.  I credit many little things like this as my personal path to DevOps.
David Bock
CC BY-SA 3.0
2017-03-08T19:54:27.137Z
This last comment bring more sense to this answer under this question, you should [edit] to include it , I still feel this doesn't fit this format, but it seems my position is wrong when I observe the overall evolution in this private beta, so... that's up to you. I can't remove my downvote without an edit for information
Tensibai
CC BY-SA 3.0
2017-03-02T19:23:01.583Z
This is automation related, but not related to a devops organization in any way, I see no reference about plury discipline team anywhere, just ops automating things they inherit
Tensibai
CC BY-SA 3.0
2017-03-03T15:37:43.677Z
This was 2001... long before DevOps was a thing.  This was not just automation, I believe this streamlined the management of the project in exactly the same way that eventually became labelled the 'Culture' of DevOps.  As such, it is an example of DevOps attitude outside of a SaaS organization.
David Bock
CC BY-SA 3.0
2017-03-03T15:45:19.900Z
DevOps is not about automation, nor project management. It's about breaking silo based organization at root. I'm sorry I don't feel this answer really relate to the Question (this doesn't mean its uninteresting, but just not at the right place IMO, and I don't see where it could be in place actually, may come later)
Tensibai
CC BY-SA 3.0
2017-03-02T18:20:02.307Z
2017-03-02T18:20:02.307Z
David Bock
<p>Absolutely not!</p>

<p>DevOps is all about breaking down the traditional silos (departments) in order to be more efficient.</p>

<p>Better communication between teams, improved visibility and reliable and automated process are ways to achieve a better product.</p>

<p>I used to work for a big media company where we would support an internal tool and develop public-facing websites. </p>

<p>The benefits of DevOps in our case were the following:</p>

<ul>
<li>Through continuous building, we let know the development team earlier rather than later if there are integration or build problems with their code. They can fix issues while their mind is still on the piece of code they just committed.</li>
<li>Through continuous testing and delivery (into QA), we enabled the QA team to find problems earlier and report them earlier. This reduced the time it took to find and correct bugs as well as reduce the complexity of these investigation.</li>
<li>With out log collection &amp; aggregation tools, we gave to the developers access to something they wouldn't usually look at (they were very keen on the debuggers :) - understanding how logs are seen and used by other teams improved the overall quality of logs</li>
<li>We often shared information and created documentation to share knowledge between teams, trying to break down walls. By understanding the Ops' needs, we create a few guides for what should always be kept in mind when bootstrapping an application (where/how to manage properties, etc.). By understanding the Dev's reality (code more features, faster, gogogogo!) we were able to have the ops create servers and clusters that were better suited to the dev's needs.</li>
<li>The overall quality of deployments was greatly improved too. Deployments were handled by our team, so we had perfect visibility on both Ops and Dev. This eliminated many issues related to the "code hand-off" where the dev would hand over a package and one-page document to the ops saying "Install this!".</li>
</ul>

<p>Overall, I would say that regardless if you are updating your production environment once per day or once per month and regardless of how many customers you have or your business model, every enterprise can use better communication, better tools, better visibility, faster feedback, etc.</p>

CC BY-SA 3.0
2017-03-01T04:59:42.427Z
Indeed, DevOps can be applied to virtually any sw development organisation, even to large embeeded products with just a handful of public releases per year - by using continuous delivery *inside* their development pipeline they can still reap some DevOps benefits: better quality, cost reduction, release predictability, etc.
Dan Cornilescu
CC BY-SA 3.0
2017-03-01T05:18:41.983Z
The answer does remind a SaaS, doesn't really explain well how a non-SaaS product or service can benefit from these practices.
Evgeny Zislis
CC BY-SA 3.0
2017-03-01T05:23:23.233Z
The products I was working on weren't SaaS (quite the opposite). But the rationale stays the same, it doesn't matter much if you are SaaS or not, DevOps try to improve the product in non-traditional ways. I could know nothing of our pricing model or offering, it would not make that much of a difference.
Alexandre
CC BY-SA 3.0
2017-03-01T04:39:36.673Z
2017-03-01T05:12:06.003Z
2017-03-01T05:12:06.003Z
Alexandre
<p>The practices describing DevOps, such as continuous delivery, automation, etc. are relevant to products that provide continuous service, such as SaaS products.</p>

<p>For example, a software development company that mostly does projects for other clients might never be maintained these after the project is over. And client projects are not shared with other clients, because irrelevant.</p>

<p>Does DevOps even apply to companies who develop multiple projects that are one-offs? What DevOps practices apply in this case, if at all?</p>

<terminology>
Is DevOps restricted to companies with SaaS products?
Evgeny Zislis
# Is DevOps restricted to companies with SaaS products?

(Asked by: username_0 on 2017-03-01)

The practices describing DevOps, such as continuous delivery, automation, etc. are relevant to products that provide continuous service, such as SaaS products.

For example, a software development company that mostly does projects for other clients might never be maintained these after the project is over. And client projects are not shared with other clients, because irrelevant.

Does DevOps even apply to companies who develop multiple projects that are one-offs? What DevOps practices apply in this case, if at all?

**Tags:** terminology


---

## 5 answers

### Answer by username_5 on 2017-03-01. Score: 32 | Accepted answer

Absolutely not!

DevOps is all about breaking down the traditional silos (departments) in order to be more efficient.

Better communication between teams, improved visibility and reliable and automated process are ways to achieve a better product.

I used to work for a big media company where we would support an internal tool and develop public-facing websites.

The benefits of DevOps in our case were the following:

* Through continuous building, we let know the development team earlier rather than later if there are integration or build problems with their code. They can fix issues while their mind is still on the piece of code they just committed.
* Through continuous testing and delivery (into QA), we enabled the QA team to find problems earlier and report them earlier. This reduced the time it took to find and correct bugs as well as reduce the complexity of these investigation.
* With out log collection & aggregation tools, we gave to the developers access to something they wouldn't usually look at (they were very keen on the debuggers :) - understanding how logs are seen and used by other teams improved the overall quality of logs
* We often shared information and created documentation to share knowledge between teams, trying to break down walls. By understanding the Ops' needs, we create a few guides for what should always be kept in mind when bootstrapping an application (where/how to manage properties, etc.). By understanding the Dev's reality (code more features, faster, gogogogo!) we were able to have the ops create servers and clusters that were better suited to the dev's needs.
* The overall quality of deployments was greatly improved too. Deployments were handled by our team, so we had perfect visibility on both Ops and Dev. This eliminated many issues related to the "code hand-off" where the dev would hand over a package and one-page document to the ops saying "Install this!".

Overall, I would say that regardless if you are updating your production environment once per day or once per month and regardless of how many customers you have or your business model, every enterprise can use better communication, better tools, better visibility, faster feedback, etc.

> **Comments:**
> **username_8**: Indeed, DevOps can be applied to virtually any sw development organisation, even to large embeeded products with just a handful of public releases per year - by using continuous delivery *inside* their development pipeline they can still reap some DevOps benefits: better quality, cost reduction, release predictability, etc.  
> **username_0**: The answer does remind a SaaS, doesn't really explain well how a non-SaaS product or service can benefit from these practices.  
> **username_5**: The products I was working on weren't SaaS (quite the opposite). But the rationale stays the same, it doesn't matter much if you are SaaS or not, DevOps try to improve the product in non-traditional ways. I could know nothing of our pricing model or offering, it would not make that much of a difference.  

---

### Answer by username_4 on 2017-03-01. Score: 13

My team and I are responsible for developing "one-offs", products that once finished are given to the client for upkeep or in some cases managed by us for a fee.

We still need to maintain a solid development pipeline to handle the constant feedback from our clients in order to ensure that we ship them something reliable and proven to run.

While the client doesn't care about DevOps (in most cases), it is still helpful for us. With DevOps, we can rapidly push new builds, so clients can see feedback in minutes not hours, and we are also able to catch any errors/bugs with our testing via Jenkins/Travis.

To ensure our deployment strategies are the same across projects, we focus on containerizing our applications. Using Docker, we are able to easily hand off the application to our clients.

The cost saved by DevOps is hard to determine. We do have extra costs in the form of software we choose to use for the pipeline (Travis, Jenkins, Puppet, what have you), but we also save time and money by fixing bugs/ giving the clients feedback quickly. Our quick response time keeps our customers happy, in turn, keeping our wallets happy.

> **Comments:**
> **username_0**: Can you provide some reasons and benefits of why this is important? Do clients actually care about your pipeline, or just the finished project at the promised date and the price they need to pay? Could you cut costs by not doing all these "devops-y" things? Could you get more hours into a project byt not doing these things and get more money for the projects (since it is longer)?  
> **username_5**: @Evgeny DevOps helps finished the project on time and on budget for reasons explained in my answer. By cutting on DevOps, you would also cut on the benefits I explained. Building and testing often help staying in budget and on time. Finding a bug later cost more money and takes more time to fix, it has been proved over and over. The client doesn't care about the pipeline, but the longer you wait for his feedback, the more costly and time-consuming the rewrite will be.  
> **username_0**: Isn't it just Agile Software Dev?  
> **username_4**: @Evgeny I have updated my answer to clarify. We do use Agile, but that doesn't mean we can't have a DevOps mentality..  
> **username_6**: @Evgeny you could probably save some by not upkeeping your unit tests and acceptance tests, but this builds up Technical Debt which is a DevOps anti-pattern. You might get away with it for a few weeks or months, but you'll soon end up (probably) with a difficult to maintain mess which is impossible to test.  

---

### Answer by username_1 on 2017-08-22. Score: 3

The activities on the development and implementation of software previously did not require deep integration between the departments. But for today it is necessary to closely cooperate all departments (Development, IT Operations, Quality Assurance, etc.).

For developers, change is what they get paid for. Business always needs changes to match the modern world. This understanding pushes developers to produce the maximum possible number of changes. IT professionals have a different understanding, in which change is harm. Each of them thinks that it works correctly, benefiting the business. Indeed, if we consider them separately, they are both right.

All employees must understand that they are part of a single process. DevOps cultivates thinking, which makes it possible to realize that the personal decisions and actions of everyone should be directed towards the realization of a single goal. And success should be measured relative to the entire development-to-delivery cycle, and not from the success of individual roles.
As a result of close cooperation between developers and maintenance specialists, a new generation of engineers is formed, which take the best achievements of both disciplines and combine them for the benefit of the user. This is manifested in the appearance of cross-functional teams with experience in development, configuration management, database management, testing and infrastructure management.

So the methodology is useful not only in SaaS.


---

### Answer by username_2 on 2017-03-02. Score: 3

I've worked for companies producing software as shrink-wrap products, as fully installed and supported deployments and as embedded code in devices. In all of those companies, DevOps provides essential support for development:

* Automated, reproducible builds of software, with known, controlled configurations of compilers, libraries and other build tools.
* Automated, repeatable system tests for regression testing and for new functionality tests.
* Other automated and regular actions (for example, continuously updated sample screen shots available in all supported languages, for translators to verify and for technical authors to incorporate into user manuals).

In all cases, these are things that individual developers *could* do as one-offs, but that would not be good use of developer time, nor have the same assurance of configuration control that the automated builds have.

> **Comments:**
> **username_3**: Automation is not devops. Same comments as username_7's answer below  finally (sorry, my comment was lost at time I downvoted, just noticed it)  

---

### Answer by username_7 on 2017-03-02. Score: 0

Not at all. While there are already great examples on this thread, I'd like to share an anecdote of my own. In 2001 I inherited a software project with a release that involved the creation of a CD. The documentation for the release process included 40(!) steps documented by a previous engineer, that included some ridiculous hand-written instructions like "open this config file and change the name of the .jar file on line 41 to include the version number of the new release".

We aggressively automated every step of that build process, replacing hand written instructions like that with things like 'patch' scripted with bash. We even had to open tickets with our third party install-tool vendor to make their project files patchable.

Once that process was automated, we bought a 'CD Jukebox'. Every night after the tests would pass, the build machine would automatically create a new install CD. Our testers could come in the next morning, grab a disk, and make sure everything was installable.

We certainly have tighter feedback loops when we can deploy software as a service, but the core principals of automation, feedback, cycle time, small releases, etc. all apply.

> **Comments:**
> **username_3**: This is automation related, but not related to a devops organization in any way, I see no reference about plury discipline team anywhere, just ops automating things they inherit  
> **username_7**: This was 2001... long before DevOps was a thing.  This was not just automation, I believe this streamlined the management of the project in exactly the same way that eventually became labelled the 'Culture' of DevOps.  As such, it is an example of DevOps attitude outside of a SaaS organization.  
> **username_3**: DevOps is not about automation, nor project management. It's about breaking silo based organization at root. I'm sorry I don't feel this answer really relate to the Question (this doesn't mean its uninteresting, but just not at the right place IMO, and I don't see where it could be in place actually, may come later)  
> **username_7**: I'm gonna try one more time to clarify - by having the CD cut so consistently and quickly, we could get feedback from QA much more quickly than we could have before.  This reduced a silo.  It didn't eliminate it, as it took another year or two before we disabled the fiefdoms around centralized budgets for activities, but it certainly was a critical step in makig that happen.  We also knew much sooner when the release process was broken.  I credit many little things like this as my personal path to DevOps.  
> **username_3**: This last comment bring more sense to this answer under this question, you should [edit] to include it , I still feel this doesn't fit this format, but it seems my position is wrong when I observe the overall evolution in this private beta, so... that's up to you. I can't remove my downvote without an edit for information  

---

