Category: software engineering

  • Poorly Formatted Code Costs You Money

    After nearly 10 years of working on complex systems I think I have nailed down why poorly formatted code annoys me so much. It wastes time. Complex logic requires whitespace in order for the reader to make sense of it in the same way that punctuation is used in sentences. If the whole thing looks […]

  • Unit Testing the Database Tier

    Unit testing database code is a bit of a funny problem. Most developers can pretty easily get their heads around unit testing a piece of Java code using interfaces and mock objects. When it comes to database code or DAOs, it suddenly becomes particularly difficult. But why, what is so difficult about testing stuff against […]

  • Home Cooked vs Open Source. Or, Don’t Build Your Own Workflow.

    First thing’s first. I love open source. I think that it’s the best thing since sliced bread. That thing that we were always told about since computer science, that of the open marketplace for components to be shared and reused HAS happened. Just not in the “buy this billing component” kind of way. It’s even […]

  • Visio 2003 UML is The Bomb

    I have worked with a number of different employer-provided UML tools in the past and have often been left underwhelmed. Rational Rose is a complex memory-hogging beast, ArgoUML seems clunky (although I’m happy to work with it at home since it’s free), and older versions of Visio have needed Pavel Hruby’s stencil to provide good, […]

  • Becoming a Programmer

    I came across an article posted a while ago by Rob Walling (http://www.softwarebyrob.com/articles/Software_Training_Sucks_Roll_it_Back.aspx) proposing that the best way to learn how to program is via an apprenticeship with a more experienced programmer. I love the idea, it just sounds right to have someone shortcut you through a lot of the unnecessary pain. It is something […]

  • A problem worth solving

    I came across this article in Technology Review, which talks about a completely green-field approach to software development – Intentional Software. Getting the domain experts to write their own code. There have been less-than great implementations of this sort of thing in the past, but a guy like Charles Simonyi (Microsoft Word/Hungarian notation fame) just […]

  • Know your toolset

    Out of sheer curiosity I checked out the RadRace results for 2006 from Javapolis (is there a running theme here?) to see what toolkits the guys who seriously churn stuff out quickly are using. The toolsets were as diverse as anything you’re likely to see, some proprietary, some big-vendor, some open-source. What I thought was […]

  • Can it be done by Friday?

    The biggest problem I’ve encountered in the past is something that sends shivers down the spine of most IT professionals – the dreaded question of how long a piece of work is going to take. I’m not talking about quoting for year long projects – they’re a whole different kettle of fish – but about […]

  • 10 Reasons Why You Are A Programmer

    Sometimes, through the drudgery and stress of software development we forget why we do what we do.