February 2005

A little horror story

You’re a consultant. You got sent to this new project, and it has been around for quite a while, and lots of bright and not-so-bright people worked on it over the past few years. Lots of functionality in it, they say, and even though the project has been wildly successful in the business eyes, do you have any idea regarding what to expect from the codebase?

First, you check everything out from the insanely bad SCM tool, to find out your favourite IDE won’t have enough RAM to build the thing, and you’ll have to use something else. You also find out that most tools can’t help you anymore, because they die a horrible death when trying to make sense of all that code.

You try and follow Michael Feather’s brilliant Working Effectively with Legacy Code (PDF link), and manage to isolate a tiny bit of functionality, test it and make sure you can fix the behaviour properly. That gets you trapped in a maze of circular dependencies with some other 30 other packages.

Your vision gets blurry, and you go out looking for something sensible to do, like searching for pictures of screaming trapped babies.

But there’s more. The build is so complex Ant didn’t cut it, and using something built in-house was the best way. But you don’t want to mess with that yet, because you don’t know what else could break. In fact, breathing near some parts of the code could make them break. And it takes time to know it, cause it takes half a day to get feedback from something you committed by the continuous integration machine.

You yearn the days when Find Usages was one of the most valuable keyboard shortcuts in your IDE. When using one O/R mapper was already troublesome enough - instead of the handful you have now.

If you excuse me, I’ll go look at some more pictures of screaming babies.

General
Work

Comments (6)

Permalink

Web Service APIs

Despite all the XML abuse going around these days, there are is a small, but growing, number of web service consuming applications out there, and one very neat app I found is FlickrGraph (see my Flickr profile in it).

FlickrGraph wouldn’t at all be possible without the Flickr API, which exposes many of the funcionalities in Flickr as REST, SOAP or XML-RPC calls to any developer interested in using them.

This is what Jeff Bezos points out in his Web 2.0 talk:

Web 2.0, from where I stand, is about making the internet useful for computers.

Blogs with RDF/RSS/Atom-based aggregation were only a very tiny first step to making content and services more widely available, and now everytime I think of a useful service on the web, I end up sketching out its API first, figure out a few interesting uses for it, and then decide if it’s worth or not implementing.

If you look at Flickr’s insane popularity rise, there are definitely a few lessons to learn about a great web application, and providing an API is certainly one of them. It’s an incredibly dense app, even with the apparent simplicity, so I’m sure there’s a lot more.

Blogs
General

Comments (1)

Permalink

Is software engineering an oxymoron?

Just finished listening through the podcast of this interview with Alistair Cockburn over at ITConversations (approx 15 mins), a few months old now, but still well worth it if you’re wondering, like I was, how the whole agile development buzz really came from.

It turns out that my favourite quote from this interview wasn’t even related to agile development, but to ’software engineering’:

In 1968 there was this NATO conference on software engineering. And when you read the preface to that (…) it says, “We wanted to come up with a provocative term, and so we chose this term software engineering” as a provocative term. That was a big shock to me when I read it because I think, like most people, they assumed that somebody had said… there was reason to believe that software development is a branch of engineering, but, in fact, what these people were saying is, “We don’t like the state that software development is, so we will throw out this word “engineering” and suggest that it should be like engineering and see what goes from there.”

Well, having a bit too much time on my hands, I actually looked it up - the 1968 NATO Software Engineering Conference report is a very interesting read, indeed. A particularly nice quote is from Edsger Dijkstra himself:

The dissemination of knowledge is of obvious value - the massive dissemination of error-loaded software is frightening.

Followed by this gem:

There was a general agreement that ’software engineering’ is in a very rudimentary stage of development as compared with the established branches of engineering.

Except for the occasional OS/390 namedrop, the whole thing reads like last year, and I surely wouldn’t be surprised to find many people and projects working under the conditions being described as unacceptable… by a conference held in 1968. Depressing, but hopefully being aware of the problem is half the way of fixing it.

General

Comments (0)

Permalink

On waking up

more espresso porn

A topic not much debated, although I’ve discussed it with friends more than a few times now, is how to create the perfect alarm clock. You know, the one that, no matter what, will wake you up at the right time.

Nowadays I’m using the 6630 for that. Nokia Series 60 phones usually have a distinguishly annoying ringtone for the alarm, and this one’s no exception. But it’s just not enough. I need something powerful, preferrably something that only stops when I’m in the shower already.

Or, maybe, some alarm that only stops by the time I touch my Oyster card on the bus. Ideas, anyone?

General

Comments (3)

Permalink

JavaOne, anyone?

Whoops. Looks like I just missed the chance to have an opportunity to who knows, maybe get a free ride to JavaOne by doing a BOF or talk.

This happens every couple of years or so apparently.

Anyway, there’s been much complaining about the content of the previous events, and we haven’t seen it get much better last year. Sun’s not too different, either, but the rules of the game have changed a bit - they seem to be much more reluctant to take product pitches, even if they’re open source products, to the stage, which I think is fair.

Now if only they got rid of the “if it’s a Sun technology, or you work for Sun, you’re blessed” meme, this year’s should be quite interesting.

General

Comments (0)

Permalink