Wednesday, March 29, 2006

Episode 24: Code Review

I hate it when the Boss starts talking about best practices in software engineering. He thinks it makes him sound like he knows what he's talking about. We think it makes him sound like he's been bought lunch by a software vendor or he wandered onto a techie web site whilst looking for smut. This time he's decided that code reviews are exactly what we need. I explain patiently that code reviews were tried by the Boss before him and failed, but he's not convinced. Even when I explain that the Boss before him was carried out of the building by paramedics he's adamant.

So, here I am, sitting in an unfamiliar office, surrounded by unfamiliar people, working on unfamiliar projects. I hate having to come upstairs. I'm sitting with Derek, a project leader, and Megan, one of his team. They look as happy as I do. I've been here for five minutes and so far the we've discussed the possibility of rain six times and the state of the roads four times.

The Boss arrives finally. A big hearty grin on his face. Yep, it has the desired effect of instantly bonding us as a team.

'This should definitely not be a confrontational meeting,' he announces. 'This is about swapping experiences… learning from each other…fruitful cross-pollination…'

'I thought it was about looking at code,' Megan interrupts two minutes later.

'It is, it is,' the Boss assures her. 'But in the process of sharing code we can learn from each other, pass on the benefits of previous experience. It's about process improvement. It's about…'

'…time we started,' I suggest.

The Boss looks deflated. I guess there's at least another ten minutes of verbiage that he's got lined up.

'Agreed,' Derek adds helpfully. 'We've only got this room booked for another forty-five minutes.'

'Yes, good point. So, let's just dive in,' the Boss says excitedly.

Megan, Derek and I all turn towards him and wait.

'Aren't we starting?'

'We are,' I point out.

'You don't think I should sit in?' he asks hopefully.

Vigorous shaking of heads on our side. 'To be honest,' I tell him gently, 'it's likely to be a bit technical.'

'It's Java code,' Derek adds.

'Twenty pages of it,' Megan chimes in.

And then I deliver the killer blow. 'There are no pictures.'

The Boss looks frightened now. 'Not even a diagram?'

'No,' I tell him. 'We decided that PowerPoint was banned from code reviews. The code needs to speak for itself.'

Nods all round from our side of the table.

'Perhaps I'll give this one a miss,' the Boss finally concedes. 'My Java's a bit rusty to tell the truth.'

'Well,' I tell the others once the Boss has gone, 'if we ever need to do a code review on a three line DOS batch file we'll know who to call.'


Twenty minutes later I'm knee deep in code and struggling. Derek's decided that he doesn't need to sit through another boring meeting, and once Megan is happy that I'm not about to knife her in the back he disappears. Megan explains that the code I'm looking at was part of a maintenance release on an existing product. It's part of the start-up code but the complexity of it is way over the top.

'So,' I say, 'let me get this right. You've got a splash screen and a progress bar and this bit of code is spawned to a separate thread to grab the environment details. Right?'

Megan nods.

'And there's a settings file which contains everything you need. Right?'

Another nod. 'It's an XML file stored in the user's settings directory.'

'So you grab the file, check that it's well-formed, validate against a schema and then transform the contents into text.'

'We store the XSLT file with the program code.'

'And you check that for well formedness and validity as well I see.'

'Can't be too careful,' she says.

'And then, once you've got the transformed text you read a set of simple properties and feed these back to the rest of the application.'

'Yep.'

'The code's spot on,' I remark.

Megan blushes. 'Well, I admit I did clean it up a bit yesterday.'

'Good use of comments.'

'Thanks. I added those this morning.'

'But you'll delete them after this meeting?'

She nods. 'Buggered if I'm going to maintain them.'

'There is just one thing…'

'Yes?'

'You don't think it's a bit over-engineered?'

'Absolutely. All it needs is a two line properties file. All this extra stuff is way too much.'

'So why do it the hard way?'

'Because we've been told that XML is the company standard for all configuration files. Even when we only need a couple of properties we've got to wrap them in XML.'

'But that still leaves a lot of extra complexity in what you've coded.'

'That's another spin-off from a company policy they're trialling with our team.'

'What's that?'

'Productivity's being measured in lines of code. The more lines we code the more productive we are.'

I ponder on this for a few seconds. 'There is one thing that I think could improve your code,' I tell her finally. 'The XSL file, it's not likely to change very much is it?'

'No, not really.'

'Then why don't you create the file in code, spool it out at run-time and then read it back when you do the transform.'

She nods thoughtfully. 'I hadn't thought of that,' she admits.

'And while you're at it, why use a transform at all? I'm sure you could knock up your own custom XML parser class…'

'Thanks, I'll do that.'

'You see,' I tell her, 'these code reviews really do work. Experience being passed on to a new generation. Best practices here we come. At least until they figure out that lines of code is the crappest measure known to human-kind.'

Thursday, March 23, 2006

Episode 23: Diversity Training

I know it's going to be bad when the lovely Pam, from HR, apologies in advance. It is, she whispers, part of the big push into government and local authority contracts. Diversity training is a must, Sir Arthur Minton is insisting on it and without some evidence that we've made some moves on it there's no chance of those big bucks government IT disasters (sorry, contracts), coming our way.

So, here we are, me, my team and Pam all sitting and listening to our diversity trainer Mostyn Bostyn-Clarke. He's 40ish, well-spoken, well-groomed and into the 10th minute of introducing himself. After the nasty incident with the motivational speaker Pam has made all of us promise to behave. Which we are. Most of us are still awake even.

Finally, after the longest introduction any of us have ever heard, Mostyn pauses for breath. 'Any questions?' he asks.

Rice raises a hand. Pam looks anxious already. 'So, do you actually work for the civil service?' he asks politely.

Pam looks relieved.

'No,' Mostyn tells us. 'I'm an independent contractor hired by DiverseConsult to deliver hands on training to organisations in need of sensitivity training and consultancy.'

Another hand goes up. This time it's Colin. 'Does that mean that DiverseConsult are a government department.'

Mostyn smiles at us pityingly. 'No, of course not. DiverseConsult are sub-contracted to UK Diversity Training, which is based in Boston.'

'I used to live in Boston,' Colin tells us. 'But then I moved across to Skegness for a while and…'

Mostyn cuts him short. 'Not Boston in Lincolnshire, Boston in Massachusetts.'

'So, UK Diversity Training is an American company?' Rice asks.

Mostyn nods. 'And before you ask, they're not part of the civil service either.'

We all look confused so Pam does the decent thing and asks the question for us. 'So do any of these companies or organisations have anything to do with the civil service?'

'Not directly. You see we're all approved suppliers of sensitivity training, so in a sense we're approved by the civil service for helping people in your position tackle your institutional prejudices.'

'How do you know we've got any?' asks Kevin.

Mostyn does his pitying smile again. 'You have,' he informs us all, 'and that's what we'll discover once we start. Which we ought to be getting on with.'

'One more question,' I say. 'Did Sir Arthur Minton ever sit on the committee that approved these suppliers?'

Mostyn's smile wavers for a second. 'Actually, I think he might have,' he admits.

'And is he connected to UK Diversity Training?'

Pam is the one who answers. 'I think he's on the board of the parent company, based in the Cayman Islands I believe…'


Four long hours later and patience is wearing very thin. We've listened to Mostyn droning on for what seems to be forever. Any time that one of us makes a comment we're picked up for using culturally loaded terms, cultural insensitivity or one or more different and nasty isms. It's got to the point where no one is willing to say anything in case we're condescended to, preached at or attacked.

It's late into the afternoon and Mostyn has reduced us to absolute dumb silence. We have no opinions, no comments, nothing. And it's getting him worked up. He wants blood, lots of it.

'And look,' he shouts, 'look at this vile and obnoxious document! I've never seen such a concoction of racist, sexist, ageist language in all my time. It's concrete evidence that your organisation is institutionally racist, sexist and ageist.'

He's so busy waving the document that none of us can see what the offending article is.

Pam, who looks visibly shocked now, asks to see what it is. For a minute I hope that it's not one of Kevin's creative masterpieces (like his novel the Sperminator).

