Archive

Archive for the ‘Rant’ Category

Stop writing shitty software and stop poverty.

September 20th, 2007 Josh Graham 1 comment

Recently, Les Hatton wrote a compelling article entitled The Chimera of Software Quality. (Les Hatton, “The Chimera of Software Quality,” Computer, vol. 40, no. 8, pp. 104, 102-103, Aug., 2007)

A section of the article headed The cost of poor quality points out the economic impact of poor software quality, and the almost belligerently ignorant and/or apathetic approach to it by people and businesses in the technological nations.

He summarises this in what he postulates as Hatton’s Law:

The technological societies will collectively trash around [US]$250 per person per year on systems which will never see the light of day or, if they do, do not come close to what their users wanted, assuming they were asked in the first place. This they will ignore.

(emphasis mine.)

If you aren’t flabbergasted or at least peeved by that figure (except because you’ve already come to the sad realisation), stop reading now and go and defragment your hard disk, ignoramus.

As we say Downunder, “Goodonya, Les!”. Although he didn’t suggest where that money should go, he did indicate that it’s not just about the money, it’s about the engineering legacy we’re leaving. I have no idea if he shares my views, but other engineering disciplines have helped make the world better by avoiding the cost of poor quality. Pastoral tools, houses, clothes, toilets, aqueducts, fishing nets, boats, glass, the list goes on (and will probably not include the iPhone, people!).

Of course in software there are tactical actions taken, especially when shareholders start raising concerns over short-term cost-benefits of IT (or, more accurately, when executive bonuses are impacted by it by more than a few percentage points). But this is not enough.

Sometimes, I’m accused of being aggressive in the indignation I display when I see woeful technological systems. I suppose that’s because something inside of me has always been thinking that the money spent on building that pile of steaming crap could have been used for much more constructive purposes. In that sense, I’m not nearly aggressive enough. Perhaps I’ll stop calling it “technical debt” and start calling it “karmic debt”.

Stop writing shitty software and you could do something even better than increase shareholder value or boost your annual bonus. You could help take a stand against poverty – in your own country and around the world.

There are many corporations who divert some resources to social responsibility. Think how much more they could do if they did some of the simplest, mind-numbingly basic things to avoid spending massive sums on poor software. Those things aren’t just throwing money at a problem, but the money or more freedom from cost constraints allows corporations and their employees to do so much more.

Even corporations in industries you’d normally least expect to understand are being more socially responsible in a way that doesn’t raise the eyebrows of the cynics like me. I’ve personally witnessed the activities undertaken by employees at Westpac, a large Australian bank. I also know that avoiding the cost of poor software quality would allow them to do more. ThoughtWorks is not immune either. We use a couple of systems internally that are so fantastically crappy and impact both our effectiveness and efficiency that it beggars belief (I must point out this is relative to a benchmark one would expect of a company with our ideals, and would be otherwise more than reasonable almost anywhere else — we have the luxury of being very picky when critiquing internally). One of my clients laughed at me the other day when he found out what email client we use, because he made a lot of money (and stomach ulcers) supporting it in years past and he knew the impact that its poor quality has on its users (not that most of the alternatives are a benchmark for excellence).

ThoughtWorks is on an ambitious mission to change the nature of IT. In doing so, we hope to contribute to a better world. Avoiding the cost of poor software quality is one of the things we’re doing to help.

Categories: Philosophy, Rant, Responsibility Tags:

More on spaces: mass delete of superfluous folders in a tree

March 6th, 2007 Josh Graham No comments

I still hate the handling of spaces – especially when you’re throwing in mixed path delimiters using nice GNU tools on DOS/NTFS.

If you ever want to get rid of SVN or CVS folders (or whatever) in a large source tree after someone has zipped it and sent it to you straight from their workspace, and Explorer’s Search window barfs with that many matching folders all over the place, then try this:

  1. Get unxutils
  2. Use the zsh included
  3. Realise zsh has bipolar tendancies when dealing with “DOS backslash to delimit directories in paths” and “UNIX slash to delimit directories in paths” and “UNIX backslash to quote special characters”
  4. Put unxutil’s usr/local/wbin at the front of your PATH (to get the GNU find, not the DOS one)
  5. Unfortunately -exec ls {} \; doesn’t do the trick because ls can’t handle the spaces and/or backslashes and -exec ls “{}” \; doesn’t have any affect
  6. Use the following neat trick (after 30 mins of mucking around with the bipolar tendancies)

  7. find . -name 'CVS' -print | tr '\\' '/' | while read filename
    do
    rm -r "$filename"
    done

  8. The little translate sorts out GNU find -print returning paths with backslashes and the while loop allows you to do lots of things, including removing the directory :-)

It’s slower than -exec or xargs but it works.

Categories: Coding, Operating Systems, Rant Tags:

Spaces in directory names

February 13th, 2007 Josh Graham 1 comment

It’s 2007 – you’d reckon everyone would be able to handle spaces in directory names on Windows by now.

You’d reckon the command program on Windows would be able to interpret stuff too so sensible command line arguments would be sent to the program being executed:


C:\Program Files\Java\jdk1.5.0no_not_again\bin\java -cp C:\Program Files\My App\classes you.goddabe.kidding

And even it’s own inbuilts:


dir %JAVA_HOME%

Perhaps the dweeb who decided to call it progra~1 should have decided on ProgramFiles instead. Who wants to clean up batch files with double-quotes around every possible environment variable expansion point?

Categories: Rant Tags:

JaBOL – the language that really took off

January 18th, 2007 Josh Graham 1 comment

Javaâ„¢ isn’t really the success we think it is, you know.

Java programs written the way Gosling et al originally intended would clearly be using the object-oriented paradigm (sure, they’d be applets in a browser, but that’s another story).

What happens when the COBOL crowd (of which I was one) gets their working-storage sections and procedure divisions pulled from under their feet and replaced with interfaces and immutable objects?

What we have, ladies and gentlemen, is a fantastic volume of COBOL programs re-written using Java syntax but with few of those pesky OO semantics.

Look out for RuBOL – the next big thing, where you can MOVE SPACES TO boolean just like in the good ol’ days.

Categories: Architecture, Rant Tags: