Category Archives: SDLC

Software Development LifeCycle

Maintenance nightmare

Unmaintainable Plumbing - kids, don\'t use silicon sealant to hold plumbing in place
Houses need maintenance, it’s just a fact of life. Things wear out. But programmers are not alone in creating artifacts without thought for the subsequent fixing of the going wrong of things.

Take a look at this tap. This tap is copper, as you can tell by the oxidation. Inside it is a washer that, as a function of how many times it’s been opened and closed, now needs replacing. This is normally a simple matter of turning off the water supply to the house, unscrewing the tap body, popping out the old washer and slipping in a new one. But if the plumber or whomever followed in their footsteps decided to make things more watertight by the liberal application of silicon sealant, you’re in for some fun times digging it all out so as to be able to get a spanner onto the bastard of a thing.

The plumbing all through my spacious bathroom continues in a similar vein.

One of the shower taps can’t be removed with a spanner because it’s too deeply recessed into the wall. So deeply recessed that the tap had to be extended out so that the cover could screw on. But rather than extend the tap out via a pipe extension, the tap was extended out with a thread extension. So, joy of joys, I can’t change the cold water washer.

Part of the house maintenance was to install a Residual Current Device, a saftey switch. This protection extends to the spa bath’s pump, which is how we found out the pump has a leakage problem – switch the pump on, and the whole house is plunged into darkness. Should be a simple matter of locating the pump, determining where the unit has degregated, and replacing it. If, say, it was externally mounted. Which it isn’t. I believe it’s mounted under our bathtub, in the cavity between the tub and the wall. There is no way to access this area, not via a removable panel or anything of the ilk – the whole lot has been tiled in. Which tile should I remove to get to the unit? The left hand side or the right? No one knows. Naturally, there are no spare tiles to replace any that get broken in the search. For all I know, the pump may be under the floorboards, but the bathroom’s just about as far as you can get from the underhouse access trapdoor, and I haven’t gotten up the courage to go looking for it yet. If the pump’s not under there, I hope there is under-floor wiring that will give a hint as to the location of the pump – but I’m not holding my breath.

What home maintenance nightmares have you seen as a function of poor design?

Warning!

Warning in the custom configuration options of a setup program:

This component is an essential part of the application. If it is not installed, the application will not run properly

Well if that’s the case, why even give me the option of not installing it?!

System capacity planning for major incidents

Transport for London web siteThe terrible events in London overnight do have some relevance to us as humble IT workers. While there are many critical jobs performed in such situations by the emergency services, communications and other systems are also important.

Obviously top of the pile in this respect are the systems dealing with the emergency services themselves: their communications and despatch systems — and we know that mobile phone networks were affected by the chaos. A few notches down, but growing more significant, are the web sites (and background systems that feed them) to inform the public.

While the BBC News web site seemed to generally cope as events unfolded (I’m sure they’re well-versed at this kind of incident), their live video and audio streams were swamped. Likewise CNN responded okay, though ITN was sluggish. The Transport For London site didn’t respond for some time, before they switched to a plainer, less server-intensive basic information page.

Last week Connex in Melbourne suffered a shutdown, and similarly, their web site didn’t cope. While most disruptions are also communicated to SMS subscribers, the shutdown itself was caused by problems with the same systems used for sending out the alerts. Melbourne’s public transport umbrella site Metlink was responding, but the problem there was a lack of updates.

As the web becomes more pervasive, and media outlets also use it to gather information, capacity planning for peak demand becomes important. Obviously no organisation wants to spend up big on servers that never get used, but for mass communication of detailed information, the web is cheaper than employing operators or even installing masses of phone lines, and will play an increasing role in keeping the general public informed of events.

Winhelp vs HTMLHelp

Popup helpI know the move from the ol’ Winhelp to HTML Help was meant to be a good thing (and at the time made my life easier, as I could re-use HTML formatted text more easily), but the loss of the very handy “What Is?” help originally trumpeted in Win95 is a shame.

Nowadays if you click the question mark on Word 2003’s options screen, for instance, it just chucks you onto a help page which covers the entire dialog. Doesn’t even open the bit that talks about the tab you were on. They really should have ensured that all the functionality of Winhelp 4 (that fine granularity of context-senstivity) was available in HTMLHelp. (Is it? Did the Word 2003 people just get lazy?)

In fact, I reckon what they should have done was improve the help development tools, but leave the underlying technology alone. Winhelp4 worked well for users, but its authoring was a real pain. That’s why tools like RoboHelp won sales. If MS could have come up with a way of easily developing your help in HTML, but having it compile into Winhelp4, they would have been onto a winner. In the days before everyone had IE, it would have got around the issues with poor Win95 users having to install HTMLHelp (and thus, IE 3+), and suffering the performance hit of having to load up the browser just to look at the help.

Of course, at the time MS would have been trying to entrench IE’s hold on every desktop. Which I guess explains why they did it their way.

Visio and database creation

For quite a while I used Visio 2000 Enterprise Edition to design database schemas, and then have it create and update the tables. Admittedly the Visio 2000 interface is a little cumbersome for such things: it’s overzealous on its checking before you can update the database, and just try and delete a relationship without the sky falling on your head — it somehow thinks some kind of underlying link is still there, and if there’s anything wrong with it, it refuses to play ball. But when it behaves, it’s an excellent timesaver.

The other week I upgraded to Visio 2003 Professional Edition. Somewhere between 2000 and 2003 they’ve scrapped the Enterprise Edition, and although Microsoft don’t specify it in their literature comparing editions and versions, gone too is the database creation stuff. Apparently they’ve moved that functionality into Visual Studio Enterprise Architect — which Joel On Software describes as the super expensive “Enterprise Architect” edition at the top of the line that hardly anyone ever buys; it’s only there to make the other prices look reasonable by comparison. Great.

In Visio 2003 you can still draw database designs, or even generate them from existing databases, but there’s no way to create the DDL (SQL) for them, or update/create the databases themselves. I spent a couple of hours searching vainly through the Visio menus (the “Database” one is particularly deceptive) looking for such options, but couldn’t find them. I did find stuff pertaining to outputting a bunch of data describing my database diagram, but nothing would let me create the database I’d meticulously designed, or even print out a list of the fields and their types and sizes.

I have Visual Studio 2003, but for various reasons it’s the Professional Edition. So I couldn’t get my lovely design into the waiting and ready Oracle database. On the Visio 2003 Save As, it lets you choose “Visio 2002”. I wondered if by some fluke Visio 2000 would read a 2002 format. So I saved it, removed Visio 2003, installed Visio 2000 and tried to load it up.

Eureka, it worked. There was some further messing with it to get around a relationship on the database that was causing an error, and which I eventually decided I wanted to delete (an impossibility in Visio 2000 — see above) but eventually I got my DDL and indeed managed to create my glorious Oracle database.

But really, it shouldn’t be this hard.

Money

It’s a few months old, but this article is a great read — telling the story of (some of) the history of Microsoft Money.

During the heady dot-com days, when all reason was tossed to the wind, Money’s success was measured against the same metrics that other MSN properties (read: “websites”) used.

Metrics like minutes viewed per month. Like ad revenue. Like click-through. Stickiness. I am not making this up. I sat through meetings where we were asked to research ways in which to increase the amount of time that users spent in Money. Increase the amount of time!