“Just” is a Four Letter Word

I’m often guilty of this myself, but I cringe whenever I hear a software developer say that in order to implement a feature, they “Just” have to do x, y, and z. The reality is that even on healthy projects, you will face at least a little more complexity than could be anticipated in advance. […]

The Boiling Backlog

Fixie's Kanban has four lanes: Backlog, Doing, Publish, and Done

Software development processes tend to be too prescriptive, leading to waste. For instance, most Agile training prescribes fixed-sized iterations ending with a retrospective meeting. Blindly following this structure may waste time: either you hold an expensive meeting when there isn’t enough to discuss, or you motivate the team to hold back ideas for improvement until […]

Cutting Scope

Over the last week, I’ve implemented support for async/await in the Fixie test framework. Thanks to a suggestion from Pedro Reys, I found that this project was susceptible to a serious bug, one that NUnit and xUnit both encountered and addressed back when the async/await keywords were introduced in C# 5. While developing the fix, […]

Isolating Execution

In last week’s post, Dogfooding, I uncovered a bug in the Fixie test framework by trying to use it on two of my other side projects. At the end of that post, I claimed that the bug had something to do with “AppDomains” and stated that it would be fixed once I met the following […]

Disabling language changes in Visual Studio

On a recent project I used a workstation given to me by the client. It was typical “big enterprise” setup with support for multiple languages. I discovered there’s a keyboard shortcut “Ctrl+Space” for changing your language that I would keep accidentally activating in Visual Studio. This post explains how to disable that. Go to the […]


As soon as your software project has a useful feature or two, it’s time to start eating your own dogfood. The usual advice is to use your own software in order to get early feedback, but there’s another major benefit to dogfooding that usually goes unmentioned: To dogfood your software, you have to treat its […]

Leaky Abstractions Rot Code

Over the past month, we’ve seen the inception and early development of my ongoing side project, the Fixie test framework. As of last week, it was far enough along to run all of its own tests. Although I’m pleased with the progress so far, last week’s success introduced an exceptionally leaky abstraction. Today, we’ll see […]


Last week, I covered the first several commits to Fixie, resulting in a reliable build script. This week, we’ll see how I’ve “bootstrapped” Fixie to the point where it can run all of its own tests. Bootstrapping comes from an old saying. To “pull oneself up by one’s bootstraps”, though literally absurd, is to improve […]

MVC Custom Unobtrusive Validator Attribute (Date Range Validation)

There are some useful attributes in MVC that help render dynamic unobtrusive validation to the browser.   The more you can accomplish by simply adding an attribute to a property on a view model the less duplication of JavaScript you have to manage.  Out of the “MVC” box validation for date ranges would require custom JavaScript.  […]

Socks, *then* Shoes

A couple weeks back, I announced the start of development on Fixie, a .NET test framework. Last week, I covered some early proof-of-concept work performed with throw-away code. This week, we’ll take a close look at the first several small commits to Fixie on GitHub. The commits we cover today are all about preparing the […]