Michael Feathers is founder and Director of R7K Research & Conveyance, which specialise in software and organisation design, and was previously Chief Scientist of Obtiva. He has worked with hundreds of organisations to revitalise their code as well as support in process change and software design. Michael is a powerful voice on the relationship between complex code evolution and output efficiency within organisations.
A frequent presenter at national and international conferences, Michael is also the author of the book Working Effectively with Legacy Code (Prentice Hall, 2004).
Talks I've Given
-
Keynote: Socio-Technique and Structure
Featuring Michael C. Feathers
There are many design principles and heuristics in software development. We know how to structure our code well even if we don’t do it all of the time.
system-structure architecture legacy-code microservice-architecture -
Understanding Understandability
Featuring Michael C. Feathers
Believe it or not there was a time when many people in the industry felt that OO was too hard for the average programmer. Yet here we are taking an industry plunge into functional programming and tooling that would’ve tested the limits of what people could tolerate just ten years ago. We...
-
Testing Patience
Featuring Michael C. Feathers
Automated testing is widely considered a best practice. After considerable effort, the industry now agrees that unit testing, system testing, usability, and performance testing are essential in most serious development efforts, but we know that they are hard work. In this keynote, Michael...
software-development -
The Full Spectrum Developer
Featuring Michael C. Feathers
Software development is a field full of specializations. It’s hard work to master a programming language, a testing discipline, or design. At each point we have a choice between breadth and depth. Early in our careers, depth usually wins. In this talk, Michael Feathers will describe the attitudes...
agile xp -
The Design Principle that sneaks through your code, your system, and your life.
Featuring Michael C. Feathers
Whenever people think about design principles, they think about the SOLID Principles of Object-Oriented Design. Those five principles are stalwart guideposts for the designing developer. But, they are not the end of the story. There are dozens of other rules of thumb and design guidelines that...
covariance contravariance technical-debt object-oriented-design -
Functional Pipeline Design in Ruby
Featuring Michael C. Feathers
Do you know how to design software? Of course you do. We all know how to organize our applications with classes and methods. Often we use frameworks that help us with the easy choices. But many people don't realize that there are other approaches to design.
ruby software-design -
Software Mechanics
Featuring Michael C. Feathers
Software developers start on a journey when they join the industry. Slowly, they start to acquire rules of thumb and guidelines that they use to help them design software. As they go, they learn about the corners and traps that that software presents as a medium, and the limitations that make...
engineering -
Software Mechanics
Featuring Michael C. Feathers
Software developers start on a journey when they join the industry. Slowly, they start to acquire rules of thumb and guidelines that they use to help them design software. As they go, they learn about the corners and traps that that software presents as a medium, and the limitations that make...
engineering -
Software Mechanics
Featuring Michael C. Feathers
Software developers start on a journey when they join the industry. Slowly, they start to acquire rules of thumb and guidelines that they use to help them design software. As they go, they learn about the corners and traps that that software presents as a medium, and the limitations that make...
engineering -
On Our Ability To Do Much
Featuring Michael C. Feathers
Michael Feathers is an active member of the Agile/XP community. As a contribution to this community, he developed and maintains the CPPUnit — an open source C++ port of the JUnit testing framework. He is a member of the ACM and IEEE. He regularly speaks at software conferences around the world...
agile cppunit c++ junit acm ieee -
Software Naturalism - Form and Function in Untamed Code Bases
Featuring Michael C. Feathers
In the software development industry, we spend a lot of time talking about good design and not nearly enough about design as it is practiced normally. Every code base bears the mark of thousands of micro and macro code design decisions. In the end these decisions give code bases form and the form...
design