I believe the concept of DevOps is the single person handling all the activities of a given requirement.

1) Understanding the requirement/problem

2) Come up with logic to solve the problem

3) Write code for the logic

4) Test the developed feature

5) Deploy it

6) Maintain it

Does this mean "Division of Labour" is not at all in the picture of DevOps?

  • 1
    this "division of labour" doesn't make sense in any form of agile. – Euphoric Apr 22 '18 at 18:42
  • can you pls elaborate? for eg, in agile to deliver a login feature in a sprint.. one can do sql work, one can do backend work, one can do frontend work.. isn't it called division of labour? – karthikeayan Apr 22 '18 at 20:07
  • That is implementation division. Slightly different. There is also question of "implied" division or "required" division. – Euphoric Apr 22 '18 at 20:32
  • In traditional Agile, DevOps is responsible for step 5 and shares responsibility with the Agile team for step 6. Step 4 is QA and backwards from there. – RandomUs1r May 22 '18 at 19:04
  • 2
    DevOps isn't a job title. It is a methodology. Read en.wikipedia.org/wiki/DevOps, or any of a number of other definitions of DevOps on the Internet. – Robert Harvey May 22 '18 at 19:27

The idea where developer is responsible for whole development lifecycle, from requirement analysis, design, development, testing, deployment and monitoring is as old as software itself. It is core idea behind eXtreme Programming.

Sadly, XP didn't catch on. And every other practice either didn't talk about this, or took inspiration from civil engineering, where such practice is commonplace. But people still believe that developers should be responsible for whole lifecycle, but they cannot just re-use old, and ignored, framework like XP. So people just come up with new name for old thing. And that is DevOps.

| improve this answer | |
  • 2
    XP has nothing to do with DevOps. XP is for developers, a DevOps in Agile is a person who is the bridge between the developers and infrastructure, but IS NOT a full time developer on an Agile team. – RandomUs1r May 22 '18 at 19:03
  • 1
    @RandomUs1r DevOps is not a person. DevOps is not a role. – RubberDuck Jun 23 '18 at 14:16

You have a fundamental misunderstanding of what DevOps is. DevOps is a methodology that is intended to simplify the process of getting changes in front of users, heavily leveraging automation.

The basic workflow is a cycle that looks like this:

  1. Code — code development and review, source code management tools, code merging
  2. Build — continuous integration tools, build status
  3. Test — continuous testing tools that provide feedback on business risks
  4. Package — artifact repository, application pre-deployment staging
  5. Release — change management, release approvals, release automation
  6. Configure — infrastructure configuration and management, Infrastructure as Code tools
  7. Monitor — applications performance monitoring, end–user experience

When someone is hired as a "DevOps" engineer, they are typically tasked with:

  • Setting up and managing the build infrastructure and deployment infrastructure (i.e. Salt stack etc.)
  • Writing scripts to automate processes
  • Monitoring operations

Your developers are still writing software, unit tests, etc. You may have test specialists writing your BDD scripts. That part doesn't change. What does change is that your developers and testers can focus more on what they are good at, and allow the DevOps staff (really operations) handle the deployments.

| improve this answer | |
  • DevOps is a loaded term right now. Many companies were already doing Continuous Delivery and Continuous Integration, with proper monitoring and accountability in the past, with nice integrated teams between development and operations, but for some reason the term is getting traction now. The downside is that I'm seeing all sorts of different interpretations about what DevOps means, specially with executives who really don't understand technology. – Machado Jun 22 '18 at 20:44
  • This was a great answer until you asserted that DevOps is a role on the team. It’s not. It’s something the team does. The team may include an operations expert, but that’s different from saddling a single team member (or, sigh, an entire team) with all the Ops work. – RubberDuck Jun 23 '18 at 14:22
  • @RubberDuck, It's not an assertion, it's an observation. Of course the devs and testers are involved in all of that, but some companies call the role I described a DevOps engineer. I think that's where the confusion comes from. – Berin Loritsch Jun 23 '18 at 16:25
  • There may be merit in arguing that DevOps should not be a role or a job title, but having spent a year as a DevOps Engineer embedded in development teams, I can attest that it is a real thing. My job was to guide development teams in design and deployment decisions. – Dan Wilson Jun 24 '18 at 15:33

That is an unusual definition of 'DevOps'

I would define DevOps as the practice of automating the provisioning of servers and other infrastructure, and the deployment of software.

Classically an organisation would have an Operations Department who's job it would be to manage the running of systems. These were the people you would call when things were down or running slow etc. But also they would be buying servers, managing the network and installing software the company had purchased.

Then you would have a Development Department who job it would be to write new software. When that software was finished it would (in theory) be handed over to 'Ops' to deploy and manage with full documentation, list of error ode and settings etc etc.

In practice the Developers would probably manually install the software the first time around. Tweaking and testing as required, then run away without giving anyone any documentation.

The separation of these two concerns can cause trouble as the Ops team don't know how to fix the software if it breaks and the Dev team (if they have a decent union) aren't on call. and in any case often the root cause will be infrastructure once the software has been illuminated from the investigation.

With the automation of infrastructure deployment and configuration Developers are able to automate much of the manual tasks which would have been required in the past. ie buying servers and plugging them in, setting up network routing and the like. thus 'DevOps'.

The hard bits of actually running datacenters can be outsourced to specialist teams and the fixing live issues is reduced to two buttons: 'scale it up' or 'roll it back'

| improve this answer | |
  • In practice the Developers would probably .. then run away without giving anyone any documentation. As a developer, I take offense at this statement. – Euphoric Apr 22 '18 at 18:43
  • 3
    No, traditionally its Operations work. – Ewan Apr 22 '18 at 18:57
  • 1
    you dont call microsoft devs when your sql server is slow. you read the docs and add indexes – Ewan Apr 22 '18 at 18:58
  • 1
    I don't care about "tradition" thats load of bull. And we are talking about dev documentation, not user documentation. Two different things. – Euphoric Apr 22 '18 at 19:01
  • 1
    in the classical organisation there is no devops. there is dev and ops. sure they can come and ask. if they are lucky maybe you'll still be in the same dev team and remember the product. maybe it will even be in work hours! Maybe you won't have been promoted to management, Maybe you'll be happy to stop programming the new features and go support that legacy product for the rest of your career? – Ewan Apr 22 '18 at 19:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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