'It's one of your project documents,' Mostyn announces. 'The Dynamic Mail Filterng and Archiving System, to be exact.'

We're all stunned into silence. It's a technical document. How the hell can that be full of racist, sexist or ageist language?

'Er, can you give us some examples of this horrible language,' I finally venture.

Mostyn is beside himself now. 'It's full of it,' he insists. 'For example, it's full of talk about blacklists and whitelists. Now, if that isn't institutional racism what is it?'

'But those are generally accepted technical terms used when filtering spam. It doesn't refer to a particular race or ethnic group,' Alison explains, 'it refers to spam email addresses versus safe email addresses.'

'But why is black bad and white good?' Mostyn demands. 'They're value judgements. And look at this, why does it say here that members of the blacklist have a value of 0, and members of the whitelist have a value of 1? Why is the whitelist worth 100% more than blacklist?'

'Actually 100% of zero is zero,' Rice points out.

'Don't try and use logic to avoid the issue,' Mostyn screams, his eyes starting to bulge dangerously.

'But we're software developers,' I point out, to murmurs of agreement from the rest of the team. 'Our software uses the blacklists and whitelists that our mail admin people have created. They maintain the list, we just use it.'

'Then they're racists!' Mostyn declares, his nostrils flared aggressively. Spittle flecks the corners of his mouth. Sweat furrows his angry brow.

'Joe,' Pam asks me, 'who is it that's created these lists?'

'It's Kanye Nju Bowi,' I reply. 'But he's in Ghana for a couple of weeks to see his folks. I'm sure when he gets back you can spend some time with him to get him culturally trained in dealing with race issues.'

Mostyn is momentarily speechless. 'But what about the rampant sexism?' he demands, switching target.

'Examples?' we ask in unison.

'It's here,' he tells us, holding the same document. 'In the appendix. What's this Dolly Bird system? The name alone is demeaning to women.'

Pam looks shocked again. 'Dolly Bird? Joe, what's this about?'

Alison grins. 'That's my idea,' she explains. 'Dolly is a name of a piece of software to clone disk images. It's a way of backing up disks full of files. The name comes from Dolly the sheep; the one that was cloned. Bird is just the name of some software I wrote that makes use of the Dolly system. It stands for Backup, Information, Records and Data. As I'm the one who wrote it I must be guilty of demeaning myself. But I can tell you it's not half as demeaning as listening to this tripe.'

Mostyn looks stunned. 'But this document is pornographic in its content,' he insists, but somehow he's sounding less confident.

'Examples?'

'It's just full of suggestive sexual content. Master/Slave dicks, Client/Server relationships, it's just one long list of sexual innuendoes.'

'Master/Slave dicks?' Pam asks.

'Did I say that?' Mostyn asks. 'I meant dicks not disks. Sorry. Dicks not disks. No, I mean disks. Not dicks at all. No. Sorry, it was mention of Apache Struts that threw me there.'

We all look at him suspiciously. 'Come on,' he insists, 'tell me that the name doesn't conjure up certain images…'

'Such as?' Pam asks.

'You know, Red Indians. Strutting around suggestively…'

'I think they're called Native Americans,' Rice tells him.

Alison starts giggling. She's looking at her PDA. Very generously she passes it around. It takes a second to get to me but it's worth the wait. There on the screen is a web page that features dear Mostyn, wearing a Stetson and not much else, on his hands and knees and looking up pleadingly at another man sporting a Native American headdress and not much else. The pages that follow explain in graphic detail what images the phrases Apache Struts, Master/Slave and Client/Server mean to Mostyn.

The session ends quickly after that. Mostyn tells Pam that we're a very sensitive and culturally aware team and that he'd clearly not understood the technical content of our documents. After that he's off, out of the building as quickly as he can go.

We're just sorry for the next bunch who have to go through the same rigmarole as we do.

Monday, March 20, 2006

Episode 22: Smelly John

I should have guessed that something was up when the Boss offered to buy me lunch. The warning signs were all there: big smiles, good humour, generosity. But I missed it and one meal in a curry-house and a round of drinks and I was putty in his hands. I know, I'm cheap. It scares me sometimes just how cheap I am, but there you go.

So, there I am at the end of the meal agreeing to do some work for Smelly John. The Boss doesn't actually refer to his brother-in-law in those terms, but he doesn't dispute the description. Smelly John is something of an entrepreneur, who has managed to create a small business empire that spans his favourite interests: small rodents and beer. He breeds guinea pigs, chinchillas and various fancy rats which he sells to collectors. He also brews real ale which he sells to various pubs and direct to real ale aficionados. Add to the combination of rodents and real ale his own pungent body odours and the name Smelly John is an understatement.

Anyway, in the past I've been stupid enough to agree to write software to run his businesses. He coughed up the cash quickly enough, along with a barrel of Old Frogwangle, one of his most potent of beers. It tasted like something the guinea pigs had been bathing in and the effect was lethal. Since then I've not wanted anything to do with Smelly John and his ventures at all.

The Boss tells me that Smelly John is saying that he's got so much information on customers and suppliers that the software I knocked up for him is struggling to cope. It's slowing down just when he's gearing up to expand. I don't really want to do it so I quote some ridiculous amount of money and insist that the machine is delivered to me so that I don't have to visit Smelly John's place at all. The Boss raises his eyebrows when I quote my price but promises to report back later.

Ten minutes later Smelly John's agreed the money and the machine is on the way over to my house so that I can work on it at the weekend. Bollocks.


I start by disinfecting Smelly John's machine, though there's still a nasty smell that lingers. Booting up takes ages, the minutes tick by and it's nothing to do with any of my software. This is good…

I spend the first thirty minutes removing viruses, trojans, bots, spyware, adware and other nasties. I also uninstall the anti-virus software that's more than a year out of date and replace it with something that's current and easy to use. Also install a personal firewall and some spyware removal software.

Rebooting is much, much faster, but still not fast enough. So the next step is to look at the hard disk to see what I can find. And the first thing is that he doesn't have much in the way of hard disk left. A quick scan shows thousands of orphaned temporary files, unwanted software and other assorted dross. There's also a huge internet cache folder. I take a quick look at the latter and find that Smelly John's interest in breeding isn't limited to guinea pigs and chinchillas. I archive some of the more interesting files and then zap everything.

The machine is booting up much faster now. Performance is almost acceptable. I still haven't looked at my software yet, but I know that it'll work better already.

I take a look at the data directory and find that it's stuffed full of back-up files. A year earlier he'd been scared about losing his files, so I'd talked him through using copy and paste to make backups of the database. And he's been following those instructions for a year. Unfortunately he's been taking backups of the backup file, again and again and again. I figure that nobody needs a hundred copies of the same file. I zap all the crap and create a simple batch file that just zips and copies the right file to the right place.

Next I look at his Windows settings and tweak a few of those. Booting up now is fast and there's lots of free disk space.

Still haven't looked at my software. Before I do I upgrade to the latest Java run-time. He's running on something elderly and relatively slow compared to the latest.

Now, finally, I load up the software. The splash screen is there instantly and the software is up and running fast. I quickly run through some interactions and performance is very snappy.

Now it's time to do some work on the software itself. I load up the source code, up the version number and then recompile. Programming finished.

I reboot and run the program again. The new version number is there on the splash screen, prominently displayed.

I shut down and decide to wait until Monday before I return the machine, and updated software, to Smelly John. In the mean time I just need to work out how to disinfect the large wodge of cash that he's paid me.

Thursday, March 16, 2006

Episode 21: Working From Home

6.45am: Years of routine mean I wake up at 6.45 am on the dot, even when I'm working at home (for the first time in months) and there's no alarm clock belching electronically into my ears. Get up automatically and go downstairs to make tea for me and Mrs Bloggs, who's not working at home today, unfortunately.

7.00am: On my way back up to the bedroom, with two cups of tea, decide to switch my PC on. Once it's booted up it makes sense to check the news and travel reports. Fire up Firefox and start surfing.

