Author Archives:

The “Dark Matter” of Technical Debt: Enterprise Software

Bespoke software is expensive. As we all well know, it is risky to build, technical debt can easily creep in, and you can easily end up with a maintenance nightmare. And software developers, well – we all know they are hard to work with, they tend to have opinions about things, and did I mention, [...]

F# Based Discriminated Union/Structural Similarity

Imagine you have a need to take one type, which may or may not be a discriminated union, and see if it “fits” inside of another type.  A typical case might be whether one discriminated union case would be a possible case for a different discriminated union.  That is, could the structure of type A [...]

Using Dynamic with C# to read XML

On April 10th (less than 1 week away), I am doing an updated version of my talk at Twin Cities Code Camp about using dynamic with C#. One core technique I am seeking to demonstrate is to use the concept of a dynamic XML reader as a more human readable way to use XML content in [...]

Just Make Me Think! The Best Technologies Force Hard Choices.

In thinking about what is so compelling about certain new technologies that have emerged in recent years, a common theme is starting to emerge.  The best technologies don’t just do something useful, but they make the user think about the right things that lead to better designs and more robust software.  Lets start by thinking [...]

i4o v2

An update to a project I have been working on for some time, for which the time definitley ripe for an update. It was an afternoon in 2007 when I was pondering… “Why I am writing the same Dictionary<K,V> collections just for indexing and putting them internal to my collection classes so I could do [...]

Why IT Matters More Than Ever

In 2003, Harvard Business Review published Nick Carr’s seminal essay, “IT Doesn’t Matter.” I remember that month well. The previous years of the PC boom, followed by the dotcom boom, had seen a tidal wave of money spent on technology. Much money was wasted on heavy investment in systems that either sat unused on a [...]

The Root Causes of Technical Debt

When we spend 80% of a development budget just keeping software that we already presumably “own” working and current, we know that technical debt is extracting a terrible toll on our budget. When making a simple program change requires effort measured in weeks rather than days, something has gone horribly wrong. In many circles, the [...]

Why Many Technology Consultancies Will Never See $100M Revenue

Consider two hypothetical technology consulting organizations.  One has 50 people and 10 million USD revenue, another has 500 people and 100 million USD revenue. Is one just a larger version of the other, with more geographic expansion? Obviously not.  There are many differences.  For one, it is harder to manage 500 people than 50.  The [...]

Business Intelligence does not Come From a Product

There is this guy, Bradford Cross, whom I met on my first project at ThoughtWorks.  I remember the day in a profound way, as I was on my first day at a client that, you could say, was something of a well known company in the top tier of accounting firms.  The kind of place [...]

Some Reflections on Being “Nomadic” – 10 Tips for Road Warriors

It has been a long run, but after working in the following cities over the past 37 weeks: 10 weeks in Seattle 1 week in Los Angeles 1 week in Las Vegas 12 weeks in San Jose 6 weeks in Beijing 1 week in Orlando 3 weeks in San Francisco 3 weekends in places like [...]

Follow

Get every new post delivered to your Inbox.