Archive for the “Engineering” Category


No one would deliberately drive at night with their headlights off. It’s obvious why, we might make it to our destination but we’ll have run down a few pedestrians, bounced off some curbs, hit a lamp-post or two and slid into a few ditches. Were we to continue this way, our car would quickly turn into a useless wreck.

Driving with the headlights on allows us to see ahead, plan and anticipate a little, to think. In turn, our journey is more pleasant, the car lasts a lot longer and there’s much less risk of a fiery end.

Yet many companies drive with their headlights off when developing software. Silly deadlines with a non-negotiable set of features, fixed resource and no time to think. The result? A tangled mess of systems with zero-architecture, huge legacy, horrible brittleness and poor availability. And that most desired property of quick delivery is lost as it takes longer and longer to do even the most simple things.

There’s no substitution for prior thought and realistic planning. Yet so many eschew it whilst complaining about the results.

Technorati Tags: , ,

Comments 1 Comment »

It never ceases to amaze me how often supposedly professional software people (developers, designers and architects) choose to trust in blind luck. They become rabbits in the headlights of pressure be it deadlines, expectation or lack of insight resorting to chucking code out the door as quickly as possible hoping it’ll lead to something good.

If it does lead to something good, how would we recognise it? If it’s going badly, how do we recognise that and formulate a new approach? What is the cost of taking such a speculative action? What’s the best thing that might come out of the action?

Many of these people would claim to be brilliant problem solvers and yet they are lacking grasp of some of the fundamentals.

Technorati Tags: , ,

Comments 2 Comments »