8.00am: Finish reading the article on JPython versus Groovy. Close down all twelve tabs of Firefox. Leave downloads on in the background. Realise that tea is ice cold. Back to the kitchen.

8.15am: Mrs Bloggs in a foul mood because she's going to be late for work. No time to drink her tea. Leaves the house reeling a long list of chores to be done that day. Makes me repeat them out loud so that I won't forget: put a wash on, empty dish washer, book table at her favourite restaurant for dinner tonight…

8.16am: Check on progress of downloads. Fire up Firefox to see what's new at TechBookReport, Newsforge, Slashdot, Artima, Java Today…

9.00am: Time to dial-in to the office. Fire up the VPN client. Nothing doing. Close it and try again. Still nothing doing. Check properties and settings. Realise that there was an email last week about an update to our VPN software. Can't dial-in to get the email. Change some settings anyway. Check current state of network settings: IP address, subnet mask, gateway address etc. Lose internet connection.

9.45am: Internet connection back on. Remember that we can use web access to Outlook now. Works on the sixteenth attempt. Waiting while folders synchronise.

10.15am: Find the relevant email in only five minutes. Skip the instructions and hit the download link. New VPN client downloaded. Install fails and reboots machine.

10.50am: Repeat process of logging into email via Firefox and this time read the instructions. Print page and then click on the alternative download link.

11:20am: VPN connection to work finally established. Realise I've not had breakfast. Make a flask of coffee and bring cornflakes, bowl and milk back to my machine. Load up Outlook and scroll through emails. Kill all the spam that's made it through the filters. Kill all the emails that I don't like the look and which I can reasonably claim to have been filtered as spam. Read all the technical newsletters, jokes and office gossip. Look at the rest of the emails and flag those that I need to look at, respond quickly where I can and decide which ones to really work on today.

1.15pm: Lunch time. Have more cornflakes and another cup of coffee. Flask almost empty. Decide to switch to tea. Go to the kitchen, fill kettle, grab tea bags and milk and take them back to my machine.

2.30pm: Get an email from Kevin. He's decided that his novel, The Sperminator, is unpublishable. I resist telling him that it's more likely to win him a prison sentence than a publisher. So, he's putting aside the 115 chapters he's written and is starting on something commercial. It's a story about a young wizard starting life at a school for wizards. The boy is called Parry Hotter and the school is called Bogwarts. What do I think? I ask him what the book's called. He mails back and says that he sees it as a series and is open to suggestion as to titles.

3.30pm: Having trouble sorting out a subtle bug in some Java code. So far it's defeated everyone who's looked at it. Decide that the code is so impenetrable that we'll be better off writing the class from scratch. Look to check if there are any unit tests for it but can't find any. Draft an email to the rest of the team pointing out that we need to create tests for every bit of code in production. Draft an email to Kevin with some book titles: Parry Hotter Gobs In The Fire; Parry Hotter and the Chamberpot of Secrets; Parry Hotter and the Pensioner of Aberdeen; Parry Hotter Orders a Pizza; Parry Hotter and the Half-price Prints.

3.31pm: Kevin responds to my email. He's deliriously happy. He's glad that I understand him so well. I swear if I was in the office he'd be wanting to snog me. Decide that he can rewrite that class seeing as he's in such a good mood.

5.00pm: Get an email from the boss wanting to know about one of our internal projects. He's been looking at the time sheets and sees that a lot of time has been booked to the Sue Doc project. Who is Sue and what is the problem she's been having with documents?

5.30pm: Write a long and boring email about a user called Trevor who needs a way of sorting and storing complex legal documents relating to intellectual property issues. These are letters threatening to sue people who infringe our patents. Because of changes in the law following Enron and Worldcon there are compliance penalties for those companies who fail to keep an archive trail. The email is so boring I need to make another flask of coffee to keep me awake. Send the email to the boss. Then draft an email to the rest of the team to tell them to stop spending so much time working on the Sudoku server and client system we've knocked up.

6.15pm: Mrs Bloggs arrives. Still in a foul mood. Demands to know why I'm not dressed yet. Not impressed with the cornflakes all over the floor. Asks about the list of chores. Not impressed when I tell her what a hectic day it's been and that I was on the phone for hours keeping the company running single-handed.

6.30pm: Mrs Bloggs decides that she's eating out whether I've booked a table or not. I've got ten minutes to get washed, dressed and ready to go.

6.31pm: Close the VPN connection to work. Fire up Firefox and decide to catch up on the news before I switch the machine off…

6.45pm: Door slams and Mrs Bloggs is gone. Realise there are still some cornflakes left in the box. Decide to check out TechBookReport, Newsforge, Slashdot…

Tuesday, March 14, 2006

Episode 20: Guide To xWare

Looks like cost-cutting is still on the agenda. After our last little bit of a spat on open sauce I thought things would go quiet, but apparently not. I get copied on an email from Paul, our CFO, to the Boss, asking about our software purchasing policy. Particularly with respect to shareware. The Boss corrects him by saying that open source is freeware not shareware, except when it's not. Or something along those lines. It's clear neither of them has a clue. They respond to my corrections with a request that I document the different forms of software licensing. So, ten cups of coffee and a cheese sandwich later, here's the Joe Bloggs 'Guide To xWare'.

Hardware - The bits of equipment that usually require electricity to make them work. Examples of hardware include hammers, nails and computers. Don't get these confused. While a computer can be used to hammer a nail in, using a hammer to work out your expenses is not worth the effort, unless the hammer can be used as a negotiating instrument.

Software - The stuff you need to make the computer hardware do something, anything. Software is mostly written by programmers or by other software. It's called software mainly to differentiate it from hardware (which is called hard because it hurts when you stub your toe on it).

Firmware - Software which stands up for itself. It lives in bits of hardware so it's harder to get to it. Usually it's embedded in a chip and must be updated using a special process that involves rendering your equipment useless when it fails (as it often does).

