After watching this video, you will be able to recognize the benefits of working DevOps,
describe how Taylorism is not beneficial for software development, and
recognize that software development is more like craftwork than factory work.
In order to change your culture, you must
change the way that people work.
Working DevOps is all about facilitating a culture of teaming and collaboration.
This is right from the Agile Manifesto.
We value individuals and interactions over process and tools.
Establishing Agile development as a shared discipline is at the core of building a strong
DevOps culture.
You also want to automate relentlessly to enable rapid DevOps responses.
Sometimes automation is all people think about when they think about DevOps.
DevOps is not just about automation but in order to respond rapidly, you must automate.
Building a culture in which doing tasks manually is frowned upon, and automating task is rewarded
is the culture you want to have.
Pushing smaller releases faster, so that you can measure and remediate impact, is also
extremely important.
We want fast feedback loops and one way to achieve that is with frequent, smaller releases.
This minimizes risk and maximizes learning.
The problem we are up against here is that we have been working the same way since the industrial
revolution.
This is known as Taylorism.
Taylorism is named after a U.S. industrial engineer, Frederick Winslow Taylor.
In his 1911 book, Principles of Scientific Management, Taylor laid down the fundamental
principles of large-scale manufacturing through assembly-line factories.
During the industrial revolution, Taylor established the adoption of command-and-control management,
which has become the dominant method of management in the Western world.
He also prescribed that organizations be divided into independent functional silos.
Taylor watched how workers executed their jobs and realized that if workers were separated
into task-specific roles they could gain greater efficiency.
This assembly line concept grew from this.
For example, workers would just put on the doors of the cars and the next worker would
just put on the windows and so on down the line.
This was faster than one worker tooling up to put on a door, then retooling to put on
a window and then tooling up for each stage of the assembly.
One of the impacts of Taylorism that we see in business today is this idea of decision-making
separated from work.
In other words, managers do all the planning and decide what the worker should do, then the
workers mindlessly do the tasks.
They are told what to do.
Many projects are still managed this way today.
You can see the impact of Taylorism on information technology today.
We have project management that is at the top of the command-and-control food chain.
Project managers give the directions, architects design the systems, and handoff to the developers
to code.
Developers hand off to testers.
Testers hand off to operations.
Operations hands off to security.
Each performs a task-specific role in their own silo with each handoff being an opportunity
to make mistakes, lose context, or cause bottlenecks.
Optimized roles may work well for making cars on an assembly line.
It does not work well for software development.
Automobiles are made up of standard parts.
In software development, most of the parts don't even exist yet.
If they did, we would buy them off the shelf.
The fact that we have to write the code ourselves illustrates that this is bespoke, that is, customized
or specialized.
Software development is considered "knowledge work.”
It is also "craftwork" when you think about it.
It is creating a one-of-a-kind application that doesn't exist yet.
When making automobiles, you tool up to make hundreds of thousands of them.
That makes the rigor of tooling worthwhile.
In software development, you are making one application.
Why would you tool up an entire assembly line to make one of something?
It doesn't make sense to treat software development like a factory assembly line.
Steve Jobs once said, "It doesn't make sense to hire smart people and then tell them what to
do; we hire smart people so they can tell us what to do."
Managers need to be able to trust that they have hired the right people, let them know
what needs to be done, and then get out of their way and let people amaze them.
To fully work DevOps, you must abandon command and control management.
Abandon Taylorism!
To be DevOps, teams must stop working in silos and work together with a common goal.
All of the hand-offs that silos cause will only slow them down.
In this video, you learned that working DevOps means pushing small releases faster in order
to gain feedback, minimize risk, and maximize learning.
Taylorism was designed for factory work, while software development is like craftwork.
Handoffs created by working in silos results in mistakes, bottlenecks, and delays.