Legacy Code, OOP vs Functional Programming & MORE | Michael Feathers In The Engineering Room Ep. 10

Subscribers:
230,000
Published on ● Video Link: https://www.youtube.com/watch?v=UGD8pMMJlbk



Duration: 1:14:25
21,192 views
641


When Michael Feathers talks it’s usually worth listening. Michael is thoughtful about software and software design, for example Michael is the person who invented the term SOLID as an approach to software design. Michael is also the author of a book that is on the “must read” list of nearly every real-world programmer “Working with Legacy Code”.

In this chat, Michael Feathers describes this book as "scare tactics for TDD" - When you know how hard it is to write tests for existing code, you’ll write tests from the beginning!

Michael and Dave talk broadly about automated testing, software architecture and design principles for quality code, and Michael claims that “OO, when it's done right, looks a lot like FP”.

The "Engineering Room” is a monthly series of long-form talks, with influential people from the world of software, published on the Continuous Delivery channel each month and hosted by Dave Farley.

___________________________________________________

🙏The Engineering Room series is SPONSORED BY EQUAL EXPERTS

Equal Experts is a product software development consultancy with a network of over 1,000 experienced technology consultants globally. They increase the pace of innovation by using modern software engineering practices that embrace Continuous Delivery, Security, and Operability from the outset ➡️ https://bit.ly/3ASy8n0

-------------------------------------------------------------------------------------

Also from Dave:

🎓 CD TRAINING COURSES
If you want to learn Continuous Delivery and DevOps skills, check out Dave Farley's courses
➡️ https://bit.ly/DFTraining

📧 Get a FREE guide "How to Organise Software Teams" by Dave Farley when you join our CD MAIL LIST 📧
The best way to keep in touch with the latest discussions, events and new training courses, get FREE guides and exclusive offers. ➡️ https://www.subscribepage.com/organise-teams-guide

-------------------------------------------------------------------------------------
🔗LINKS:

Millers Law ➡️ https://en.wikipedia.org/wiki/Miller's_law
+7 -2 ➡️ https://en.wikipedia.org/wiki/The_Magical_Number_Seven,_Plus_or_Minus_Two
Ian Cooper ➡️ https://youtu.be/EZ05e7EMOLM
Martin Thompson (TER Episode) ➡️ https://youtu.be/sIBrFuzR3cs
Simon Brown C4 Architecture ➡️ https://c4model.com
Michael Feathers’ twitter ➡️ @mfeathers
Link to Michael’s talk: “The Deep Synergy between testability and good design" ➡️ https://youtu.be/4cVZvoFGJTU
LMAX Disruptor ➡️ https://lmax-exchange.github.io/disruptor/

-------------------------------------------------------------------------------------
📚 BOOKS:

📖 Dave’s NEW BOOK "Modern Software Engineering" is now available here ➡️ https://amzn.to/3DwdwT3

📖 "Continuous Delivery Pipelines" by Dave Farley paperback ➡️
https://amzn.to/3gIULlA
ebook version ➡️ https://leanpub.com/cd-pipelines

📖 The award-winning "Continuous Delivery" book by Dave Farley and Jez Humble ➡️ https://amzn.to/2WxRYmx

📖 Working Effectively with Legacy Code, Michael Feathers ➡️
https://amzn.to/3hP0F4z

📖 Growing Object Oriented Software Guided by Tests, By Nat Price & Steve Freeman ➡️
https://amzn.to/2Lt3jho

📖 Team Topologies - Matthew Skelton & Manuel Pais ➡️
https://amzn.to/2Y0NdSO

📖 Extreme Programming Explained: Embrace Change, Kent Beck ➡️
https://amzn.to/2GpQRjE


NOTE: If you click on one of the Amazon Affiliate links and buy the book, Continuous Delivery Ltd. will get a small fee for the recommendation with NO increase in cost to you.

__________________________________________________

CHAPTERS

00:00 Welcome
00:40 Introducing Michael Feathers
02:26 Good Design in Code is an Artefact of the Way Our Minds Work
05:21 “Every Time you Encounter a Testability Problem, there’s an Underlying Design Problem”
07:45 A Test is a Program to Understand a Program
10:00 Painful Tests Teach you About Good Design
12:50 The One-More-Thing Problem
13:38 Test First is Coding at a Distance
18:45 Techniques to Tackle Difficult Parts of TDD
20:20 Glue System? Or Computational System?
21:30 Test Coverage is NOT the Goal
22:28 “OO when its done right looks a lot like FP”
27:30 Modularity, Unit Tests and Separation of Concerns
32:39 Quality Views and Key Responsibilities
38:00 Can you Explain Your System in 4 or 5 Objects?
40:50 CRC-Thinking and Cohesion
42:00 Cognitive Load, Microservices and Coupling
46:20 Platforms and Team Topologies
48:08 Scale is the Enemy
52:00 Engineering at Different Scales
54:40 Economics and Buy v Build Choices
58:20 Complex Systems - Physics Bound or People Bound?
1:01:00 Determinism and Concurrency
1:04:00 LMAX and Incremental Design
1:07:30 Constraints and Globals
1:10:40 Moving the Blue Frog
1:12:45 Dynamics of Software Systems and Social Systems
1:14:00 Wrap Up







Tags:
michael feathers
michael feathers interview
michael feathers talk
software design
working effectively with legacy code
legacy code
refactoring
refactoring legacy code
displacing legacy systems
agile
agile methodology
software development
software engineering
computer science
Dave Farley
software podcast
software interview
the engineering room
oop
object oriented programming
functional programming
oop vs fp