Generate from Constraints

Using Prompt-Hoisting for GPT-based Code Generation

Michael Feathers
July 11, 2023

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 . . .

Read More

(Possible) AI Impacts on Development Practice

The View from April 2023

Michael Feathers
April 07, 2023

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 . . .

Read More

Gateway Teams

First experiences of your organization matter

Michael Feathers
August 23, 2021

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 . . .

Read More

System Personas and Design Integrity

Michael Feathers
March 13, 2021

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 . . .

Read More

Unit Conversations

Writing characterization tests interactively

Michael Feathers
September 23, 2020

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 . . .

Read More

Testing Warranties

Managing API use across an organization

Michael Feathers
June 16, 2020

Access specifiers in programming languages can be frustrating. Superficially, they seem ok. You use public to mark the methods you want to allow anyone to call, and use private to hide the ones that people shouldn’t call. When you’re writing code, it’s easy enough to make that decision, but there are situations where it would be useful to . . .

Read More

Functional Code is Honest Code

Michael Feathers
June 12, 2020

I’ve been reading quite a few attempts to define Functional Programming recently. It’s hard because we’ve taken so many paths in the industry. There’s some nexus around immutability, referential transparency, and typing. Each language makes its choices, and — if we are looking at those three qualities — it’s clear that you don’t need all of . . .

Read More

   Subscribe by email and never miss a post.

This update link alerts you to new Silvrback admin blog posts. A green bubble beside the link indicates a new post. Click the link to the admin blog and the bubble disappears.

Got It!