Freeware - Software that is copyrighted and often has strict licensing conditions attached though it does not have a price (i.e. it's free of charge). No source code is supplied. Called freeware because when you realise it doesn't do what you want you are free to delete and look for something else.

Vapourware - Software that is promised endlessly and yet never materialises. With vapourware the bigger the promise, the louder the noise, the more successful it becomes. The primary purposes of vapourware are to create publicity, look good in corporate brochures and to garnish a CV. Some organisations make the mistake of attempting to make vapourware real but this leads to disappointment all round, so is best avoided if possible.

Bloatware - Software that is so packed full of functions and features that it is impossible to work out how to do even the simplest tasks. Good examples of bloatware accept the complexity and add to it by building wizards, helpful interfaces and yet more layers of software. Called bloatware because the user gets so sick of it they feel fit to burst.

Shareware - Also called 'try before you buy', this is software that is copyrighted and usually does not supply the source code. You are free to try the software, (sometimes for a strictly defined period only), and then, once you are happy, you are morally obliged to pay for it. Relying on the user's ethics is risky, so some shareware authors have resorted to reducing the functionality, adding guilt-tripping messages (nagware) and sometimes electrocuting and killing users who don't pay.

Sweatware - Software that someone is sweating blood over. Normally a work in progress, it bears all the hallmarks of a labour of love that's slowly turned to hate. Source code and suicide notes are often provided.

Adware - Free software that provides a useful set of functions but which is supported by the use of advertisements. Once the user is hooked, and the adverts go from cute to irritating to angina-inducing, an advert-free product can be purchased at a price.

Spyware - Software, (not always free), that watches what your are doing and regularly phones home with the details. Blocking spyware is a niche hobby that is taking over from over-clocking as the work displacement activity of choice for technically aware users. In fact adding spyware functionality to your product is now a good move if you are interested in acquiring a dedicated user-base.

Blogware - Software that is the subject of a regular blog. Licensing, cost and ease of use are not interesting at all. The successful blogware product must be preceded by several months (or years) of blogs that mention design patterns, programming languages, frameworks, middleware and pizza.

Open source - Software that is provided with the source code and which is licensed under one of the 432 different open source licences currently available. A successful open source product should provide it's own unique licence that is subtly different from every other open source licence (no easy task). Most of open source software is supplied at minimal cost or can be freely downloaded. Open source is not freeware or shareware.

Monday, March 13, 2006

Episode 19: VIP Visitors

I get the phone call to go upstairs to meet the Boss five minutes after Rice has a quiet word and just two minutes after the results of a quick Google roll off the printer. Sometimes I think employing Rice was a stroke of genius…

As expected I find the Boss with the lovely Pam at his side. They're both waiting pensively and I know enough to shut the door after me when I enter his office. After all we all know what careless talk can do.

Pam smiles sweetly but her attempt at chit-chat is rudely cut off by the Boss clearing his throat. He can do this on an industrial scale and I make a note to warn health and safety about the noise level.

'Joe,' he begins, 'I've got some important news. I don't want this getting round the building but…'

'We're having a VIP visit some time this afternoon,' I interrupt.

Pam's face drops and the Boss looks suitably deflated.

'How did you…'

'Sir Arthur Minton, our new non-executive member of the board, former politician and friend of government, has decided he wants to visit our charming little site,' I finish.

'It's worse than that,' the Boss moans, 'he wants to drop in on a software development team.'

Pam is shaking her head. 'He tells us he has a special interest in software development.'

I nod sagely. 'Indeed he has,' I agree, passing round some of the output of my Googling. The phrases 'IT', 'fiasco' and 'financial disaster' are arranged prominently in many permutations. Name a government IT disaster and he's had a hand in it. He's cost the British tax payer untold millions. And he's multi-skilled: health, taxation, child benefits - he's been involved in major IT failures in just about every sphere of local and national government.

The one other story that stands out features the only time he ever made an impact in Parliament. He fell down a flight a stairs whilst escorting a party of school kids around the building. He broke a leg, injured a cabinet Minister and made the big news of the day. It was the high point of his political career.

The Boss is primed with the corporate line. 'He's a man of great technical vision,' he intones, managing to keep a straight face.

'I agree. Just look at his thoughts on the subject,' I pass the second lot of pages.

Pam reads out loud: 'There's no future in Windows…The Internet is a passing fad…Object oriented programming will never take off…'

I have to tell them my favourite. 'What about this one "In ten years time all programmers will be redundant and computers will program themselves"'.

'When did he say that?' Pam asks.

'Fifteen years ago.'

'But look at these,' the Boss says, going back to the tales of IT catastrophes.

Pam glances at the headlines again. 'I can see why we fought hard to get him,' she says.

I hesitate then hold back the laugh. She's not joking.

'Don't you see,' she explains, 'he's going to be a real asset. All those contacts, all that inside info…'

'All those contracts we can bid for,' the Boss chimes in.

'So why's he want to come here?' I ask innocently.

'Because he feels he's an IT man and he'd like to meet some of the troops,' Pam tells me, though she sounds as doubtful as I feel.

'And the real reason is?' I persist.

'Photo opportunity. The national IT press will be turning out for this one.'

'Which is why we need to talk to you,' Pam adds pointedly.

'Why?'

'Joe, please, do you best with your people,' she responds. 'We don't want any embarrassing incidents. Please.'

'Such as?'

The Boss looks scathing. 'Like flashing porn on all the screens while the photographers are about. Or letting a fight break out amongst your team...'

'Come on,' I interrupt, 'using hard tabs for code indentation is bound to cause violence…'

'Or all of your people taking a vow of silence and refusing to speak to anybody at all.'

'But we need to concentrate…'

'Please,' Pam flashes those eyes at me.

I try to resist but her smile and those eyes break me down. 'I'll lay down the law,' I whisper.

'Good man,' the Boss tells me, looking relieved.

'Thanks, Joe,' Pam adds huskily. 'We'll both be showing him round. He's expected in an hour. He'll come up here first and then we'll be down after lunch.'


When I get downstairs the office is in ferment.

Alison's in first. 'Will he be bringing Nadya with him?' she demands.

When I look blank I get handed a some more Google results. 'British Peer Marries Hungarian Porn Star' was one that I'd missed. The graphics of Nadya, particularly the girl-on-girl shots, are well, graphic. I decide I need to do my own research on this.

I get to my desk to find an email from Alison with a list of interesting web sites. The note attached informs me that Nadya is her all time favourite adult star. So do I know whether Nadya will be joining him?

Rice wanders over a moment later with another update. Apparently there was more to the broken leg incident in Parliament than was reported in the papers. It looks like our Sir Arthur was indeed escorting a party of visitors to Parliament, a group of sixth-form girls in school uniform. He seems to have been slightly over-friendly and there are rumours that he was pushed down the stairs by them. Hence his rather quick departure from politics to the lucrative world of government IT contracts.

I get another mail from Alison with a picture of Nadya and Arthur on their wedding day. She looks like his sexy grand-daughter. He looks like he's just won the lottery. So, Alison demands, do I know if Nadya is going to be visiting? There are flowers and chocolates on her desk already…

When the black limo pulls up outside we all rush to look out of the window. Alison is deeply disappointed to see no sign of Nadya, but then brightens up when she spies Sir Arthur's very leggy and short-skirted personal assistant.

'Come on,' I tell everybody, 'calm down now. Let's try and keep a lid on things, OK. No fighting, spitting, pulling hair or making farting noises. OK?'

I get a murmur of assent as they all sit back at their desks. I use the time profitably by finding out more about Nadya. The image and movie downloads that Alison sends my way are particularly educational.

We all hear the commotion outside and then all hell breaks loose. There are raised voices, people rushing about, the siren of an ambulance and then a crush of photographers. But no visitors for us. We all rush to the window to see an ambulance rushing Sir Arthur away.

Alison bursts into tears and bins the flowers and starts tucking into the chocolates as the female personal assistant is spirited away in the limo that follows the ambulance.

I take the opportunity to go upstairs to find out what's happened. Pam and the Boss are together in his office. She looks flushed and he looks like he's lost the plot completely.

'What's the story?' I ask.

'He's a dirty old man,' Pam spits angrily.

Having seen the pictures I can't dispute that. 'But what happened?'

'He fell down the stairs,' the Boss informs me. 'Looks like a broken leg.'

Pam looks at the Boss. 'And if he ever touches me again I'll break his other leg,' she promises…

Friday, March 10, 2006

Episode 18: Service Quality

If the tone of the presentation is so upbeat, and the message so positive, how is it that I look around the room and see nothing but boredom on the faces around me? Even the Boss, sitting at the back of the room so that he can keep an eye on the unruly elements at the front, is finding it had to fake enthusiasm. Of course the person delivering the presentation, a very positive young lady from one of the big five US management consultancies, is oblivious to our lack of response. Perhaps it's a language/culture thing. She's a Yank management consultant and most of her audience are English software developers…

The topic is service quality. We are, she informs us, about to become an 'agile service quality enterprise able to leverage the synchronous creative energy of the fully empowered and fully committed work-force going forward into the future'. It's not clear to any of us where we're going forward to, but what the hell, her time is more precious than ours and every minute of it costs us a fortune so we listen in silence.

Across the room I hear the first snore of the morning. It's a low rumble that sounds like a washing machine about to grind to a halt. It gets louder a second later and Rice has to dig Kevin in the ribs to wake him up sharpish.

'You have a question?' Ashley-Jo asks, stopping mid-sentence to stare at Kevin intently.

He looks dazed but her steely blue eyes fix him in place. She's waiting for a question. 'Er…You say that we're moving forward into the future?'

'Correct.'

'But doesn't moving forward imply that it's in the future? I mean you can't move backward into the future, can you?'

Suppressed sniggers all round. Ashley-Jo's smile assumes a certain gritted-teeth quality.

'It's just a figure of speech,' she tells him. 'Is there anything else?'

Kevin looks embarrassed. 'No,' he mumbles apologetically.

Ashley-Jo turns round on her expensive high-heels and continues where she left off. She's telling us what service quality means. It means a lot of things apparently. Like caring, commitment, energy, creativity. Mom and apple pie are surely on the list somewhere.

When she moves on to the next PowerPoint slide I add to my tally of spelling mistakes, grammatical errors and formatting inconsistencies. She's into double figures on all of these. I especially like the sentence 'Quality means not been negrative'. It's a beaut, for sure. I always make sure that me and my team are not been negrative. Not negrativeness oozes from our pores most days. Sometime we've even been positive in our not been negrativeness. I'm glad that quality is high on her agenda as well as ours.

Several dozen slides later, by which point we've had the 'seven deadly sins of poor service quality', the 'six positive virtues of quality', the 'eight principles of the quality enterprise' and four different flavours of quality mission statement, and she's getting to the exciting part. She's about to introduce our company's new 'service quality initiative'. This is what her management consultancy has cooked up for us, at a cost of mega-bucks, (unfortunately quality doesn't involve paying for more powerful servers, new computers for developers, money for training courses, developer recruitment or any salary increases). The tension in the air is palpable. She's been building up to this. Her voice is hushed. We're on the edge of our seats…

'Now that we know what quality is,' she announces, 'it's time to look at how we can deliver it across the enterprise. This is where we have worked with you to create a powerful initiative - a complete program from top to bottom - to help leverage the best of us all to give back the quality that makes us all shine. And this program is called Comet Service'.

We sit in silence and stare at her Comet Service logo up on the screen.

Colin is the first to break the silence. 'Is this anything to do with broken washing machines?' he asks innocently.

'I'm sorry?' Ashley-Jo is bewildered.

Someone at the back of the room calls out that his video came back from repair in a worse state than when it went in. Somebody else had a vacuum cleaner that spewed out more crap than it sucked in. The list of complaints gets louder and louder as the horror stories multiply. Above it all the words 'wouldn't', 'touch and 'barge-pole' can be heard repeated like a mantra

'Hold on! hold on!' she tells us. 'Will somebody please explain?'

'Comet is the name of a high-street electrical retailer in the UK,' I explain. 'They're one of the biggest in the country. They are also well-known for providing crap service. Comet and crap service go hand in hand.'

'When I think of Comet,' she tells us, 'I visualise shooting stars flying through space. It's a thing of wonder and enchantment. It's aspirational.'

'We think of crap customer service, rude staff and technical incompetence. We visualise broken DVD players, unfixable PCs and leaking washing machines. It's not aspirational, it's diabolical.'

She looks at me coldly. 'You guys are kidding, right?'

The Boss stands up. 'It took five technician visits to look at my home cinema system,' he tells us, 'and it was still not working at the end of it. Luckily it was my nephew's birthday last month, so I was able to pass it on to him as a present. They are a shower of shite without a doubt. Comet provides crap service, it's well known.'

Ashley-Jo is not impressed. 'We've worked hard on this initiative,' she tells us all sharply. 'You forget about that other crap. From here on you focus on this initiative. That's what your corporate people want, and that's what they'll get.'

We all nod sheepishly. Looks like the initiative is well named after all. Comet and crap service really are synonymous.


Thursday, March 09, 2006

Episode 17: Retraining

I'm getting worried about Colin. He's getting fidgety. He keeps mumbling to himself. I suspect he's looking for another job. There's a clue in the proxy server web logs - they show that he's spending hours each day trawling job sites. That and the fact that he left fifteen copies of his CV in the printer.

I like Colin. Sure he's a deeply troubled man with a history of substance abuse (chocolate mainly), but he's a veteran with more than twenty years of IT experience. In his time he's worked on some great projects. For a while he was a project lead at IBM working on 'unbreakable computing' - until he was sacked for making it crash all the time. He's good at breaking things, is Colin. Computer hardware, software, marriages, limbs and promises, Colin has broken them all at some point or other. Before joining us he worked at one of the electricity supply companies for six months, which ended when he blacked-out half of the South-East. It lead to a government board of inquiry, where Colin did a star turn and explained that he was only trying to eject a back-up tape from his machine when he brought half the country to its knees.

Still, Colin's an essential part of my team. He's the only one of us who can talk to the Mainframe people. He understands COBOL, Rexx, JCL and DB2 address spaces. It's scary stuff. If I need anything doing on the Mainframe I just need to mention that Colin will be writing some code and I get instant results. They can still remember the last time he was allowed to write code on one of their boxes.

It's time to be doing my team leadering. I give him a shout and we retire to one of the small meeting rooms for a chat.

'You left these in the printer,' is my opening gambit. I hand over a thick wodge of CVs.

'Thanks,' he mumbles. 'The other lot got printed onto PowerPoint slides by mistake,' he adds.

'Oh?'

'Yeah. They were presented at the monthly finance meeting by mistake.'

'That's a relief,' I assure him.

'Is it?'

'Nobody takes a blind bit of notice of what's presented there,' I say, trying to look on the bright side.

He shakes his head sadly. 'Somebody did. Pam from HR rang me up to tell me that there was a spelling mistake on the first page. It was only my name I got wrong, but still, it's got me worried.'

'Listen, Colin, what's this all about? Really?'

He breathes in deeply. 'I'm feeling like I'm going nowhere. Here I am writing having to write stuff in COBOL when everybody else is doing exciting stuff with Java and .NET and Python and stuff. I don't even get a chance to write Web pages or anything like that. My skills are rusty.'

'COBOL's not cutting edge,' I tell him, 'but we'd be sunk without you. You know that.'

'But I need to feel like I can still grow and get some new skills.'

'Have you looked around to see what you'd like to learn?'

'There's so much. Java would be good. And XML. And maybe some C#. With some subclassing thrown in as well.'

'Subclassing?'

'I like the sound of it,' he admits. 'No idea what it means but I heard Alison and Kev arguing about it yesterday. And design patterns and regular expressions. Oh, and some web development. Possibly with some more on subclassing.'

'That's a big shopping list.'

He nods. 'Come on, Joe, give me a week.'

'A week for all that? Look, Colin, let me see what I can give you, OK? You won't get everything on the list, but I'll find something useful that you can do and that'll update that skill set. OK?'

He grins as he walks out of the room. I moan inwardly. What the hell do I find to give him that keeps him out of trouble and yet gives him a chance to do something new?


A week later and Colin's walking on air. He looks like he's lost five years. He's smiling. The mumbling is barely audible and there are no more CVs appearing at random printers throughout the building. I've given him the perfect project. Some of our intranet pages need updating. It means he can learn about CSS, HTML and JavaScript and if he screws up the only people affected are the rest of my team. For him it's an introduction to web design and internet technologies and a whole bunch of stuff that's new.

'I've just published my first set of pages,' Colin calls to me across the office.

I fire up my browser and navigate to the our home page. He's spruced things up a bit. The page looks good until I scroll down to the bottom. There in a big bold font it says 'No animals have been harmed in the production of this web page.' I skip along through half a dozen pages and they're all the same.

My phone rings half a minute later. It's the Boss. 'Joe, our machines have been hacked!' he announces in a voice verging on the hysterical.

'What?'

'Take a look at the company home page,' he urges.

I go to the corporate front page and there, at the bottom of the glossy photos and carefully designed text it says 'No animals have been harmed in the production of this web page.' Shit.

'I'll call you back,' I tell him and put the phone down.

It rings again. It's Pam from HR. 'Joe,' she says breathlessly, 'public relations are on to me. They want us to make a statement. Now.'

'A statement about what?'

'We've got animal liberationists threatening to attack the company because we've been harming animals in the production of our web pages…'

'But that's not what it says…'

'No. Half the pages say no animals were harmed, the rest of the pages make no mention, therefore people are assuming that we are harming animals…'

'But…'

'Joe,' she whispers, 'what are you people doing down there? Tell me the truth, have you been keeping animals down there?'

I put the phone down as a beaming Colin wanders over to me.

'This web development lark is a doddle,' he smiles. 'Now, about some subclassing…'




No animals have been harmed in the production of this web page



Wednesday, March 08, 2006

Episode 16: On-site Customer - Part 2

First thing on Monday morning I bump into Pam from HR. I haven't spoken to her since she foisted a millionaire's moronic off-spring on us as part of a 'community outreach' program. We gave the brat a fast internet connection and fifteen gallons of cola for a week. He was happy and the company scored the contract with his dad. Now we're faced with having an on-site customer with us while HR tries to sort out a spat between Stormin Norman and his boss, Beatrix.

Pam looks worried. 'Joe, a word to the wise,' she whispers. 'About Norman…'

'What about him?' I ask suspiciously.

'Well…He's strange.'

I look unimpressed. Is there anybody who works for this company that isn't strange?

'In what way?' I ask.

'You know why he's joining you?'

'He opened his mouth before checking who was behind him?'

'Yes,' she admits doubtfully. 'He told the rest of the office that Beatrix was a blonde air-head who should stick to wearing short skirts and high-heels.'

Yep. I get it now. When Pam said 'strange' she meant 'deeply demented.'

'Beatrix is sixty-five years old,' I say, trying not to picture her in mini-skirt and heels.

Pam nods. 'To be honest I think he's got real problems relating to women.'

'Sounds like his problem's more to do with relating to reality…'

'Take my advice,' Pam whispers, 'sort out a meeting with him this morning. Set out the parameters so you all know what he's there for.'

'It's already organised,' I tell her. 'There's no way I was going to let my team loose on him without…I mean, there's no way I was going to…Oh, you know what I mean.'

'And do a web search on him first…'


The Boss isn't happy. He can't see why I've insisted that we have this meeting with Norman before work starts. The way I see it is that he realises that Boggis is a liability and the less contact he has with him the better.

'He's late,' the Boss mutters impatiently.

We're sitting in a room by the front desk at the entrance to our building. It's a nice room, all frosted glass so that we can see who's coming and going and they can't see us. It's nice and cosy.

'There he is,' I say, pointing towards the car park.

The Boss looks up at the figure winding his way through the parked cars. He's mid-fifties, with a few stray strands of hair carefully combed over a bright pink bald-patch. His suit is a perfect fit, only for someone two sizes smaller than Norman. His face is flushed bright red and he looks slightly in pain.

'Are you sure that's him?' the Boss asks.

Suddenly Norman stops, drops his brief-case and rushes over to the plant display to one side of the building. He's only a few metres from us inside the office. He unzips his trousers and then lets loose. The look of relief on his face is palpable. Boy, did he need a leak.

'He's pissing in our plants…' the Boss whispers, appalled.

'Yep, that's Norman,' I say, grinning. I'm beginning to like him already.

We watch as Norman zips himself up, looks round for something to wipe his hands on and then remembers he's not in a toilet. He carries on shaking his hands dry as he walks into reception and gets pointed our way.

A second later he's with us. He strides in with a smile, reaches across the table and shakes hands with the Boss. When he reaches for me I'm busy making notes. The Boss looks like he's just stepped in something nasty. I notice that as he sits down he's wiping his hand on the side of the chair.

'Norman, I'm Joe Bloggs, you'll be working with me and my team,' I begin. 'We thought we'd just spend thirty minutes talking over what we're going to get out of this exercise.'

'Splendid!' Norman enthuses.

'Yes,' the Boss picks up. 'We wanted to be clear about what your job is going to be and how that fits in with the development process.'

'Splendid!'

The Boss looks disconcerted.

'Let's begin with what your expectations are,' I suggest.

Norman nods sagely. 'Mainly I thought you'd show me what you've done. Then I'll explain why it's no good. Then you'll go away and re-jig things for me. Then I'll realise that what you had the first time wasn't so bad and we'll go back to that. Then we might have a bite to eat and a beer.'

I like this man.

The Boss looks ill. 'Actually, we were being serious,' he says.

'So was I,' Norman tells him, then lets our a huge belly laugh that ends with a fart that threatens to collapse the chair he's sitting on.

The Boss isn't laughing. 'Actually, Mr Boggis, it's as well for you to remember why you're here…'

'Because that old bag Beatrix has got no sense of humour,' Norman responds instantly.

'No,' the Boss tells him testily. 'You are here to provide user input to the development process. You are here to represent the general population who use our software. Your own likes, dislikes and opinions have no place in this process.'

'Splendid!' Norman announces.


I decide to go with gut instinct. Despite what Pam said about Norman's problems with women I decide he'll work with Alison first. She's young, attractive and also has problems relating with women. I guess they'll get on like a house on fire.

I sit at my desk and keep watch while they set to work. At first it's very strained. I can barely hear them mutter to each other. Lots of mutual suspicion on either side. While they get on with it I take the opportunity to do the web search that Pam suggested.

It takes less than a minute to find the 'Norman's Toe Nail Clippings' site. The colours are hideous. Pinks, fluorescent yellows, neon blues. The man has no colour sense whatever. It looks like he's also used every font ever designed. No design sense either. But it's the content that stands out. Page after page of pictures of his toe nail clippings. And there are little notes attached to the pictures. 'Little toe quite sore after cutting. Clippers in need of sharpening. Note that the big toe nail clipping resembles the profile of George W. Bush.'

When I look up I see Norman giggling and Alison smiling. She never smiles. Not at blokes anyway. She hates men almost as much as she loves women.

Later that morning I wander by Alison's desk. They've been working on her document management query application. The screen that started out as slate grey is now shocking pink and the labels are a fluorescent yellow. The font has switched to something that's barely readable. I get a headache just looking at it.

'Normy,' Alison is saying, 'you're so naughty!'

Normy giggles. 'Go on,' he suggests, 'make the text even smaller…Is that the smallest it can go?'

'Er…' I interrupt nervously

'Isn't this great?' Normy suggests.

I shield my eyes to stop the creeping headache. 'Isn't it a bit…'

Alison smirks. 'Yes,' she agrees. 'It's hideous. It's a special screen that Normy's requested.'

I'm confused. 'A special screen?'

'Oh yes,' Norman explains. 'We wouldn't want anything this offensive for the normal users. No, as part of my input I've put in a request for enhanced functionality. I believe we agreed that this was OK.'

'But…'

'And Ali's done a great job on it,' he adds proudly.

'What's it for?' I ask.

'It's a query screen for any user with a login ID of Beatrix,' Normy explains. Then he and Ali start giggling again.

Tuesday, March 07, 2006

Episode 15: On-site Customer

I've been thinking,' the Boss tells me. Alarm bells start going off at this point.

I'm sitting in his office, with a strong cup of coffee and a pile of bug reports that he's asked me in to discuss. Most of these reports are, well, bollocks with a smidgen of crap thrown in to leaven the mixture.

'About what?' I venture finally, realising that stony silence is going to get me nowhere.

'Why don't we get an on-site customer involved?'

'What?'

He looks a little bit alarmed. 'All the best development methodologies recommend…'

'A customer? A customer?'

'It'll help us to…'

'Do you know what you're asking? Do you?' I demand, my voice rising faster than my blood pressure.

'Calm down,' the Boss tells me soothingly. 'It's just an idea.'

'It won't work.'

The Boss smiles. 'Come on, Joe,' he says, 'how can you be so sure? And besides, think of the benefits.'

'Benefits?'

He leans back in his comfy leather chair and adopts that elder statesman expression he normally reserves for the company newsletter or the occasional press release. 'An on-site customer means that the development team can get requirements direct, there's no need to slow things down. It means that the software matches the user expectations rather than what the developer thinks the users want.'

It's my fault. Like an idiot I let him peek over my shoulder while skimming an XP web site. Next thing he'll be trying to get us to pair program again, even though some of my team are still having hospital treatment from the last time we tried it.

'But that's just theory,' I respond.

'No it's not, Joe,' he insists. 'It's industry best-practice now. We just need to get a suitable user in place and he can sit in as part of your development team.'

I'm about to respond when realisation dawns. 'You said he,' I point out.

'Did I?' he says, innocently. 'Sorry, force of habit old man. I meant he or she, obviously.'

'Which he?' I demand.

'I…I…'

'Come on,' I insist, 'who's been lined up for this.'

'Norman Boggis,' the Boss whispers.

'Stormin' Norman Boggis?'

The Boss nods gravely.

'Why?'

'Because it'll be good for our development proc…'

It's my turn to put on a look. I wear my best 'don't bullshit me anymore you odious little toad' face until the Boss falls silent.

'What's the story?' I ask.

'He was caught slagging off his boss behind his back,' the Boss whispers.

'But we all slag our bosses off.'

The Boss looks surprised. 'You do?'

I ignore his hurt. 'So what happened with Stormin' Norman?'

'I told you. He was extremely disparaging about Beatrix behind his back.'

It takes a second. 'You mean she was standing behind him when he let rip?'

'Yep. She, along with every other member of the Business Intelligence team, heard every syllable. Though as I understand things most words he used were low on the syllable count.'

'So now he's being kicked out of the group and in with my lot…'

'Sorry. Once things have cooled down…'

'You mean once one of them leaves the company?'

'Yes.'


'Think of the benefits,' I tell my team.

They look at me askance.

'What benefits might these be?' Alison demands.

'He carries the can when projects over-run, when quality's crap or when we're swallowed up in feature creep,' I explain patiently.

'But doesn't that mean he takes the credit when things are good?' Rice points out.

'True. Which is why he's going to be working with Alison on the new document management system query application.'

Alison's face clouds over. 'That's almost done. It's a good bit of work and…'

'Which is why we have to hand it to Norman. You've made too many decisions on this without proper customer involvement.'

The stunned silence makes me smile. Now they're wearing that 'don't bullshit me you odious little toad' expression.

'So,' I continue. 'Re-do the front screens, make them black and white, drop the colours. Drop the nice fonts and replace them with Courier or something more painful. Get rid of the toolbar. You know the stored procedures on the database? Skip them and use raw SQL. Now, have I missed anything?'

Alison smiles. 'I put in a cache without checking first…'

'Ditch it.'

Kevin raises a hand. 'That combo box to make selection easier…'

Alison smiles. 'I'll ditch it.'

I sit back and ponder. Sometimes my team just know how to work together like pros…

Monday, March 06, 2006

Episode 14: Community Outreach

Pam, from HR, is smiling at me hopefully. She's trying hard to be persuasive. I'm doing my best to resist.

'Come on, Joe,' she says, 'it's part of our corporate community outreach scheme. It'll make you look good upstairs.'

'Nothing can make me look good upstairs,' I mumble.

'This will,' she promises. 'What can go wrong? You get a bright school-kid in the team for a week. He's happy, the school is happy, the Boss will be happy…'

The pleading look in her eyes suggests that she'll be happy too. 'Alright,' I say, finally relenting. 'Go on, let's get somebody in on work experience. One week only. No more. Not one day.'

'Of course not,' Pam promises. 'The interview's lined up for tomorrow morning…'

'But…'

She gets up to go. 'Thanks, Joe,' she beams. 'I owe you for this.'


On paper this kid is perfect. Into technology, keen to learn, eager to spend a week with a top-flight enterprise development team, or failing that a week with me and my team.

'Now remember,' she tells me sternly, 'he's here to learn about the world of work. That means you can't get him to make tea or coffee for everybody else.'

'But…'

'He's a kid, so we'll forget about any dress-code issues,' she adds.

'But…'

'And he's only a kid, so go easy on the technical questions.'

'So what can I ask him?' I ask, feeling even more like I've let her trample all over me.

'Ask him about school, computers, games that kind of thing.'

'He's already thirty minutes late,' I point out.

'Never mind,' Pam says. 'Let's not mention it, OK?'

I don't get a chance to respond because there's a knock at the door and then the boy walks in. Actually walk is not the right word, it sounds too active. He kind of slinks in, feet dragging, shapeless jeans with the crutch dangling at knee-height, Simpsons boxer shorts well on display, a bandanna on his head, fake gold around his neck, wrists and fingers. He looks like a 5-year old dressing up as a gangsta.

Pam is stunned into silence. He looks around the room vacantly for a moment.

'Yo,' he announces finally, 'like this room for de interview, right?'

'Yes, that's right,' Pam remembers. Her face is smiling but her eyes are still wearing a surprised look.

'That's right, Nathaniel,' I say calmly. 'Please take a seat.'

'No no no no,' he chides me. 'You don't call me dat. See, my homies call me Nate.'

'I see, Nathaniel,' I smile. 'Sorry, I mean Nate. Bad day for public transport?'

He slumps heavily into his seat and then sprawls all over it. I suspect that the poor child's suffering from some bone-wasting disease. 'Huh?'

'The bus,' I suggest, 'running late was it? Or perhaps you had to visit the doctor first?'

He looks confused. 'Dis is about dat work experience, right? Cos I ain't here to chat about doctors an' shit.'

Pam looks alarmed. She smiles. 'I think Joe was just making a joke about the time,' she explains hurriedly.

'What, cos I was like, late?'

'Only thirty minutes,' I say. 'Now then, Nathaniel, tells us why you're interested in computers.'

'Nate. You call me Nate.'

'Of course we will, Nate,' Pam assures him. 'Right, shall we begin?'

'I thought we have already begin,' Nathaniel tells her.

'Yes we have,' I agree. 'You were talking about computers.'

He shakes his head. 'Don't try an' catch me out an' all,' he tells me, grinning. 'You was talking about computers. I was talking about my name.'

'So you were, Nathaniel, my mistake. OK, tell me about computers and why you're interested in them.'

He gives me the evil eye for a second and then decides he'll deign to answer. 'It's like this, see. When Bill Gates invented computers, like when he discovered Microsoft and Xbox an' shit, he got me thinking about things, see? I mean he's like the richest man in the world, right. Like he's earning about a million dollars a year or something, innit. I mean, that's cool and you know, like, I want summa dat. Know what I'm saying?'

Pam nods as though she's following the stream of dribble. 'I understand,' she tells him reassuringly.

'I see. And what about programming,' I ask, 'what makes you interested in that?'

He shrugs. 'I dunno, man. It's like, it's hacking an' shit like that. It's like so cool when my man tap away at the keyboard and breakin' into stuff an' shit. Like in Matrix an' dat.'

'And have you ever hacked into anything?'

Another expressive shrug. 'Like I'm gonna tell you. Yeah, right.'

Pam's grin is starting to look dangerous. Any minute she'll be getting hysterical. Again.

'OK, do you have any programming experience?' I ask.

'I program my mum's phone and she always get's me to sort out the video when dere's a film she wants to record.'

Pam decides to change tack. All of this technical stuff is obviously going nowhere. 'What do you intend to bring to this job, Nate?'

He looks perplexed again. 'Myself, innit.'

'No,' I say, 'I think Pam is asking what you'll be offering us.'

He looks even more confused. 'My work?'

In desperation she reaches for one last question. 'Well Nate, what would you say are your strongest points?'

'My trainers.'

I look into his vacant blue eyes and blame MTV.

Pam gets up, reaches across the table and shakes his hand. 'That's fine, Nate,' she tells him. 'We'll be in touch with your school later today.'

The boy slouches out of the room.

'Goodbye, Nathaniel,' I call after him.

Pam shuts the door before his cussing gets too loud.

'What the…'

'I'm sorry, Joe. But we have to take him.'

'Why?' I demand. There's something deeply dodgy going on.

'Because his father is CFO of Blenkinsop Mouldings, a prospective client.'

'But the boy's a moron.'

She shakes her head. 'A wannabe moron who watches too much TV. Do you really think his parents would pay a fortune getting him to a private school if he was a dumb as he pretends to be?'

I sigh. I guess I'm old and old-fashioned. 'How exactly is this community out-reach?' I ask.

Pam looks at me pityingly. 'Oh Joe,' she sighs, 'we're reaching out to the community of prospective clients. I suggest that you set him something interesting to do next week. Something that can't cause any damage if he does make an attempt at hacking.'

'Fine,' I agree. 'He can work on your HR database…'


Thursday, March 02, 2006

Episode 13: Marketing

I get a bad feeling as soon as the new marketing guy walks into the room. It's not the bright pink shirt, it's not the flashy gold cuff-links or even the Hugh Grant hairstyle and fluttering eye-lashes. No. Any man who can bounce in to a meeting wearing a name badge with 'Tarquin Standish St Hilaire' stamped on it a big bold letters is immediately suspect.

'Hi, Joe!' he announces, rushing across the room to greet me as though congratulating me on the birth of a child. He grabs my hand and shakes it vigorously. I half expect him to land a wet sloppy kiss on my lips or to hand out cigars and brandy.

'Good to meet you at last,' he tells me, finally stepping away as I shrug him off.

So here we are. Me and Tarquin meeting to discuss the internal marketing of software development within the organisation. It's not my idea. I think the Boss was feeling the pressure from some of the MBAs in the company.

'Well,' Tarquin begins, sitting across the table from me. 'I've looked at all the information you forwarded and I think we're on to some winners here.'

'Uh-huh.'

'I'm thinking brochures. Glossies. Full colour. Off-set. None of that cheap inkjet malarkey. What say you?'

I'm thinking I want to go home.

He takes my stunned silence as some kind of assent. 'I know we haven't talked this through yet, but I took the opportunity to knock some samples up. What say we take a look?'

'Uh-huh.'

He's grinning now as he pulls a bundle of colour pages from his tasteful orange and crimson leather portfolio.

'They're cheap ink-jet,' I mumble.

'Haha!! Yes, of course. But these are mock-ups, Joe. We go with the concepts then we can get these done properly. We've got the budget.'

'We have?' I ask. I mean there's no budget for anything else at the moment…

'Sure we have,' Tarquin says then turns all serious. 'It's important that the rest of the business units know exactly what kind of service we provide.'

'But don't they know that through using our software?'

Tarquin is perplexed. 'I suppose they do,' he muses. 'But they need reminding. Anyway, here's the concept: aspirations. What do you think?'

I must be hearing things. I swear he said aspirations.

'What we're selling, Joe, is an aspiration. A lifestyle choice. Our software isn't about who we are now but who we want to be. What say you?'

'How long have you been with the company?'

'Two weeks.'

'Do you know what we do down here in the development group?'

Tarquin's smile is starting to fade. 'Listen, Joe,' he tells me, 'it's important not to get bogged down in details. Let's go for the big picture. Aspirations, that's the concept. Our software is about aspirations.'

'It's about billing systems, workload tracking, database access…'

Tarquin is having none of that. He covers his ears and closes his eyes until I stop.

'Aspirations,' he whispers.

'Order tracking.'

'Aspirations.'

'Expenses forms.'

'There, you see!' he announces. 'Expenses are aspirational.'

'Don't you mean fictional?'

'Whatever. Anyway, let's say we take a look at these mock-ups.'

I'm almost blinded by the colours on the pages he splays out on the table. 'Do I need sunglasses?'

'It's summery, isn't it?'

'I like the bikinis,' I admit, drawn to the naked flesh splashed across the page. Tanned bare flesh is specked with jewels of silver water, in the background the surf crashes to a sandy shore, a couple are necking under the shade of a palm tree. It's idyllic.

'What do you think?' Tarquin asks excitedly.

'I'd like to holiday there,' I admit. 'But I can't see what it's got to do with what we do.'

'It's the Java connection,' Tarquin informs me. 'I was thinking perhaps we could also give free samples of coffee with every brochure or possibly coffee flavoured mouse mats.'

I tear my eyes away from the bikini-clad lovelies and look at the text. I read it out loud for effect: 'Close your eyes and think Java. Think sun, sea, sand, sex and software. Your dreams can come true when you let us craft the Java that you wish for.'

'What do you think?'

'What about offering free holidays as well?'

'Great!! That's it Joe, think big. That's a great idea. Great. What about the other pages?'

There's a page on how we've developed a content management system for the business units to advertise their services right across the group. The title is 'Sex Your Pitch Up', and it's illustrated by pictures of half naked men and women in rubber catsuits. I swear one of them is Tarquin, but with all the rubber it's hard to be sure.

The next page switches tack completely. I have to grit my teeth to stop myself from being physically sick. My stomach turns and my knuckles are white as I hold onto my seat. It's bad. It's real bad. Cuddly puppies. Fluffy kittens. A bunny sitting in a field and chomping away innocently on a carrot. All of this under a headline of 'We do it for the future'.

The final page of the brochure contains a straight list of development services that we provide. The list is fine but each item comes with a little logo that looks like it's been cut and pasted from a clothing catalogue. Excel customisation gets a picture of a man in a silk shirt. Database design gets a leggy woman power dressed for the office.

'What do you think?' asks Tarquin.

'Truly aspiratonal,' I murmur. 'But the logos on the last page…'

'Yes?'

'Not enough bare flesh.'

'You think so?'

'Sure. Make it sexier. Get them down and dirty.'

Tarquin is nodding excitedly. 'Great. All we need now is to get approval and we can go.'

'No need,' I tell him with a smile. 'You're the creative director, if you're happy then we're all happy.'

'And you're happy?'

'Only if you spice it up a bit more. I'll give you some web sites with suitable clip art'

Tarquin leaves the room happy.

But not as happy as I am when he's later escorted from the building after looking for those spicy clip art images.


Wednesday, March 01, 2006

Episode 12: Bug Reports

Looking at the list of bug reports in front of me makes me despair of the human race. Again. What I've got are the reports that tech support have forwarded to my development team 'to fix'. Reading these reports it's clear that it's the users that need fixing… And after they've been fixed maybe we can start on the tech support people …


Software: Expenses System.
Problem Report: The screens on the expenses logging system aren't bright enough.
Tech Support Response: Please be more specific. Which screens are you talking about?
Investigation: Spoke to user. He's complaining because he can't use the software in the dark. He likes to file his expenses last thing at night, just after he's had a shower. Because he's naked he can't put the lights on in case the neighbours call the police again. If the screens were brighter he wouldn't need the lights on, his laptop would provide all the light he'd need.
Action: This is a reasonable enhancement request. Pass to developers for further action.
Software: Order Processing.
Problem Report: System crashed, causing database corruption.
Tech Support Response: Database corruption caused major downtime for other users.
Investigation: System errored because the database server was pushed out of the window during a disagreement in the server support team. Software should be more robust and fail gracefully.
Action: Please improve error trapping.
Software: Order Processing.
Problem Report: Software corrupts transaction records.
Tech Support Response: Please give an example so that we can reproduce the problem.
Investigation: User opened new order. Entered all the fields. Typed 'wanker' into customer comment box. Hit the process button. Realised that the comment would be printed with the invoice. Tried to delete the order but it had gone into processing. Tried to hack into the back end database and failed. Spoke to his mate John who works in the computer shop down his street. Learned about database update queries. Tried to perform an update on the live system. Copied 'wanker' to three hundred other orders in processing. Made to write an apology to three hundred customers and then resigned job. Now on medication.
Action: Please add a filter so that 'wanker' isn't accepted as valid input.
Software: Timesheet System
Problem Report: Please correct spelling mistake
Tech Support Response: Which one?
Investigation: There's an error on the data entry page. The label that should say 'Shift Hours' says 'Shit Hours'. This new user was entering the times he was visiting the toilet. His wages for the month were badly effected and he's not very happy. Having looked at the data he's also got some kind of bowel condition that needs looking at.
Action: Please correct typo.
Software: Installation document for Expenses System
Problem Report: Unclear instructions caused embarrassment
Tech Support Response: Please send ALL the details (and accompanying graphics if available).
Investigation: New employee taken to pub on first day to meet rest of team. Got back mid afternoon and had to install the expenses system. User is slightly dyslexic and also wasn't used to drinking alcohol. Misread 'Open Files' as 'Open Flies'. Did as directed. Misread 'Insert Disk' as something else. Punched in face by outraged colleagues. Escorted from the building by security.
Action: Please make the documentation clearer.
It's a depressing list, and so far there's only one that I'm going to put forward for action
Software: Payroll system
Problem Report: Unable to raise salary
Tech Support Response: What?? Please explain the problem.
Investigation: User suggests enhancing the payroll application with a button to increase salary.
Action: Tech support strongly agree with enhancement request. Please implement as a matter of priority.