Saturday 23 March 2019

Short refresher speech on DevOps principles

A casual speech on DevOps principles - Flow, Feedback, and Continuous Learning and Improvement.

Good morning everyone. I'm sure we all familiar with the term DevOps. Just a quick refresher - it is a collection of practices - way of life - that aims to speed up delivering value to our customers. Today we are not going to talk about these practices concretely, but instead go up one level and talk about the 3 principles that underlie all DevOps practices: Flow, Feedback, and Continual Learning and Experimentation. The DevOps book calls them "The Three Ways". We can decide on our own whether we are already following these practices, or is there still room for improvement.

The first way - Flow - means work must be delivered quickly from Development to Operations. Traditionally, SDLC involves long planning, development, testing activities, in that order. The first principle tells us that instead of letting the customer wait till the end of a cycle, say, two years, to see multiple new features or bug fixes in a batch, we should let them see their product evolve incrementally feature by feature and bug fix by bug fix - say, every two weeks. This means we must have a Minimum Viable Product or Minimum Marketable Release - whatever terminology we choose, and then incrementally build from there.

The second way - Feedback - means any form of deviation from expectations should be communicated to the team quickly. There are two sides to this. First is from the customer. Whenever they see something they don't like or have some new ideas, they should communicate with the team. The earlier they do this, the earlier the DevOps teams can re-plan their commitments. It's just like when you have a ship, the faster you correct your course, the faster you will reach your destination safely - especially if your destination tends to change along the way. The second is for the developers. The development team must be able to have near-instant feedback - the shorter the Code-Compile-Test cycle, the more productive they will be!

The third way - Continual Learning and Experimentation - means instead of being satisfied with the status quo, teams must proactively seek to improve. Having this culture is to say that we are ok with Experimenting, and, perhaps more importantly, Failing. I have seen many teams that say they promote learning and experimenting, but when something goes wrong, fingers start pointing everywhere! We must realize that failing is an important part of the learning process, and give allowance accordingly.

To summarize, the key takeaway here is the three underlying principles of DevOps practices - Flow, Feedback, and Continual Learning and Experimentation. Flow, Feedback, and Continual Learning and Experimentation. Let's remember to base all our planning and development decisions on these 3 principles. Thank you.

No comments:

Post a Comment