Socio-Technical Seeing

Modeling The Dynamics Of Code And Attention

Michael Feathers
September 11, 2019

In conversations about software development, I often ask people whether they’ve heard of Conway’s Law. It’s a doorway to a richer conversation. We can talk about the dynamics of design — how our environment affects us as designers and how the things that we design become part of that environment in a broad feedback loop. Without this . . .

Read More

Toward a Book of Form

Exploring Structural and Behavioral Abstraction

Michael Feathers
July 17, 2019

I’m fascinated by correspondence — when we see the same pattern in more than one place, or even a very different domain. A good example is Postel’s Law, sometimes known as The Robustness Principle. It states that when you are designing components in software you should design them so that they are open to accepting many kinds of input yet . . .

Read More

Groups Are About The Other

Michael Feathers
June 20, 2019

One of my favorite essays from the early 2000s is Clay Shirky’s A Group Is It’s Own Worst Enemy. It describes a dysfunction of on-line communities that is very familiar to us now in the age of social media.Communities often start as free spaces, but eventually chaos and harassment appear. Once they do, quite a bit of the group’s activity . . .

Read More

The Cognitive Tech of Technical Discussions

What can we do when we glitch?

Michael Feathers
February 28, 2019

How do you think?

It’s an odd question.

People think about thinking all of the time but they seldom talk about how ideas come to them. To the extent that I’m aware of my own process, I recognize that there’s a strong visuospatial component to my thinking. In my mind’s eye I see colors and shapes. When someone is talking, . . .

Read More

Testing Yourself

Growing Through Refactoring

Michael Feathers
December 07, 2018

These are interesting times for people who care about refactoring. The 2nd edition of Martin Fowler’s book Refactoring has just been released. As if that weren’t enough, Kent Beck recently wrote up a workflow called test && commit || revert, which can be seen as a new alternative to Test-Driven Development.

It might not be . . .

Read More

Orange Code

What humble citrus fruit can tell us about software

Michael Feathers
August 28, 2018

Whenever I work on unfamiliar code I start extracting methods. I look for chunks of code that I can name - then I extract them. Even if I inline the methods I’ve extracted later, I have a way of temporarily hiding details so that I can see the overall structure.

When I’m working with someone, often they point out that I’m actually . . .

Read More

Does Software Understand Complexity?

Reflections from ICCS2018

Michael Feathers
July 28, 2018

This past week I was at a conference with some wonderful talks, but I also enjoy the hallway track - the conversations you have with people during breaks. You trade experiences and eventually you get to the question: “what do you do?” My answer started with one word: software. The people I met had a range of reactions but often they spoke . . .

Read More

   Subscribe by email and never miss a post.