Michael C. Feathers's Blog

July 11, 2023

Generate from Constraints

As society deals with the broader implications of generative pre-trained transformer (GPT) technology, developers are trying to understand how it will impact software development. While there are a wide variety of ways to leverage it, the easiest, and most common, is code generation.

Today, there are a number of GPT-based tools that analyze comments and code and suggest completions as you type. You can also prompt them to generate or transform code. In either case, you can choose to accept the ...

 •  0 comments  •  flag
Share on Twitter
Published on July 11, 2023 08:44

April 6, 2023

(Possible) AI Impacts on Development Practice

We can’t accurately predict AI’s impact but we can explore some possible disruption points.

Source Code:

Currently most software systems are developed using source code – a human readable, (hopefully) deterministic specification of system behavior. Development tools that allow end-user programming often bypass the need for source code by using record/playback and visual programming-style interaction modes. When behavior needs to be altered, a source code representation is useful. It aids syst...

 •  0 comments  •  flag
Share on Twitter
Published on April 06, 2023 16:47

August 23, 2021

Gateway Teams

One of the things that is hard to appreciate in complex systems is path-dependence — the fact that most systems have memory. What we see today is a consequence of what came before. This is a very simple thing to say but even when we know it, we forget it and we don’t really think about its ramifications. If we want to change things, it helps to be upstream of the change. The earliest decisions are often the most significant ones. The things we have to react to are often most determinative of ho...

 •  0 comments  •  flag
Share on Twitter
Published on August 23, 2021 12:36

March 13, 2021

System Personas and Design Integrity

It’s taken me a while to appreciate Edsger W. Dijkstra. I had a professor in college who used to comically refer to him as “fearless leader” whenever he mentioned some piece of bombastic wisdom from him. But, beyond the bombast, Dijkstra’s contributions to computer science and software engineering were seminal. Even though I didn’t pay as much attention to his ideas as I should’ve, they influenced me indirectly and one of them led me to ignore some avenues of thought that I wish I’d pursued earl...

 •  0 comments  •  flag
Share on Twitter
Published on March 13, 2021 10:21

September 22, 2020

Unit Conversations

There are many ways to look at unit testing, but one of my favorites is to see it as an attempt to have a REPL in languages that don't have one.

When you have a REPL, you can call a function and learn how it works interactively. You get immediate feedback—you can have a conversation with it. In dynamically-typed languages this is easy. Most of them have a REPL. In statically-typed languages it is harder. The compiler needs to perform its checking. In the worst cases it has to check across a tr...

 •  0 comments  •  flag
Share on Twitter
Published on September 22, 2020 16:18

December 3, 2019

Scaling and the Friction of Dimension

If you’ve been in software development for a while, you know that small web applications are ill-suited for massive load. I’m writing this a few days after Black Friday in the US. This year, another large retailer had a site outage, losing tens of millions of dollars in expected sales. The retailer definitely didn’t have a small system, but it is easy to imagine that if their possible load had been much smaller, the system could have been simpler and everything would have gone ok.

Over the...

 •  0 comments  •  flag
Share on Twitter
Published on December 03, 2019 08:36

November 24, 2019

The Simulation Argument and the Simulation Barrier

I can’t recall when I first heard Nick Bostrom’s Simulation Argument, but I know that it was a long time ago. It seems to resurface in the popular consciousness every few years — often when it is tied to the plot of a movie, or when a celebrity or entrepreneur makes reference to it.

The core of the argument can be found in the abstract of Bostrom’s original paper [1]:

This paper argues thatat least oneof the following propositions is true: (1) the human species is very likely to go extinct...

 •  0 comments  •  flag
Share on Twitter
Published on November 24, 2019 08:24

September 11, 2019

Socio-Technical Seeing

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 perspective, there’s so much that is puzzling about software development. Often things don’t go as planned. We blame people and processes because we miss the int...

 •  0 comments  •  flag
Share on Twitter
Published on September 11, 2019 06:04

July 16, 2019

Toward a Book of Form

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. Postel's Law 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 careful about what they produce. It makes connection easier. Larry Wall pointed out that the same advice can be useful in social systems. For exam...

 •  0 comments  •  flag
Share on Twitter
Published on July 16, 2019 16:07

June 20, 2019

Groups Are About The Other

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 shifts toward rule setting and enforcement. Shirky described this process in pre-social-media spaces like The Well, but anyone who has paid attention to Twit...

 •  0 comments  •  flag
Share on Twitter
Published on June 20, 2019 12:21