DevOps

In the traditional application development world, Development teams were in charge of gathering business requirements for a software program and writing code. Then a separate Quality Assurance team tested the program in a separate environment. If requirements were met, they released the code for Operations to deploy. Each time a software program is 'thrown over the wall' to an independent team, it adds the potential for a bottleneck in the entire process.

DevOps addresses these challenges by bringing people together with shared responsibility for maintaining the system that runs the software and preparing the software to run on that system with increased quality, feedback and automation. This means that you need to bring together a cross-functional, full-stack team that is able to build, test, and run their product.

devops values

The Three Ways

The DevOps movement at Target is the intersection of the three values so we witness seamless delivery of product.

Collaboration

Collaboration means connecting with the right people and systems to deliver effective solutions that meet the customer's need. Target has invested in tools such as Hipchat to enable seamless and real-time collaboration.

Example: DevOps advocates developers, testers and operations come together in a seamless manner to deliver value to the customer.

Empathy

Empathy is defined as the ability to understand and share the feelings of another. In our context, it involves understanding that each one of us are part of a larger ecosystem of people and technologies and our actions have an impact (positive or negative) on others.

Example: Sanjeev has been working on a piece of code for three weeks in isolation, not checking it into the source code management system. He is leaving for a three week trip and merges the code into production minutes before leaving. The result includes a weekend outage disrupting the lives of three others who must try to correct the outage, including a father missing his son’s big cricket game.

Experiential Learning

Experiential learning recognizes that the best way to learn something is by doing it. This involves overcoming the fear of getting something perfect, the first time, and learning through the process of iteration.

Example: A way for developers to learn about the behavior of a product or service is to spin up an independent, local instance where they can try things out.