The Half-Life of Code

I've been thinking about the half-life of code.

In his Software that Fits in Your Head talk, Dan North defines the half-life of software as (I'm paraphrasing) "the amount of time required for half of an application's code to change so much that it becomes unrecognizable."

In that talk he tells the story of working on a high quality, non-trivial application whose code's half-life was six weeks.

Yup.  Six.  Weeks.

Posted on June 1, 2017 .

Make Everything The Same

As part of my local ruby meetup (#westendruby), I've been dabbling in katas and quizzes.  Having worked several, I can't help but notice that my solutions are sometimes radically different from the others.


Posted on June 9, 2016 .

The Wrong Abstraction

I've been thinking about the consequences of the "wrong abstraction."  My RailsConf 2014 "all the little things" talk included a section where I asserted:

> duplication is far cheaper than the wrong abstraction

And in the summary, I went on to advise:

> prefer duplication over the wrong abstraction

This small section of a much bigger talk invoked a surprisingly strong reaction. A few folks suggested that I had lost my mind, but many more expressed sentiments along the lines of 

Posted on January 20, 2016 .