The Surprising Implications of Architecting for Generality with Michael Nygard
Description
On this continuation of Gene Kim’s interview with Michael Nygard, Senior Vice President, Travel Solutions Platform Development Enterprise Architecture, for Sabre, they discuss his reflections on Admiral Rickover's work with the US Naval Reactor Core and how it may or may not resonate with the principles we hold so near and dear in the DevOps community. They also tease apart the learnings from the architecture of the Toyota Production System and their ability to drive down the cost of change.
They also discuss how we can tell when there are genuinely too many “musical notes” or when those extra notes allow for better and simpler systems that are easier to build and maintain and can even make other systems around them simpler too? And how so many of the lessons and sensibilities came from working with Rich Hickey, the creator of the Clojure programming language.
Bio:
Michael Nygard strives to raise the bar and ease the pain for developers around the world. He shares his passion and energy for improvement with everyone he meets, sometimes even with their permission. Living with systems in production taught Michael about the importance of operations and writing production-ready software. Highly-available, highly-scalable commerce systems are his forte.
Michael has written and co-authored several books, including 97 Things Every Software Architect Should Know and the bestseller Release It!, a book about building software that survives the real world. He is a highly sought speaker who addresses developers, architects, and technology leaders around the world.
Michael is currently Senior Vice President, Travel Solutions Platform Development Enterprise Architecture, for Sabre, the company reimagining the business of travel.
- Twitter: @mtnygard
- LinkedIn: https://www.linkedin.com/in/mtnygard/
- Website: https://www.michaelnygard.com/
You’ll Learn About:
- Admiral Rickover’s work with the Naval Nuclear Reactor Core
- Building great architecture for generality.
- Architecture as an organizing logic and means of software construction.
- Toyota Production System’s ability to drive down the cost of change through architecture
- Clojure programming language
- Cynefin framework
- How to know if a code is simpler or more complex
RESOURCES
- Cynefin framework
- Failure Is Not an Option: Mission Control from Mercury to Apollo 13 and Beyond by Gene Kranz
- "Why software development is an engineering discipline," presentation by Glenn Vanderburg at O'Reilly Software Architecture Conference
- "10+ Deploys Per Day: Dev and Ops Cooperation," presentation by John Allspaw
- "Architecture Without an End State," presentation by Michael T. Nygard at YOW! 2012
- "Spec-ulation Keynote," presentation by Rich Hickey
- re-frame (re-frame is the magnificent UI framework which both Mike and I love using and hold in the highest regard — by no means should the "too many notes" comment be construed that re-frame has too many notes!)
- "Fabulous Fortunes, Fewer Failures, and Faster Fixes from Functional Fundamentals," presentation by Scott Havens at DevOps Enterprise Summit Las Vegas, 2019
- "Clojure for Java Programmers Part 1," presentation by Rich Hickey at NYC Java Study Group
- Simple Made Easy presentation by Rich Hickey at Strange Loop 2011
- Love Letter To Clojure (Part 1) by Gene Kim
- The Idealcast, Episode 5: The Pursuit of Perfection: Dominant Architectures, Structure, and Dynamics: A Conversation With Dr. Steve Spear
- LambdaCast podcast hosted by David Koontz
TIMESTAMPS
[00:09 ] Intro
[02:19 ] Mike’s reflections on Steve Spear, Admiral Rickover and the US Naval reactor core
[04:33 ] Admiral Rickover’s 1962 memo
[08:13 ] Cynefin framework
[12:40 ] Applying to software engineering
[16:06 ] Gene tells Mike a Steve Spear’s story
[18:58 ] 10+ deploys a day everyday at Flickr
[19:43 ] Back to the story
[24:34 ] Why the story is important
[27:35 ] When notes are useful
[35:05 ] Too many notes vs. too few notes
[40:00 ] DevOps Enterprise Summit Vegas Virtual
[41:35 ] How to know if a code is simpler or more complex
[47:23 ] A lively exchange of ideas
[51:31 ] The opposing argument
[54:20 ] Implementing items of interests
[55:21 ] Back to the payment processing example
[56:07 ] Case 3
[1:03:03 ] The challenge with Option 2
[1:08:19 ] Pure function
[1:10:19 ] Rich Hickey and Clojure
[1:15:01 ] Rich Hickey’s “Simple Made Easy” presentation
[1:16:37 ] Exploring those ideas work at the macro scale
[1:22:31 ] Immutability concept
[1:23:58 ] The importance of senior leaders’ understanding of these issues
[1:26:53 ] Outro