Tuesday, February 28, 2006

Episode 11: Re-organisation

Sometimes there's no sanctuary. I seek refuge in the kitchen so that I can escape the religious war that's just flared up again in the office. People are almost coming to blows over whether it's better to indent code using spaces or hard tabs. Alison hates tabs and has just reformatted code that Kevin has spent a week getting to look nice in his editor. It's his code, only he works on it, nobody else even gets to see it. Except that Alison looked over his shoulder and decided to change it so that it matches the style that she likes. I'm tempted to call the ambulance now because we don't have a first-aider in the office anymore (not since we had to sack Big Mike for trying to give mouth-to-mouth to the head of HR when she cut her finger).

Anyway, I'm seeking refuge when Oliver 'Old' MacDonald walks into the kitchen. He's one of the upstairs types, so I figure he's either forgotten that this is the plebs kitchen or he's lost again.

'Joe,' he says jauntily, 'how are things at the coal face?'

'Fine,' I mutter. Then turn back to stare hard at the coffee dribbling through the filter.

He coughs, in case I've forgotten he's there. No response from me. He coughs again. And again.

I snap. 'That's a bad cold you've got there,' I say finally.

He can't work out whether that's a gag or not, so he launches into a speech he's previously prepared. 'Joe,' he says, 'about this off-shoring busines …'

'You mean your plan to sack my development team and farm out their jobs to some poor sods coding for two quid a week in the Sudan?'

'That's not what I was suggesting …'

'So in your proposal document where you said 'we could find the same skill-set for a tenth of the cost in the Sudan', what were you suggesting?'

He swallows hard. 'That was a personal memo to the CEO,' he remembers. 'How did …'

I brush the question aside. 'And where you said 'we will never have to pay compensation to pub owners again,' who were you referring to?'

'But that brawl cost us a fortune to cover-up, especially after the photos were published on that web site …'

'Only because you wouldn't let my team hack into the site to wipe the evidence,' I point out reasonably.

'But Joe that's illegal … Anyway,' he says, realising that I'm still a bit sensitive about the issue, 'the proposal was dropped.'

'Only because we've got a boss who sees sense.'

'Yes, I'd forgotten that his nephew is on your team.'

'So what I can I do for you?' I ask, regretting my decision to even enter into conversation.

'It's been a few months since the last re-organisation,' he begins. 'Things are changing upstairs. Integration projects aren't as sexy as they used to be. Heaven knows I've done my best with web services and XML, but really things are changing fast …'

I see. He's looking for allies now. 'And?'

'There's a rumour that the new organisation chart doesn't have a box on it for the Integration Officer.'

I see. His job isn't on the map anymore. It means he's going to be moved sideways, demoted or is about to be made redundant. 'Mmm. How many projects did you actually kick off last year?'

He thinks long and hard about his answer. 'It depends on what you mean by kicked-off,' he replies eventually.

'None?'

He nods. 'I did some cracking presentations though. The board loved my Web Services Everywhere presentation. I had to fly out to the States twice to deliver it …'

'But isn't that because you left your laptop on the bus the first time?'

'How did you …'

I cut him off there and then. 'So let me get this right,' I say. 'You've done bugger all work again this year. You lost a company laptop and went way over-budget on foreign travel. You recommended getting rid of my team completely. Now you want my support for something.'

He grits his teeth and nods. 'Don't make me grovel,' he whimpers.

I raise my eyebrows a fraction of an inch. It's enough. 'Please Joe,' he implores me. 'This year I'll have some real projects to kick off, and I'll make sure that your people get first pick of the most interesting ones. You get to choose. Name the technology and you can have it. Name the tools and they're yours.'

'Budget constraints?'

'I'll pay out of my own pocket if I have to. Come on, Joe, you know that without me in place your people will be condemned to do life support on systems that are older than they are.'

It's sounding better. 'What specific proposals do you have in mind?'

'I'm thinking that the best form of attack is … er … defence. No, scratch that. I think I need to expand my role not get rid of it. I was thinking that I should put in a proposal that I be promoted to Software/Hardware Integration Technologies Evangelist.'

'You want to appear on the org chart as Oliver MacDonald, SHITE?'

'Shite? Bollocks. Hadn't seen that one. I've just suggested that to Barry on the business development side. Wondered why he sniggered.'

'What about Infrastructure Engineering Integration Officer?'

He shakes his head. 'Doesn't sound corporate enough.'

'OK, let's bung in the word Enterprise as well.'

He shrugs. 'Good enough. Joe, do you think you could make this suggestion to anybody with influence?'

'Leave it with me,' I promise. 'This'll get to the CEO by lunch-time.'

'Thanks, Joe. I won't forget this.'

I grin. 'No, I won't let you,' I say.


It takes two days for the new organisation chart to be published. It's a joy to behold. Old MacDonald has been crowned 'Enterprise Infrastructure Engineering Integration Officer'. And there on the chart, in big bold letters it says 'O MacDonald EIEIO'. To celebrate the team launches into a rousing rendition of the 'Old MacDonald had a farm …'

Monday, February 27, 2006

Episode 10: Motivation

Somebody, somewhere has woken up to the fact that developer morale is low. It's gone beyond rock-bottom and it's still sinking. I get hauled in to meet HR and I'm asked what we do about it. My first suggestion of cash bonuses, (used unmarked notes only), is rejected. My second option of salary increases is rejected. My third suggestion of spending a day team-building in the pub is rejected (we can't afford to be banned from any more pubs, clubs, restaurants or town centres). So what do they come up with? A day with a motivational speaker. Morale plummets when I announce this to the team.

So here we are, listening to Mr Farrell O'Conner. Tanned skin, slicked hair, well-dressed, celluloid smile and enough cosmetics to create his own personal hole in the ozone layer. He speaks in an jaunty, upbeat, mid-Atlantic way that contrasts with the mumbling incoherence of his audience. Try as he might though, he's not getting any positive vibes back from us.

'Come on,' he enthuses, 'you have to get the message that every situation has it's positives. The key to the feel-good, do-good mindset is to find that silver-lining and make it light up the day. Come on! This is what separates winners from losers...'

He looks out over the sea of losers in front of him and has to struggle hard to find that silver lining himself.

