DevOps is a cultural change. We review the current technology and social trends that are driving companies towards DevOPs, what companies can do to jump in the DevOPs train before it departs and finally we provide a framework to start a DevOPs project.
Yes, DevOps is really hard. You will get bruised, you may get frustrated, you may get other people frustrated and maybe bleed. However it is not Die Hard.
[Speaker please review the slide deck bellow]
Latest DevOps 2014 Study demonstrates. Explain some of the number on the deck.
Encourage the audience to review the study
http://www.slideshare.net/realgenekim/2014-state-of-devops-findings-velocity-conference
Picture from Twentieth Century Fox Film Corporation
http://www.therockatbc.com/2013/12/12/my-favorite-christmas-movie-die-hard/
Today we are going to review 2 main areas:
Why are things changing? What is causing this trend to continue?
What can you do to get hold of the changes and help your company, your partners and customers to jump into the DevOps train before it gest too far.
How to setup and start a DevOps pilot project. Using the template laid out by Adam Jacob on his presentation “DevOps is like Kungfu”
Before we start with the Changes lets look at a definition for DevOps.
Repeat Definition.
DevOps is not
DevOps is a Cultural Change, that is the reason why it is so hard.
Devops is redefining the way we are doing business. Devops is like Kungfu. It has multiple styles and different specializations.
However, the areas in common are the principles and Forms, then the application of those principles and forms are particular to every person or company. I highly recommend you see Adam Jacob’s presentation @ Youtube.com and you can download the presentation from github.com
Lets get started.
24x7 Access to information has increased customers intelligence.
Customers used expect only what the vendors have led him to expect. However, now customers have a greater ability to compare products between vendors
It is up to the business to try to anticipate the needs customers needs, innovate and exceed their expectations
In addition, Big Data and the Internet of things markets are raising. The appeal is the promise of delivering better ways to monitor, analyze and provide key information to make more accurate and informed business decisions.
Pictures:
http://www.hardwaremx.com/wp-content/uploads/2014/08/Internet-of-Things.png
http://siliconwadi.fr/files/2014/06/big_data.jpg
Cloud Computing, either public, hybrid or private is and will continue driving change in organizations.
Cloud computing technology enables access to high end and high number of computing resources, plus a number of services like networks, storage, and databases
Cloud Enables higher Return on Investment, by providing turn key solutions to compute, storage and services.
Enables faster Time to Market -> Faster deployment Cycles
Because of lower costs, and faster deployment cycles, it enables faster iterations and Fail-fast scenarios
Business that are able to leverage cloud technologies will have a competitive advantage over other businesses.
From a Software perspective:
Open Source Technologies has enabled free access to software, from operative systems, programming languages and applications to startups and enterprises
Open Source created an open space for creativity, the development of communities that have build upon each other to create very advanced and innovative options.
From Best Practices view:
Best Practices and tools are becoming commodity and are freely available to everybody to adopt.
Software development methodologies like SCRUM, Lean and Agile.
This picture shows how continuous delivery works.
From Wikipedia:
Continuous delivery: is a software engineering approach in which teams keep producing valuable software in short cycles and ensure that the software can be reliably released at any time.[1] It is used in software development to automate and improve the process of software delivery. Techniques such as automated testing and continuous integration (CI) allow software to be developed to a high standard and easily packaged and deployed to test environments, resulting in the ability to rapidly, reliably and repeatedly push out enhancements and bug fixes to customers at low risk and with minimal manual overhead. CD builds on CI by adding the regular deployments to production as part of the process, however CD is not a requirement of CI. The technique (CD) was one of the assumptions of extreme programming but at an enterprise level has developed into a discipline of its own, with job descriptions for roles such as "buildmaster" calling for CD skills as mandatory.
After we have reviewed the main changes, you my feel like this. Yes, times are changing and they are doing it fast!
Now that we have seen the most impactful change agents of today, we can look about what strategies we can use to bring DevOps to our lives, business and services that we provide. Change management has been an area of study on universities and has been applied on multiple industries and verticals. The strategies that I am going to share with you today have been field tested and will help you to understand the options you have and and fast track your way to developing better DevOps strategies for your business
Picture
http://www.publicdomainpictures.net/view-image.php?image=74586&picture=chess-pieces&large=1
We know that change is difficult and that dépend on the type and size of the organisation the changes can take from 6 to 12 monts minium. DevOps required a change on culture and in some organizations it will be esier than others. The cultural changes imply changes on People and roles. Changes on processes and changes on technology. The bottom line is that change is not easy.
Review the following document:
http://download.microsoft.com/download/9/3/D/93D16440-3517-4961-89C7-43128C2670A2/Aligning%20ALM%20and%20Cloud%20Strategies%20-%20The%20DevOps%20Opportunity%2010-2014.pdf
I would like to bring to you attention a couple of books that will provide you with a great insight in how IT and IT systems have changed:
The Phoenix Project: Fictional story about an organization’s IT team. The book explains the current problems facing the IT team and it then moves into how the team tries to fix these problems. Via the story, the authors provide the reader with an explanation of processes, techniques and behaviors that are required to be successful solving todays IT and software delivery problems. This book is closely model to the The Goal, a book written by Dr. Eliyahu M. Goldratt to improve manufacturing processes. I highly recommend that read too.
In Search of Certainty: In this book, Mark Burgess explains how far we have come in our understanding of the systems, and whether we yet have the necessary knowledge to prevent them from spiralling out of control. In Search of Certainty takes the reader on a fascinating journey, from the beginnings of scientific thought to our present day, illuminating information technology as an integral part of our modern historical and cultural narrative. It lays out key challenges for the future and suggests a daring new way to think about the future governance of the vast cybernetic organism we are in process of creating.
Burgess provides great insight into scalable systems design, which helps develop systems that can be more resilient and autonomous.
Bi-Modal IT (Gartner) – https://www.gartner.com/doc/2798217/bimodal-it-digitally-agile-making
- (definition) http://www.gartner.com/it-glossary/bimodal
Gartner has coined the term “Bimodal IT”. Bimodal IT refers to having two modes of IT, each designed to develop and deliver information- and technology-intensive services in its own way. Mode 1 is traditional, emphasizing scalability, efficiency, safety and accuracy. Mode 2 is non sequential, emphasizing agility and speed.
http://www.cio.com/article/2875803/cio-role/what-gartner-s-bimodal-it-model-means-to-enterprise-cios.html
On CIO magazines article, Bernard Golden states that:
Gartner’s bimodal IT recommendation is a statement of how IT must be organized to meet the burgeoning requirements being forced upon it by business units. While there is discussion about what the Type 2 IT organization will build, it is usually focused on the consumer of the technology -- the business units and what they want to accomplish with agile, fast-to-market applications.
The bimodal model is correct that a different set of expectations and approaches is probably necessary for IT to respond to this demand, but it does not address the fundamental and enormous change in technology and process required to deliver Type 2 applications. Stated straightforwardly, Type 2 IT is a DevOps world, and it will require new tools and processes.
-------------
Tri-Modal IT (Pioneers, Settlers, Town Planners – Simon Wardley) http://blog.gardeviance.org/2015/03/on-pioneers-settlers-town-planners-and.html
Many people wonder if this DevOps stuff is right for them. It’s important to understand what type of organization you are, because it will impact your ability to create and adopt change.
[Joke] Oh come on! We were doing so good. Lets not despair. We have more help on the way.
Lean approaches originally come from manufacturing (Toyota Production System) and from experiences in the field. We will go over each one of these:
Eliminating bottlenecks and waste: DevOps is about identifying bottlenecks and removing the waste from the system to continuously improve your organization to deliver better software. Bottlenecks can be in the form of long approval processes, manual processes, and even certain resources.
Pull over Push: Pull over Push – The “Pull” of demand aligns process and resources, rather than the “Push” of central planning and prediction
Continuous Improvement: A continual improvement process, also often called a continuous improvement process (abbreviated as CIP or CI), is an ongoing effort to improve products, services, or processes. These efforts can seek "incremental" improvement over time or "breakthrough" improvement all at once.[1] Delivery (customer valued) processes are constantly evaluated and improved in the light of their efficiency, effectiveness and flexibility. (wikipedia)
Disruptive Change: Kaikaku (Japanese for "radical change") is a business concept concerned with making fundamental and radical changes to a production system, unlike Kaizen which is focused on incremental minor changes. Both Kaizen and Kaikaku can be applied to activities other than production. (wikipedia)
Small Batch + Experimentation: http://en.wikipedia.org/wiki/Lean_software_development
Kanban: Kanban is a method for managing knowledge work with an emphasis on just-in-time delivery while not overloading the team members. In this approach, the process, from definition of a task to its delivery to the customer, is displayed for participants to see. Team members pull work from a queue.
Iterative vs. Incremental: Iterative process provides you
I highly recommend you read the couple books from Eric Ries in the subject. It is peppered with real examples and good pointers that are applicable to your business.
Incremental does not provide a complete product on each iteration.
An iterative implementation gives a full end to end experience, even if the feature set is minimal. It provides a better understanding on what is the product going to look and feel.
Ask the audience: What approach will provide better flexibility for change requests? Which approach allows you better fail fast and test new features?
An iterative process is more flexible and handles changes better.
Both Deming and Kotter’s are probably the most well known people that have done extensive research in change management.
Their research provide support dealing, managing and starting change in organizations. Their ideas and processes have been successfully applied in multiple organizations and verticals. Deming provides an overview and suggestions of techniques that will work on the new economies. John Kotter provides an 8 steps process framework to initiate and manage change. In the following slides we will look at this system.
The following is an overview of the 8 steps of Kotter’s change Model:
1. Increase Urgency: Bubble up the problem and challenges. DevOPs makes business sense. It enables organizations to improve quality, fastens time to market and creates a competitive advantage.
2. Building the Guiding Team: You need to have team to be successful. You need to have executive sponsorship (VP, a leader with a lot of influence) to remove blockers and a team that team that is empowered to make and promote change.
3. Create a Vision: Create a vision that shows how the future would look like. You can use techniques like "Value Stream Mapping" to validate and identify blockers and start managing these from the start
4. Get the right Vision: Communication is key. Use social and traditional methods to communicate status, vision, road map and progress. Document the journey.
5. Empower Action: Everyone participating in this change needs to be empowered. Enable processes and tools to enable participants to share ideas and to help make decisions. Create iterative feedback loops that create an environment for getting information and make changes on a quickly faction. Drive a sense of responsibility and ownership. We are all in.
6. Create Short-Term Wins: Start with one or two teams (Use the Amazon 2 x pizzas analogy) that will help pave the road. Pick one area that has a good Return on Investment. Set short term goals and then move from one goal to the next as they are accomplished.
7. Don't let up: Keep on improving and server as a change agent. Apply lessons learned. Create environments to share and promote your DevOps experiences and knowledge. Show what works, what does not work and what needs to be improved. Use Lean teachings to create a culture of continuous improvement
8. Make it Stick: Take lessons learned and make them part of the organizations DNA. Cross over Business Units, and continuously show the benefits of DevOps. The organization's culture can become about how to continuously improve, how to improve waste elimination and how to make your customers happy.
Reusing Jackobs Adam keynote’s presentation in order to explain how to go about setting up a DevOps pilot Project.
Link: https://www.youtube.com/watch?v=_DEToXsgrPc .
Picture:
http://www.publicdomainpictures.net/view-image.php?image=19360&picture=macro-eye&large=1
The first step is to identify a business problem that can be used for the pilot. It will provide you a safe space to practice and prove your DevOps Skills.
The project needs to be small enough to be completed in a 8 weeks cycle. It needs to be something tangible and that addresses a specific problem. For example fix the patching system for a small set of servers. Remember, it needs to be a small problem that you can resolve on 8 weeks