The DevOps Digest: 2022-04-15

The DevOps Digest: 2022-04-15

This week, we cover Obvious Errors, Containers, Engineering Systems, Pattern Matching, Modern Software Engineering and Outages

?Enjoy!

?Quote: Obvious Errors

There are two methods in software design. One is to make the program so simple, there are obviously no errors. The other is to make it so complicated, there are no obvious errors.
-Tony Hoare

?Tweet: Containers will solve all your problems!!

Michele Lynch on Twitter: "True story! #Kubernetes #containers #k8s #k3s #rancher #neuvector https://t.co/CiKvotAGAJ" / Twitter

?Technical Article/Presentation: Moving to 1ES at Microsoft

Moving to 1ES at Microsoft - Microsoft | Devops Enterprise Summit London 2017 (itrevolution.com)

?This presentation by Sam Guckenheimer from Microsoft is a fantastic look into creating a common engineering system across many teams.?Before 1ES,every team had a different engineering system and there was little sharing across teams.?There were over 300 XML parsers!?1ES brought a set of common tools and shared components fostering reuse across teams.?It is both a technological revolution and a massive cultural change.?If you have used Azure DevOps, you are also benefitting from a lot of?this great work!

LinkedIn: Note that this video is only available by subscribing to the DevOps Enterprise Summit Video Library. A free membership(10 videos/month) is available as well as individual and corporate memberships.

?IT Revolution announced 2022 Conference Dates. I'm happy to say that the flagship event will be back in Las Vegas this year and in person!??

?DOES Europe is less than a month away! The programming committee has been hard at work selecting talks and the speakers have been hard at work preparing. Get your tickets!

2022 Conference Dates

DevOps Enterprise Summit Virtual - Europe

10-12 May 2022?|??Registration Open?

?

DevOps Enterprise Summit Virtual - US

August 2-4, 2022

?

DevOps Enterprise Summit?US Flagship Event?

The Cosmopolitan of?Las?Vegas

October 18-20, 2022

?

Podcast: Product Thinking - Melissa Perri?/ Identifying Patterns in Product with John Cutler

Episode 40: Identifying Patterns in Product with John Cutler — Produx Labs

?This is my favorite podcast for information about Product Management. Melissa is one of the foremost leaders on Product Management practices.?She writes quite a bit(see the Build Trap), runs The Product Institute(online training for Product Managers) as well as producing this great podcast.

?The Product Thinking Podcast has two different formats.?One format features leaders from the industry who Melissa Interviews.?The other format is called "Dear Melissa" where Melissa fields questions from listeners.?I find her insight and approach enlightening and refreshing.

In this Podcast, Melissa talks with John Cutler who is a product evangelist from Amplitude.?John is one of the foremost thinkers on cross functional product development.?He has a great weekly newsletter that you can get to below. Melissa and John discuss pattern recognition that comes from decades of seeing lots of problems and the tacit knowledge you build up from seeing these problems from many angles.?They also hit on how folks who see these problems can be frustrated in communicating these patterns to others that haven't seen them.?They need to step back and think about how they learned it and teach others.


Some other links to check out:

The Beautiful Mess | John Cutler | Substack

Produx Labs

Product Institute | Product Institute

Product Thinking — Produx Labs

?

Books: Modern Software Engineering / 1: Introduction

https://www.amazon.com/Modern-Software-Engineering-Better-Faster-ebook/dp/B09GG6XKS4/

Dave Farley is a thought leader on Continuous Deliver and TDD.?His works and content have literally transformed the industry and improved the way web build and release software.?

Modern Software Development is laid out in 4 parts: 1) What is Software Engineering, 2) Optimizing For Learning, 3) Optimizing for Managing Complexity, 4) Tools to Support Engineering in Software

  • Software development is a process of discovery and exploration.?As such, software engineers need to become experts at learning.
  • To learn we need to continually apply the scientific method through small, informal experiments: Characterize, Hypothesize, Predict, Experiment
  • Dave's working definition of Software Engineering: "Software engineering is the application of an empirical, scientific approach to finding efficient, economic solutions to practical problems in software."
  • Complex systems require an evolutionary approach of many small steps the entail: Iteration, Feedback, Incrementalism, Experimentation, Empiricism

10 Techniques that are vital

  • Managing Complexity Requires these techniques: Modularity, Cohesion, Separation of Concerns, Abstraction, Loose Coupling
  • Tools & Techniques that drive an effective strategy: Testability, Deployability, Speed,?Controlling variables, Continuous delivery
  • Applying scientific thinking along with these 10 techniques creates profound results for not just customers but for our employees(happiness and work-life balance)
  • This is backed by data and findings from the State of DevOps Report, Accelerate and reports from Microsoft and Google
  • To truly change the way we deliver software requires a paradigm shift and discarding many ideas that we have previously held(waterfall, command and control).

"I believe that the approach to software development that I describe in this book represents such a paradigm shift. It provides us with a new perspective on what it is that we do and how we do it."
-Dave Farley

  • This approach is not heavyweight or bureaucratic.?Rather it is a paradigm shift in thinking that greatly enhances our ability make high-quality software faster.

My commentary:

I fell in love with writing software as a kid because it allowed me to experiment with many ideas quickly.?Software allowed me to build theories and try them out and then throw them away with very little cost.?Later on, during my startup years I used these same techniques to iterate quickly with customers to discover both the requirements and solutions to solve for those requirements.?For me, this was the most satisfying and accurate way to build software.?In later years, in larger companies I was introduced to waterfall and told it "was a better way".?All I knew at the time was that waterfall sucked the fun and experimentation out of building software. The fun part was the discovery, experimentation and iteration.?Waterfall took that away and made draconian assumptions that coding was a menial activity and design was something that could be taken care of up front.?

I love what Dave is covering here.?He brings back the idea that Software Engineering is an iterative, experimentation driven process based in scientific methods. Not only can it be fun, but it can produce substantially better outcomes in speed, accuracy and quality.

This discussion also brings back one of the most powerful papers on the subject from Peter Naur written in 1985: Programming as Theory Building.?In the article, Peter argues that programming is an activity to test theories.

From the paper:

"It is argued that the primary aim of programming is to have the programmers build a theory of the way the matters at hand may be supported by the execution of a program. Further, on this view the notion of a programming method, understood as a set of rules of procedure to be followed by the programmer, is based on invalid assumptions and so has to be rejected."

Programming as Theory Building · GitHub

Some links:

?

Something Else: Inside the Longest Atlassian Outage of All Time

I feel for the folks over at Atlassian.?I'm sending HugOps their way….?Gergely Orosz had a very good writeup on his Pragmatic Engineer newsletter.?

The Scoop: Inside the Longest Atlassian Outage of All Time (pragmaticengineer.com)

Some learnings:

  • Big Bang migrations/cleanups/deletions are dangerous.?Do them incrementally!
  • Be able to rollback and test!
  • Be prepared for incidents and practice!
  • Communicate, Communicate, Communicate!

For more on how to deal with incidents more effectively, see our paper here: A Framework for Incident Response (itrevolution.com)

要查看或添加评论,请登录

Scott Prugh的更多文章

社区洞察

其他会员也浏览了