He snaps his fingers and rushes over to the white-board. With a flourish he wipes away the scribble he's spent all morning put up. 'Word association,' he announces. 'Let's brain-storm together to see where we can go with this. You,' he points to Colin. 'Yes, you, make a start. Let's word associate on the theme of making the best of a bad situation. Give me some words.'

Colin looks blank.

'Come on! A word or phrase that we can build on.'

Colin starts to get red.

Farrell's having none of this. 'Come on,' he urges, flashing blindingly white teeth, 'give me some words.'

'Incontinence pads,' Colin blurts out.

That silver lining must be sure hard to find sometimes. Mr Positive looks like he's about to jump across the room and strangle Colin.

'Forget that. Let's do some role play.'

For a second I connect word association and role-play. The image of Farrell O'Conner in a big nappy fills me with horror.

'Imagine that we're stuck in traffic,' Farrell announces, recovering his composure. 'Imagine that we're late for an important meeting. This is grid-lock, people, pure grid-lock. Let's work together to see how we can find the positives in this.'

I look around me and start to feel sorry for him. It must be hard.

'You,' he points a bronzed finger at Kevin. 'What do you do?'

'I work here,' Kevin responds innocently.

'What? No! I mean imagine you're stuck in traffic on the way to an important meeting. What do you do?'

'I ride a bike. I'd get up on the pavement and ride round the traffic.'

'Imagine the traffic's really screwed up though,' Farrell tells him.

'But I ride a push-bike, traffic's never that bad...'

'But imagine that it is.'

'But it'd have to be packed so tight that I could...'

'No!' Farrell booms. 'Forget the bike. You're in a car. Stuck in traffic. What do you do?'

'Wonder how I got there?' Kevin explains. 'I can't drive.'

Farrell is now an unhealthy shade of purple. It all looks grim. Our motivational speaker is losing motivation after half a morning with my team. I feel sort of proud.

Alison puts her hand up. 'I have a question,' she says.

Farrell looks at her as though he's finally found the silver lining to light up his day. 'Sure thing,' he says, beaming her a smile that's almost blinding.

'I've just looked at Friends Reunited,' she says, holding up her PDA, 'and it says that your real name is Cyril. And that you come from Slough.'

Farrell looks like a Cyril, it's true, I can see it now. He's speechless while the rest of the team giggle.

Alison, ray of sunshine that she is, hasn't finished. 'Is it true your nickname at school was Tiffany because you liked wearing girls knickers under your uniform?'

'That's a lie!!' Farrell/Cyril blurts out. All trace of the mid-Atlantic accent has gone.

'My uncle liked wearing girls knickers,' Philip tells us. 'He stopped after the court case, though.'

'I did not wear girls knickers!' Farrell/Cyril screams.

'About this traffic,' Kevin pipes in, 'can I pretend to be in a taxi?'

'You bastard...You bloody bastards...'

Farrell/Cyril starts to sob on stage.

Rice looks at Alison. 'Now look what you've done,' he says.

She looks sorry. 'It's okay, Cyril,' she says soothingly. 'I wear girls knickers too.'

The sobs get so loud that eventually somebody calls HR.

'The bastards...' he mumbles on his way out, 'I've never met such a bunch of negative, no good...'

The HR person looks at us accusingly.

'Do we get a refund on Cyril's fee?' I ask. 'It's just that we can still get a few hours of team-building down at the pub. We're not banned at the Old Dog and Penis,' I add helpfully.

Friday, February 24, 2006

Episode 9: Pay Review

'OK,' I say finally. 'Let me absolutely clear on what the requirement is. You want us to create a web front end to a legacy application running on an elderly Pentium II server. You want users to be able to access this application in real-time over a dial-up VPN connection. You would also like the front end, which should be Internet Explorer, to be able to query a stock control system on a different server and to provide an integrated view of the data.'

The boss grins. This is music to his ears. 'That's right,' he explains excitedly. 'When I scroll through records from the time sheet system I'd like to see the corresponding sales figures for the sales-person.'

'And you want this when?' I ask.

'Next week. At the latest.'

I start to laugh but realise that I'm on my own. The boss and his flunkey aren't laughing.

'So that's a yes then,' the flunkey suggests hopefully.

'No.'

'So it's a no then,' the flunkey concludes wisely. He's smart this kid, the money the company spent getting him an MBA was a wise investment.

'Where's the problem?' the boss demands. 'We've put web front ends of other apps before. Where's the problem?'

'You've already said that,' I point out, trying to buy time.

'What?'

'You said 'where's the problem' twice,' the flunkey points out helpfully.

'Damn it! I can say where's the problem as many times as I like,' the boss snaps. 'I'll do it again: where's the problem?'

I take a deep breath and respond with remarkable calm: 'The P2 box will have crap response times. The system crashes at least once a week and we're forever having problems with the database corrupting. The stock control system doesn't have sales records on it it has stock records. The VPN is creaking along because half the users are swapping MP3s and porn movies.'

The boss pauses for a second. 'OK, you know that when I said stock control I meant sales ledger. You know that we're not touching that P2 box in case it explodes. And I'd like to know which users are misusing the VPN.'

I smile. 'If stock control really means sales, what does sales mean? The list of VPN abusers, should I include the CEO, CFO and your office or not?'

The flunkey looks pale. I guess he's been naughty with the boss's computer. Either that or he knows that the boss has been downloading dodgy content off those specialist web sites again.

The boss pauses. His eye narrow while he thinks this one through. 'What about if we use XML?'

'What?'

'You've never heard of it?' the boss asks.

'Half the systems we write these days use XML in one form or another,' I point out. 'I just don't see how it helps us here. Can you explain it in a bit more detail?'

The boss leans forwards and is about to launch into it when he realises he doesn't have a clue what he's talking about. 'I'm not doing your job for you, Joe,' he tells me.

'So you want me to create a complex multi-tier application across distributed databases with a web front end and state of the art network access. And you want this next week?'

He nods.

'Why next week?'

'I think an aggressive target is necessary.'

He's looking cagey. Then it hits me. 'Isn't next week when you get your pay review?'

'Unconnected,' he lies.

