CollapseAbstractionSpace

October 21st, 2006

So I have spent the last two months ruminating on what makes the style of software development that I have come to expect work to well.

The ostensible reason is that I’ve been on a client site exploring what TDD and BDD mean for an organisation that has no exposure to either of the concepts.

Fantastically that has meant a deep introspection of my personal coding style. I would probably catorgarise my natural style of software development as HackUntilItWorks.
Seaport

Why use T.D.D?

1. It is making the best abstraction at the best time. (CollapseAbstractionSpace)

Engineers think about designing software because that it what makes us want to be engineers. We like thinking about the best way to solve a problem and it make us Happy when we solve it. The only thing that makes an engineer happier than when he solves a problem is when they solve it in a more elegant manner.
But given a set of solutions to a problem, we will decide on the wrong solution.

For example: for a design F, there are a number of solutions that satisfy F -> S(n) where S is the set of possible solutions (n). This holds for a given solution space such as a low coupling/high cohesion space. Given that we accept that within the space we are describing the tenets of the original GRASP patterns.
The reason is that no given solution is correct but some solutions are more correct than others.

Developers believe intuitively that if they think hard enough, then the idea they have; the abstraction they make is the correct one.

In the terms given above, Developers think that F -> S(n) becomes F -> S(0).

FIRST POST!

August 14th, 2006

LOL! L33t! etc.

So I’ve finally caved in and have started writing a blog. Unfortunately I don’t really have anything to say at the moment. That doesn’t stop most people so I’m going to have a blather. I’ve just arrived in the US for a two month stint at a client site on the East Coast. It’s my first visit to the states and so far I’ve had a great time. NY is as breathtaking as I was told it is with every street corner containing a famous building or vista from a film I’ve seen sometime. The yanks are as friendly as promised and everything is pretty hunkydory.

Nice in the summer
My wish for this blog isn’t to talk about my travels, instead it is to post occasional ruminations on technology and process, specifically solutions and titbits relating to my work as a consultant for ThoughtWorks. I may explain what a Bovine Synchatron is at somepoint too.
Oh, and thanks to big Dan North for persuading me that this was a good idea