How to organize a Visual Studio Solution

Visual Studio is a capricious product, and its "Solution" subsystem is especially capricious. When you look at what options are available you might think you have a great degree of freedom to structure things the way you want, but as you will inevitably (and painfully) find out later, many things have to be done in precisely one, entirely undocumented way, or else there will be pain of the worst kind: Visual Studio will malfunction either without any error message, or with error messages that are completely unhelpful for locating and fixing the problem.

Here is a list of things I have (painfully) found out over the years.

Read more »

Incident Impact Calculation Formula

The Mike Nakis formula for calculating the impact of an incident:

I = S × G × T

Where:

  • I is the impact of the incident.
  • S is the severity of the incident.
  • G is the geographic pervasiveness of the incident.
  • T is the temporal pervasiveness of the incident.

Thus:

Read more »

Simplification of triple-choice prompts to dual-choice

I have a lot to say about the modern trend in graphical user interface design which aims to achieve an impossibly clean look at the expense of usability, but this is going to be the subject of another blog post. In this post, I want to talk about simplifying the user interface when the simplification is clearly a win, both from a usability point of view and, incidentally, from an aesthetics point of view. Specifically, I want to show how a yes/no/cancel prompt can be reduced to just a yes/cancel prompt.

Read more »

Buienalarm vs- Buienradar

So, today I had the chance to observe an example of the relative accuracy of buienalarm.nl vs. buienradar.nl

Read more »

Continuous Code Quality Improvement

While working on code in the context of a certain task, a programmer often discovers some preexisting quality issue. When this happens, there is a choice to be made:

  • Fix the quality issue on the spot, and commit the fix in the context of the task at hand; or:
  • Only make changes that are strictly necessary for the task at hand, and introduce a separate task for fixing the quality issue.
Read more »

Artificial Code Coverage

Abstract

In this paper I put forth the proposition that contrary to popular belief, 100% code coverage can be a very advantageous thing to have, and I discuss a couple of techniques for achieving it without excessive effort.

Read more »