I relax. He's looking for something to justify the pay rise he's looking for. 'I don't think this project is a good idea to be honest,' I say, my voice dropping to a friendly whisper. 'If it goes badly wrong then it'll take out the entire infrastructure of the company. Once the time sheet system is down it'll bring the entire company to a grinding halt in a matter of minutes.'

He looks dubious. 'How? That's not possible.'

I shrug. 'Are you ignoring my advice? I'd like that in writing please.'

'But, Joe,' he tells me reasonably. 'we both know that the time sheet system is isolated from everything else.'

'But you want it connected. If we start this project today the company will be doing nothing within a couple of hours. Probably. The CEO won't be able to download his personal content from the internet...'

'What do I do?' the boss asks despondently.

'Pay review?'

He nods.

'What you need is a handly little application that I knocked up for the tech support group. You enter a user name and it will tell you what smut they've been looking at and how much has been copied to a local hard disk. Works for any user name. Including the CEOs.'

The gears turn slowly but the boss suddenly smiles. 'Can I have a copy of this useful little utility?'

I lean back in my seat. 'Sure,' I say, 'straight after my own pay review.'

Thursday, February 23, 2006

Episode 8: Documentation

Looking at the documentation in front of me I realise that I can afford to be generous with its authors. The BUST update has finally crawled to an end, almost. I'm pleased because my project planning was almost spot-on, apart from the units error (I had reckoned on 2 weeks, and Kevin and Rice had worked hard to bring it in with only a minor change of plan from weeks to months). And in that two months, Rice has done pretty well for someone who has never programmed before. For the first two weeks he was on intensive coffee-making, and once he'd got that sorted Kevin had started him on learning how to make tea. I had to step in that point to remind them both that Rice was supposed to be learning to program.

After that progress really picked up. Kevin carried on doing most of the programming, while Rice took two weeks to perfect a dialog box and an error message. He was a natural. And now, after weeks of hard work the latest version of BUST is ready for acceptance testing, and I'm looking at the documentation I asked them to produce. This time it was Rice who took on most of the work, on account of the fact that he'd studied palaeontology at Cambridge (yes, I couldn't work it out either but Kevin was definite and Rice was happy enough to go for it).

When I call the two of them over they looked pleased as punch.

'Well,' Rice asks, a touch too excitedly for my comfort, 'how does it read?'

'Like this,' I reply. 'BIST requires that all Excel workbooks are named in conformance with the rules detailed in this document. Any non-conforming workbooks will be deleted and the contents lost forever, so get it right or do it again. The naming pattern is a sequence of alphanumeric components catenated using an underbar separator character. The first two characters are the designated office code, followed by a three-digit alphanumeric sequence signifying user name and then the date code in day, month, year format (also utilising an underbar separator).'

'That's good,' Kevin nods appreciatively.

'Good?' I demand. 'What language is it written in? I can't make out what it's saying, and I know the bloody naming format for the files.'

Rice looks hurt. 'I thought it was clear and to the point,' he sniffs. 'We have to be precise or they'd submit all sorts of rubbish.'

'True,' Kevin agrees. 'Remember that guy in the French office who submitted his shopping list?'

Or the one who submitted the CV he was sending to job agencies, or the one who'd sent the entire contents of his hard-disk and crashed the server, or the one …

'I know that,' I say, 'but we still need documentation that somebody might have a remote chance of understanding.'

'I understand it,' Rice points out.

'But that's because you wrote it.'

'What if I pretend I didn't write it?'

'What?'

Kevin thinks it's a good idea. 'Me as well,' he offers. 'I'll pretend that I don't know the file name format and see if I can work it out from Rice's docs.'

I shake my head. 'Nope. There's only one thing for it. I'm going to have to call in a technical writer.'

Kevin goes whiter than usual. 'Not … Not …'

I nod. 'Yes, it's Norris.'

Kevin looks really alarmed now. 'But Joe, he's a serial killer.'

'No he's not.'

'Yes he is. You've only got to look at him to know that he's killed dozens of people.'

Rice is starting to look scared as well.

I've got to nip this in the bud now. 'No he's not,' I insist. 'Norris is harmless. He doesn't look like a killer, you'd hardly notice he was there.'

'Exactly,' Kevin mutters. 'It's the quiet ones. All the serial killers are like that, blokes you'd hardly notice. That's what makes them so deadly.'

'He's a nice family man,' I point out.

'So was Charlie Manson,' Kevin shoots back.

'And Fred West,' Rice adds.

'This is ridiculous. If he's a killer then name one of his victims,' I challenge.

'Steven Gould.'

'He was transferred to Bracknell,' I point out.

'Then how come nobody's ever seen him there? You know they fell out in a big way. There was that argument about punctuation and then Gould disappeared.'

'Look,' I say, trying not to shout. 'Norris is not a serial killer. And even if he is you and Rice are going to sit down with him and get him to write a document that mere mortals can understand. Clear?'

Kevin nods sullenly, but Rice looks terrified. 'What if he kills us both?'

I shrug. 'If he doesn't then I will. Get your stuff sorted because he's coming over later this afternoon. And if one of you mentions this serial killer bollocks to his face there'll be trouble.'

Kevin and Rice head off back to their desks, but the last thing I hear is Rice asking if garlic works against serial killers as well as it does against vampires.

Now, do I sit in on this one or not?

Wednesday, February 22, 2006

Episode 7: Cost Cutting?

It's a Monday morning and I really don't need this. An email from our chief bean counter. And it's copied to the Boss …:

==============================================

Dear Joe

I had lunch with Ian Smith, the Director of Technology at Barricade Network Services, at the weekend (after I'd thrashed him at a round of golf, mind you). Anyway he was enthusing about how his developers were saving the company mega-bucks. Said they were switching to open sauce software. Asked me if we were still using closed sauce. To be honest I don't know what sauce we're using but I suppose it must be closed. Can you let me know what our sauce usage is? If it's closed then why aren't we opening it?

Please have a think about this, if we can cut some budget here then we should be taking all this very seriously.

Regards,
Paul
Chief Finance Officer

==============================================

I hate this. I know that the Boss will be on to me straightaway. He can't stand any of the other big boys talking to me. Don't know what he's scared of. What I tell them or what they tell me.

And here's another one:

==============================================

Joe,

I just remembered something else that might be significant. He said that they'd switched to only using software that was licensed under the Canoe Public Licence. This means free, apparently. He was a bit sloshed by this point (a few gins too many), so when I asked him what it meant he just winked and said 'Canoe's Not Eunuchs'. Booze talk or is there some masonic secret handshake thing going on?

Paul
Chief Finance Officer

==============================================

Ten, nine, eight, seven, six, five, four, three...He's faster than expected. Here's a message from the Boss:

==============================================

Joe, I know this Smith character. He's a prize dick. And Paul's got the wrong end of the stick. He means open source. Have a look at this, will you, and report back to me before you send anything to Paul. Cheers. Oh, and have a look at this Canoe stuff, sounds interesting.

===============================================

It's a real battle of brains here sometimes. While I'm wondering how to respond to the Boss, another missive arrives from our accountant in chief:

===============================================

Joe,

Why are we still using Excel? Ian said his guys were using ExEmell. Why do I get the feeling we've taken our eye off the ball here?


Also, I've been looking at your teams costs in the last six months. I see we bought a new server from HP. Is this connected to our sauce? If we're spending a lot on HP sauce then I want to know why.

Paul
Chief Finance Office

===============================================

Looks like the Boss can hold back no longer. He knows that he can out-tech an accountant any day. That's why he's the Boss, obviously:

===============================================

Paul,

I think you've got the wrong end of the stick, old man. HP sauce? Do you think my people are drinking bottles of ketchup or brown sauce or something? It's open SOURCE not SAUCE, and it's to do about how you publish your software code.

But I agree with you on the costs front. I've got Joe looking at the Canoe Public Licence and this ExEmell spreadsheet stuff. We'll keep you posted.

===============================================

Now, if that doesn't make Paul feel three inches tall nothing will.

Now it's my turn …

===============================================

Boss,

A canoe's a sort of boat, a bit like a Kayak, and nothing to do with open source. I think he's talking about the GNU Public Licence (GNU's not Unix, not Canoe's not Euncuhs. It's basically a set of free software tools and a software licensing scheme).

There's also no such thing as a product called ExEmell. He's talking about XML, it's a way of sharing structured information, and we're already using it in our software.

===============================================

Now that feels good.

Here comes the response:

===============================================

Joe,

Thanks for that. Of course. GNU not canoe, can't see how I missed it. Or XML. I've got an idea though on this open source software. Why don't we install Linux on all the machines we've got. Should save a fortune in fees to Microsoft.

===============================================

Sometimes this is too easy...

===============================================

Boss,

If we do that then it means the users having to ditch Office, Internet Explorer, Solitaire and having to find Linux versions of Tetris and so on. It'll be a big project. We've got no problem with any of this down here, but you'll have to get the tech support people on side (it'll start another gang war though - remember the fights when we installed the first Linux box? Billy had to take three months off work with that broken arm).

===============================================

Quick as a flash that fine-tuned business machine of a brain comes into play. Unfortunately it's another one of the Boss's brain waves:

===============================================

Joe,

How about we install Linux under Windows? Then everybody can have the applications they're used to and we get to save money.

===============================================

I wait a full five minutes to see if he figures out what he's just said. I enjoy that third cup of morning coffee before firing off my reply:

===============================================

Boss,

You'd still have to pay the licence costs for Windows, so how would it save money?

===============================================

The phone rings a second after I hit the send button. It's the Boss, what a surprise.

"Bollocks! I just fired off an email to Ian Smith telling that was what we're going to do. I hate that prick. I also copied Paul on it. What do I do?"

You know, some days are I just feel happy to be alive …

Monday, February 20, 2006

Episode 6: Code Review

I get the bad news second-hand. Colin wanders over to my desk with the kind of grin on his face that makes most people shudder and step back.

'Someone just been killed?' I ask him. A good car accident always puts Colin in a good mood.

'Not yet,' he replies cryptically, then looks back over his shoulder.

I can see why Colin's so cheery. Terence Didlock, our very own code policeman is striding purposely towards me. Bollocks.

'Joe, how are you old man?' Terence announces at the top of his voice. People in the building across the road are peering through their windows at us.

'Fine, fine,' I mutter. 'And to what do I owe the pleasure?'

'Pleasure? Mine's a double Scotch on the rocks!'

I resist the belly laugh and adopt Colin's grin instead.

'Actually, old man,' Terence says, lowering his voice so that he can only be heard in our building. 'I need to talk to you about a rather delicate matter …'

'Prickly heat playing you up again?'

Terence looks blank for a second then laughs so loud that the windows rattle. 'Very good, old man, very good. Now, can we chinwag somewhere a little more …'

Unfortunately there are no padded or sound-proofed rooms in the office, so whatever it is he's got to share with me is going to be over-heard by the entire team. In fact they've already stopped work and are wearing the blank expressions worn by those listening intently in the fond expectation of overhearing bad news.

A minute later and I'm sitting in our meeting room, looking out at the troops as they smirk back at me. Terence has got his back to the glass partition so he's oblivious to the huddles breaking out here there and everywhere.

'I'm afraid that I've been looking at your team's code again,' Terence begins.

'We're doing our best to follow the standards …'

A sad shake of the head cuts me off. 'It's not that exactly,' Terence tells me.

Shit. I was just about to launch into an explanation of our code review procedures. Every week we sit around a table and carefully and dispassionately analyse and constructively criticise each others code. And it works. We sit there and listen and take it all in. It works really well and team morale is excellent. One day we're even planning to do one when we're sober.

'If it's not non-standard program code then what is it?'

'Well, I'm working on a paper for a conference at the moment,' he explains. 'It's called "Development Errors and Exceptions in Programs - Soft Heuristics in Information Technology". Snappy title, what thinks you?'

'You're kidding, right?'

'No, it's for the Automated Reasoning in Software Engineering conference. Very prestigious.'

I stifle the laugh and resist asking him on why he's writing an ARSE paper on DEEP-SHIT. I'm sure someone will tell him about it before he gets up in front of a thousand people to announce what he's working on. I'm sure …

'What's this got to do with my people?' I ask.

'I was running some of your code through DEEP and it threw up a few things I think we need to be aware of.'

'I see,' I lie. 'Such as?'

'I was looking at exception handling specifically. I wanted to see how manual coding leads to undetected bugs due to poor abstraction levels at the conceptual level.'

'You mean you wanted to see what the programmers had missed?'

'That's one way of putting it,' he sniffs airily. 'Anyway old man, I was a bit surprised by some of the error messages in the exception handlers.'

'Such as?'

Terence suddenly produces a tiny PDA from his jacket pocket. It's miniscule. Smaller than a mobile phone. It looks like a kid's toy. He taps at it a few times with a stylus that looks like a toothpick.

'Impressed?' he beams. 'Wireless connection back to the network. Colour screen. Masses of memory. Calendaring and contacts. The works. Anyway, take a look at this code.'

He carefully lays the PDA on the table and then pulls out a huge magnifying glass. 'Go on,' he urges, 'have a look.'

I take the magnifying glass and peek at the screen. It's displaying four lines of Java source code.

'It's an error message passed from a networking class. If you try to connect to a non-existent address this is what comes up.'

The message says "You wish."

'There's more. Take a look at this one,' he taps again with the stylus and a new bit of code is on the screen. 'This is from a database query.'

It says: "In your dreams, fuckwit."

'Who's code is this?' I ask.

'The first one was Phil's, the second one was Colin's. But that kind of attitude seems prevalent in your team.'

'I see.'

He taps again. 'This is from a URL wrapper class. Pass it a malformed address and you get this.'

"Typing error? Delete user and start again."

'I see.'

Terence nods sagely. 'Well, you can imagine how shocked I was. We can't have code calling users 'fuckwits', can we? It's just not on.'

'No, I suppose not,' I agree. So far all of the classes he's shown are at the server end. There's nothing there that would ever make it to an end-users screen.

'Well,' he continues, 'once I started digging I found more. I looked at comments in the source code as well.'

'But nobody ever looks at that code, we don't release it,' I point out.

'I know, but code quality is an important issue. It's part of the standard that we comment code.'

'And?'

'Well. Look at this.'

I read the comment at the top of block of code: "Fucked if I know how or why it works, but it mostly does - don't dick with this unless you have to."

'Awful,' I say, wondering when it was that I first wrote that comment.

'And this one was most interesting.'

I look at it for a moment in silence.

'Well,' he prompts me.

'That's a good recipe for Mushroom Dopiaza,' I acknowledge. 'Bit light on the chilli mind you …'

'But what's it doing in a Java program?'

I shrug. 'Passing on valuable knowledge?'

'And then this …'

I look at the tiny screen through the magnifying class. It's a list of hardcore porn sites at the top of a Java class definition.

'Did you …?'

'Yes,' he admits.

'When do you get your machine back?'

'Next week I hope,' Terence admits mournfully. 'Barry in tech support has insisted on copying all the files to CD for future reference, once that's done, and he's given copies to his friends, I should get my machine back in time to complete this sodding paper…Another couple of days using this damned PDA and I'll go loopy …'

Friday, February 17, 2006

Episode 5: Employee Induction

The story so far … Crispin, (the 40ish Cambridge graduate of palaeontology and ex-Rastafarian who happens to be the CEO's nephew), has been recruited as a junior developer, in spite of the fact that he knows sod all about programming. There's no training budget, but he's got an internet connection and a public library card …

I'm sitting here trying to drown out the noise but it's getting harder all the time. Seeing as we're already two years late on delivery I can't let Crispin anywhere near our main project, so he's been shunted off to work on one of the maintenance projects. My main aim has been to keep him out of the way as much as possible. So I've got him learning VBA for Excel on the job. We've got a system called BIST (Business Information System Totaliser), commonly known as BUST to it's users and maintainers. It's a masterpiece of imperfection.

Accounts managers from all our offices worldwide enter account and sales info into an Excel spreadsheet every day. At business close they email this to a central mail folder. A process there collates the separate files and extracts the data into a single CSV file. This is then processed by a separate Excel application which does the summarising and then creates a set of files which are mailed back to the users every morning. It's an architecture designed by a monkey on the back of a banana skin. It has fulfilled at least one useful function for it's original developer though. It caught the eye of the CEO, who liked the sound of it and loved the format of the finished sheets (or at least the hand-finished one that was shown to him). The designer is now the CIO (my Boss), which means that at least he's not churning out crap code any more, though it also means that he's convinced he's God's gift to software development.

BUST is dear to the heart of the Boss. Therefore in the next upgrade we're switching from flat CSV files culled from Excel to XML files. Kevin's been working on this for a couple of weeks and it's not an especially enjoyable task. The task of compiling the data from the individual Excel sheets is currently clocking in at just over two hours and 40 minutes. Doing it the old way was an hour quicker, but the Boss thinks that CSV files are dead, so XML it is …

As you can imagine, Kevin was over-joyed to be told that Crispin will be working with him. It was hard work to convince him to stay, but a small salary increase managed to win the day and Kevin's now doing his best to teach Crispin the rudiments of programming and also to introduce him to the rest of our happy little band. He's also got Crispin looking at the data compilation code.

And right now I'm about to kill. Myself probably. I can't help it, like everybody else in the office I've stopped work to listen to Kevin and Crispin.

Crispin: Right, it's nearly 12, so I'm off to lunch. Shall I compile the data?
Kevin: No, there's no need, the data hasn't changed since you last did it.
Crispin: Yes, but shall I kick off a compile before I go?
Kevin: No. What's the point?
Crispin: It'll compile while I'm out.
Kevin: But it'll carry on for a couple of hours after you're back.
Crispin: Got you, I'll kick it off then.
Kevin: NO! Leave it alone. There's no need.
Crispin: Ahh. Sorry there Kev, I just kicked off a compile.

At this point I think Kevin's the one who's about to kill.

Crispin disappears sharpish. I wouldn't mind but we've had to listen to this same conversation everyday for the last week.

Alison gets up and walks over to Kevin, who's holding his head in his hands. Is he sobbing? I hope not. I couldn't cope with it again.

'Never mind,' Alison says sympathetically, 'it could be worse.'

'How?' Kevin whimpers.

'I could show him a copy of your novel …'

'That's been wiped off the network,' Kevin tells her.

She grins. 'I think I might have a copy on a Zip disk …'

Oh shit. I can just imagine a copy of the Sperminator arriving in Crispin's inbox. Would he be able to resist forwarding it to uncle CEO?

Kevin is about to reply but his phone buzzes.

'Kevin,' I whisper, 'she doesn't have a Zip drive. Just smile and let me sort this out …'

Kevin puts the phone down. 'If you like,' he responds finally.

Alison looks deflated but returns to her seat. I need to think fast how to get her to hand over that Zip disk …

After lunch Crispin is in fine fettle. Lunch with his uncle always cheers him up. Which makes us all very nervous. There's a lot of whispering between Kevin and Crispin for the next hour. Finally, Crispin gets up and walks over to Alison's desk.

She looks up and waits.

'Err, Alison,' he says quietly, but not so quiet that the rest of the hushed office can't hear. 'How about you come over to my place and cook me some dinner?'

Stunned silence. Sweet-looking Alison loves women more than anyone else in the office; she's got the injunctions to prove it. Looks like this is one bit of social info that Kevin forgot to tell him.

'Sure,' she says brightly. 'And how would you like your testicles done? Medium or rare?'

I can't help thinking that no person can look that red and survive without a heart attack. 'I…Why er…Why don't we take a rain check on this one then…' Crispin mutters.

Her smile broadens. 'Good idea, now be a good boy Rice and fuck off back to your buddy over there.'

Rice? Alison realises she's got an audience. 'Rice Crispin,' she explains, 'now snap, crackle and pop off on your own …'

As Rice walks dejectedly back to his desk I start to wonder what the job market is like at the moment.

Thursday, February 16, 2006

Episiode 4: Team Player

So here's the deal. Bill, the contractor has been banished, fated to return to the poisonous bosom of his family. Lexia, our dream candidate for the programmer's job left in Bill's wake, has turned us down flat once she found out that we're two years late shipping a web-services enabled information system based on a COBOL back end that was cranked together from notes left by Charles Babbage himself. My perfect candidate has got good sever-side Java, XML and know's what SOAP is for. If not then it's desktop development with a mix of SQL, ASP, VBA and XML.

Now the CEO's nephew, only begotten son of his favourite sister, has been put forward for the job. Not a programmer but 'good with computers' according to Pam, our HR person, who's already with Crispin in our conference room. He's also just got a First in Palaeontology from Oxford or Cambridge, so he should be happy working with the COBOL system at least. And here I am, first thing in the morning and still gasping for that third cup of coffee …

Pam looks at me as I enter and makes a face. My expression is frozen of course. Young Crispin is around forty five. The bald patch is showing under the stray wisps he's managed to gel into place. The suit he's wearing belongs to somebody else, somebody who's been sleeping rough for the last couple of years, somebody who's been sleeping rough in the gents toilet down the park judging by the stains.

I smile. 'Crispin,' I say, 'pleased you could make it.'

Pam relaxes a bit as I squeeze into the seat next to her, opposite a beaming Crispin on the other side of the conference table. 'Crispin, this is Joe Bloggs, our development team leader.'

'Congratulations on your First,' I add, desperate to think of something to say.

'Thank you,' he replies in a plummy voice that sounds unnervingly like the CEOs. 'Of course, it was twenty years ago, but better late than never, eh?'

Pam rescues me. 'Well, Crispin, let's make a start. Now, we want to make it clear that we're going to treat you just like any other candidate, OK?'

'Of course,' Crispin agrees, 'I'm sure that Uncle Ronnie will be pleased to hear that when we meet for lunch today.'

'Of course,' I echo.

'Good,' Pam says brightly. 'Why don't you talk us through your CV,' she suggests - ever the professional.

Crispin sits well back, cups his hands behind his head and launches into the story of his life, starting with life at home with nanny. My eyes glaze over and I start to shake after the first 30 minutes. I need a coffee. No, what I need is to get away from here. As far away as possible.

'That's most useful,' Pam comments, kicking me under the table to wake me up. 'And after university?'

Crispin sighs. 'Well, I intended to take a gap year between degree and work, but then I became a Rastafarian and my life changed completely.'

Pam stifles a sob.

'A Rastafarian?' I ask.

'Yes, yes. It's a religion. Dreadlocks, ganja, reggae, Haile Sellasie, African roots.'

I try to picture Crispin in dreads, smoking a giant spliff and hanging out with the Brothers, but it just doesn't compute.

'Are you still … do you still practise this…' Pam is struggling.

Crispin snorts derisively. 'No, no,' he tells her firmly, 'I got out of that weeks ago.'

No wonder the CEO is desperate to get him a job. 'What about some work experience?' I venture bravely.

'Yes,' Pam agrees, 'I think Joe has some technical questions for you.'

'Of course,' Crispin agrees, 'I do have some excellent programming skills. While I was a Rasta I did plenty of programming work.'

This is more like it. 'What operating system did you use?' I ask.

'Microsoft Office 2000.'

I bite my tongue. Even Pam winces. 'And what programming languages did you use?'

'Word and Excel,' Crispin informs us. 'Excel mainly. My biggest program was around 24MB.'

'That's good,' Pam comments approvingly. I can see her digging her nails into the palm of her hand. She's even closer to hysteria than I am.

'Did you ever use any VBA or macros in Excel?' I ask, wondering if he even knows what a computer is.

'No, that's for techies,' he tells me. A second later he remembers what the interview's about. 'Like me,' he adds finally.

'And what do you think you'll bring to this job,' I ask, (aside from your family connections, I add mentally).

He leans forward and looks serious. The gel loosens and half a dozen stray strands of grey hair fall across his face. 'Well, John,' he informs me. 'I've got an excellent eye for detail.'

'It's Joe,' I correct him politely.

'Yes,' he nods. 'Detail. And I'm good with people. Very good according to my parole officer.'

I look at Pam. 'It's OK,' she tells me, 'it didn't involve using the firearm.'

'Besides,' Crispin adds, 'the siege only lasted a day and a half.'

This isn't really happening. This isn't really happening. This isn't …

'Well, Crispin,' Pam says finally, 'I think Joe and I need a second to discuss things.'

'Of course,' Crispin sits back in his chair, 'I'll wait here.'

Pam puts a hand on my arm. 'Don't forget who his uncle is,' she warns me in a whisper, 'I wouldn't if I were you.'

Dutifully we step outside. 'He's a fucking disaster,' I cry.

'Don't worry about the parole thing,' she tells me reassuringly, 'if the postman hadn't insisted his mother would never have pressed charges.'

It's time for a reality check. 'You want me to take on,' I say carefully, 'as a developer, somebody who doesn't know an office application from an operating system, who's taken his own mother and the postman hostage and who can't even sodding remember my name?'

She nods. 'When should he start?'

'This is going to put us back for months,' I wail.

'On the other hand think of the influence you'll have upstairs,' she points out. 'How can the CEO can the project when his nephew is part of the team?'

She's right. 'He starts next week,' I agree.

Wednesday, February 15, 2006

Episode 3: Recruitment

==============================================
To: Joe
From: Pam

Hiya Joe,

I know you've got an interview for junior developer lined up next week with someone called Lexia McGubbin - I've seen the CV too (and I'm sure that modelling swimwear has nothing to do with her being short-listed). I'm sure you've got it all under control but I wouldn't be doing my job as hr if I didn't remind you of some guidelines, so treat this as a friendly reminder:

It's OK to give some kind of work-related test. Making a cup of tea does not count as a work-related test, even for junior coders.

You cannot ask about: martial status, her taste in men, religion, politics or modelling swimwear. You can ask about education, software methods she's used, programming language, previous experience (technical experience!!!).

There is no dress-code for interviews. Especially not one that specifies short skirt and high heeled boots.

Please make sure that she's treated with courtesy at all times. That means no leering, risqué humour or robust comments of any kinds, especially not from Alison.

I'm sure this is old news to you. Oh, and keep her away from the rest of the team - we can't afford another embarrassing court case.

Pam

==============================================
To: Kevin
From: Joe

Kevin,

Thank's for sending me the test you've knocked up for Lexia's interview. It's pretty good, especially the bit where you ask her to enter her mobile number, encrypt it to file, open an FTP connection and transfer it to your hard disk. You're right, it does test a lot of good coding skills, but I've decided to substitute something a little simpler which doesn't involve her divulging personal info.

Also, can you make sure that your novel has been deleted from the network. I appreciate that the Sperminator is a work of cult fiction, but I'm worried about getting us raided by obscene publications.

Cheers,

PS No, there was no photo supplied with the CV. The picture that Phillip's got on his machine is something he ripped off a web page and dicked around with using Photoshop.

===============================================
To: Joe
From: Alison

Joe,

I really like the sound of this girl. As the only other female on the team I'd like to offer to mentor her. There's space in my flat for her to sleep over too. She sounds really nice. I've bought a box of chocolates and I'd like to arrange for a delivery of flowers before the interview.

Alison

================================================
To: Pam
From: Joe

Thanks for the reminder, Pam. And the follow up phone call and the documentation. It's all under control. Alison is fine and rumours that's she's fallen for Lexia in a big way are just a wind-up. Alison's fine. The medication is doing her good and I think that there'll be no need for Lucy to renew that injunction.

All the best,

Joe

================================================
To: Joe
From: Alison

Joe,

Can I sit in on the interview? I think Lexia's going to be a bit nervous. I don't mind some hand holding if it'll help her. Please?

Alison

================================================
To: Kevin
From: Joe

Kevin,

Cheers for forwarding the latest chapter of the Sperminator. It is very different. I'm not really qualified to talk about literature, but you're right it's more interesting than a lot of XML books. I'm sure it is as good as Iain Banks, though I don't really remember his stuff being quite so graphic.

I'm glad it's off your hard disk and the file servers, but it's now on the mail server instead. Get it off. Now.

Joe

================================================
To: Joe
From: Pam

Joe,

Please call me to talk about Alison. I think we need to have this interview off site.

Pam

=================================================
To: Joe
From: Alison

Joe,

Please call me to talk about Pam. I think we need to have this interview off site. My flat's close by.

Alison

================================================
To: Joe
From: Phillip

Boss man,

Look at this cool graphic of me and Sexy Lexy on Bondi beach!

Phil

=================================================
To: Phillip
From: Joe

Phil,

You've never met Lexia. You've never been to Bondi beach. You no longer have Photoshop installed on your machine.

=================================================
To: Alison;Kevin;Phillip
Cc: Pam
From: Joe

Just to let you all know that Lexia McGubbin has pulled out of the interview. She did a bit of surfing last night and discovered that we're still running off a COBOL back-end. Thanks but no thanks was the gist of it. It's back to the CVs again folks.

Joe

==================================================
To: Joe
From: Alison

Joe,

Forget the CVs. The Boss was on the phone just now. He's got a nephew who sounds right for this job. I've booked the interview for tomorrow at 9:30, so please try to make it. No CV I can send you, but he's an academic high-flier who's just graduated with a First in Palaeontology at Oxford. Loves computers, apparently.

See you tomorrow.

Pam

==================================================

Tuesday, February 14, 2006

Episode 2: Team Building

Bill’s had too much to drink, which is fair enough, it is his leaving do after all.

‘How much have we got left in the kitty?’ he asks, downing another mouthful of lager shandy with blackcurrant.

‘Four quid.’

He looks disappointed. ‘Is that all?’

I nod. ‘It is just the two of us,’ I remind him.

‘Do you think anybody else is going to turn up?’ he asks hopefully.

‘I don’t think so. It’s been two hours, if they were going to turn up they would have done it by now.’

‘True enough,’ he mumbles mournfully.

‘Another pint?’ I offer brightly.

‘Sure, why not. Tell you what, leave the blackcurrant out this time.’

Despite my good intentions I feel sorry for the guy. True he’s a pompous prick who has spent the last six months of his contract polishing his CV and desperately seeking a next job. To no avail. His tech skills are crap and he’s no good with people, animals or inanimate objects – particularly of the computing kind.

I return with a pint of lager shandy which has been usefully topped up with another double shot of vodka.

‘What is this lager they’re using?’ he asks innocently. ‘It must be dynamite on its own.’

I shrug innocently. ‘It’s whatever they’ve got on tap.’

‘You don’t know what it’s like,’ he whispers fifteen minutes later. He’s slurring badly.

‘Moving back home, are you?’

He nods disconsolately. ‘You’ve no fucking idea. It’s murder at home. The abuse, the scorn, the downright lack of respect…’

Just like work then. ‘Teenagers in the house?’ I venture politely.

He nods. ‘It’s not just the girls. It’s the wife. Audrey is a highly strung woman.’

‘Does she know you’re out of work yet?’

He shakes his head in terror. ‘No, I’ve told her I’ve got a hot prospect in Aberdeen.’

‘Where do you live?’

‘Southampton.’

I buy the man another lager and get out before the tears start.


Back at the ranch I meet with Colin, my second in command and the only one I trust enough with the batch of CVs which have been arriving by post, email, courier, carrier pigeon and impassioned voice mail biographies forwarded from the Basingstoke branch of the Samaritans.

‘Have you ever met Audrey?’

Colin shakes his head. ‘Heard her on the phone once. Frightening. He’s got two teenage daughters too, following in their mother’s footsteps. How was he?’

‘Asking about the French Foreign Legion when I left him.’

‘Poor sod. Anyway, I’ve applied the usual filters to these,’ Colin says, handing me the pile of CVs we’ve been using as coasters for the last week or so.

‘No double-barrelled names? No arts graduates? No born-again religionists? Nobody asking market rates?’

‘Yep.’

‘So what have we got left?’

‘Just this.’

I take the single sheet and scan the first line. ‘She’s female.’

‘I know.’

‘She’s twenty-two.’

‘I know.’

‘She’s modelled swimwear.’

‘I know.’

‘Colin, we can’t ask her to come here. Look around you, mate.’

‘You don’t think she’d fit in?’

I sigh deeply. Perhaps asking Colin to look at the CVs was a mistake after all. ‘Fit in? Fit in? Look at Kevin.’

We peer across the office at Kevin. ‘Is he still working on his novel?’

‘Yes. He’s on chapter 97 of the Sperminator. Did you read the chapter with the dog?’

‘No.’

‘I can never watch a Rin Tin Tin film again. And what about Phillip and his girlfriend.’

‘She was a lovely girl,’ Colin muses.

‘She was imaginary. The photos were ones he’d downloaded off the internet. The engagement? It never really happened.’

‘I know, but she was a lovely idea.’

‘And Alison? Do you remember the court case? The injunctions?’

‘Yes, but Lucy in accounts was very attractive, we all fancied her a bit.’

‘Not enough to camp outside her flat in our knickers for three weeks swearing undying devotion.’

‘OK, OK. But Dennis and Josh are pretty normal.’

I shake my head sadly. ‘Remember the experiment with pair programming?’

‘Yes, but you’ve got to admit the scars look good on Josh.’

‘They do,’ I concede. ‘But you’re not really suggesting we interview this girl, are you?’

‘But look at her skill set. Java, J2EE, SQL, JSP and she’s dabbled with .NET and ASPX.’

I know I’m going to regret this. I know it’s a bad move. But I’ve had too many lager shandies laced with vodka to stop myself. ‘Alright. Get on the phone and arrange an interview.’

Episode 1: UML?

It's another one of those painful visits from the Boss. As usual he's plonked himself down in the nearest seat and coughs loudly in case I haven't noticed him invading my space. He waits a second and then announces, loud enough so the rest of the development team can hear: ‘I think we ought to rewrite the system in UML’.

UML? Sweet Jesus, who let his browser stray from hornyjailbait.com? He does this every six months or so. I suppose it’s to remind us all that he’s not just the Boss, he’s also a tech-savvy kind of guy who knows where the future lies.

I turn around slowly to see him pull out a stash of full-colour PowerPoint slides that he’s probably spent the best part of the week on.

‘UML?’ I repeat.

‘Unified Modelling Language,’ he explains, adopting that look that tells me he thinks I’m a lowly hack who just isn’t hip to where things are at. ‘It’s exactly what we need. UML improves productivity, fits the whole life-cycle and can help us improve quality just when we need it.’

I can see the guys behind him sniggering into their screens. ‘Er, UML isn’t a programming language that you code in,’ I start to explain.

He looks fazed for a second but then the bullshit gene kicks in. ‘Of course not,’ he announces even more loudly, ‘it’s a notation. I just think we should re-code the system with it.’

Bill, (the contractor with 3 days left to finish his CV before he’s out), decides to join in. ‘But the system’s already a year late,’ he points out.

‘True enough,’ the Boss agrees. ‘But UML is designed to make iterative development go really smoothly. And just think, those UML diagrams look great in PowerPoint.’

It’s looking grim because I can see he’s made his mind up. Six months ago it was making the system a web service. Six months before that we became an agile development team where he was the one with the agility and we had to keep up or ship out.

‘What about the training costs?’ I ask.

Boss just shakes his presentation at me. ‘It’s all here, a complete tutorial that I knocked up earlier.’

Knocked up or knocked off? Has someone shown him how to download content off the web? That’s bad news.

The sniggering is getting louder but the Boss isn’t taking the hint.

‘And the cost of the tools?’ I ask calmly.

‘Tools?’

‘Sure, you can’t do UML without the tools.’

‘Can’t our compiler handle it?’

‘Sorry, this version just doesn’t compile UML. What we need are some CASE tools.’

The Boss looks broken-hearted. ‘Yes, I remember now, it says something about Use Case here in my presentation.’

Bill nods sagely. ‘I’m something of a CASE tools guru,’ he announces.

I figure that means that he’s had no luck getting a new contract and now he’s decided that hell has indeed frozen over and that he’s going to go for a renewal. Again.

The Boss looks even more pained. He and Bill don’t get on. At least not since the water cooler falling out of the window on to the roof of the new Jag incident.

‘On the other hand we are almost a year late,’ the Boss reminds us all. ‘Now’s not the time for fundamental changes like this.’

He wanders off and we all sigh with relief. Until the next time, at least.