Authors: Fiona Pearse
On Monday morning I approached Boris’s cube quietly and deliberately
made him jump. ‘Can we talk?’
‘Oh! You’re in early for a non-rollout day,
Orla
.’
‘Yeah.
Coffee?’
We sat opposite each other over the damp, freshly-wiped canteen
table. Bunting for the Data Centre Opening covered the walls and extra glasses were
already laid out by the kitchen doors, for the reception later on. I wasn’t going
to go. Our eyes met. His usual grin was replaced with nervous blinking but his laughter
lines were deep like a forced smile on an unhappy clown. Despite my best efforts
to keep my body language neutral, I immediately leaned forward, pressing my fists
into my cheeks.
‘So,
the whole disk-down incident on Saturday.
I had to rebuild a few feeds and
mount them on a backup server.’
‘Yes, I heard. But the transition seems to have gone smoothly
otherwise.’
‘When I was rebuilding METX I checked the history of
Utils.cpp
. Just to make sure I definitely
had the version with my fix.
Noticed something funny though.
There was a version of the code, checked in before my last one. It was checked in
by you.’
I paused to let him digest the information and looked for traces
of guilt.
‘
Er
... I don’t remember making any
changes to your code. But, I suppose I might have around the time I took on METX
for you when you went away.’
‘Think about it. What might you have changed?’
‘I don’t know,
Orls
, to be honest.
I have to do a lot of things as team leader. Perhaps I found a bug in your code
and fixed it.’
‘Boris, just shut up you idiot.’
‘
Orla
, that is out of line.’
‘Why did you check-in my code without talking to me about it?
That means I rolled out code without knowing exactly what was there. Yes, I handed
my project over to you but you were only supposed to do the code review.’ I smacked
the table.
‘Look,
Orla
, I’m going to have to stop
you right there. You’re being very emotional and unprofessional.’
I opened up a sheet of paper and pushed it in front of him. His
hands were shaking as he blinked over the page.
‘The results of a
diff
between my file and yours.
Look at the change you checked
in. You replaced
binary search
with
standard find
.’
‘Yes, we always use
find
for our searches, and as I always say, we should standardise these things. That’s
good practice. Anyway, binary search is only optimised on a binary tree.’
‘Really, Boris?
What’s a binary tree?’
‘Look don’t get smart,
Orla
. We use
find
on all our maps.’
‘Yeah, on our maps, Boris.
But the ISIN
generator uses a vector and when you use find on a vector it’s linear. You should
know that.’
‘Fuck it, fuck it,’ his voice trailed off, ‘was that the reason
why it was so slow?’
‘Yes. I'm on a fucking revision programme, Boris. Why didn’t
you ask me about it?’
‘You rushed off. I thought you had made a mistake and I was correcting
it. I didn’t think it would make any functional difference at all. Look they won’t
take you off the programme you know. You still left out certain test procedures
and you didn't react fast enough which resulted in your feed causing delays for
other feeds.’
‘Look, Boris, I have an idea. Before you write a letter of resignation
I suggest we explore it together. If I tell Felix you made my coding mistake and
then helpfully checked in the code without telling me, after your grand deception,
you’ll probably get an official warning. If I fail this revision programme and get
made junior, it’ll be very hard for me to get another job or another position here.
So, since you’re in charge of making sure I pass this thing then as long as that
happens I’ll continue to take the blame for the coding mistake. I’ll get back to
being a senior,
then
I’ll leave the company as soon as
the time is right.’
‘Well you’ve got it all worked out haven’t you. You are a sneaky
little thing. But what happens if you make a big mistake in your next project? I
can’t cover up everything
y’know
.’
‘If I make mistakes, which I don’t plan to, it’ll still be open
to interpretation whether or not those mistakes mean I’m not senior level. What
if I make mistakes because of a lack of support from management?’
‘I see.’
‘It comes down to what you want to take the blame for: shared
misunderstandings or a major code fuck up that caused delays in two high-profile
feeds.’
‘I see.’
‘Neither of us can afford it.’
He looked away and tapped his thumb on the table but I knew I
had won. He had done it to himself.
‘I guess we have nothing more to say to each other then,’ he
said. ‘Feisty, aren’t you.
Crafty, eh?
Never trust a woman.’
He laughed. ‘No, no. It’s all fair in love and war and
CouperDaye
.’
I stood up with nothing more to say and left him laughing.
I couldn’t sit still. I checked the website for my new spec and
printed it out. On the way to the printer I took the long route and stopped by the
water cooler, taking a breath and some ice-cold water. He took it all from me, I
couldn’t believe it. He never would have if he wasn’t already so compromised.
I sat back down and tried to read, but the words were meaningless.
I put in my earphones; maybe music would help to calm me down. He must hate me now.
That’s another enemy. The conversation drummed in my ears as I turned over the pages.
But I might actually get through this programme, I thought, beginning to feel lighter.
I might even start enjoying my job again... I just had to get through my one-to-one
with Jerome Ross and then maybe things would go back to normal. Would JR ask about
the revision programme? Would I have to explain myself all over again, on camera?
And what about
BelOpt
?
Did he
know that was nearly a disaster too? I looked at the
BelOpt
website. A lot of the updates were from Gordon. He had recorded the activity over
the last few days. Even the argument we had last week
was
up there. ‘Little shit,’ I
tutted
. Well, I’d have probably
done the same thing. ‘Know the rules of the game,
Orls
,’
Boris’s voice sang in my head. I do know them, I thought. I know them so well that
I’ve become as sad as that paranoid drone, Gordon. I froze, crumpling the pages
in my hand. Was that true? When did I become like that? Somewhere in between obsessive
project updates, lying to management and giving people a hard time to save myself,
I had become one of the people I hate... I wasn’t even above blackmail. I squeezed
my eyes shut, suddenly seeing my words to Boris differently. It must be in my nature,
I thought with a sting. I mean, I’m good at following rules, aren’t I? I’ve always
clung to my own. And look where that’s got me – working such long hours on METX,
and putting the company first before my social life, before a relationship with
a man who actually wanted to be there for me. I ended it with him just because I
couldn’t admit I didn’t have control over everything. I even lied to
Deelie
because I couldn’t show a weakness. Was I just as image-obsessed
as this company? I took in a sharp breath and yanked out my earphones. I realised
I’d never started the music. The sound of air was surprising.
I don’t want things to go on like this, I nearly said out loud.
I used to be good at my job. I never needed survival tactics. A laugh escaped my
throat. In a few days I was going to have an interview with a hyperactive image-obsessed
head of operations who might decide I was a toxic cell in his precious company and
had to be flushed out... Well, in that case, there is only one thing that I can
do, I thought. I’ll just have to give
CouperDaye
exactly
what it wants, one more time.
My favourite interview suit, a navy dress and matching jacket
stood out as suspiciously smart on the R&D floor but I didn’t care. With my
hair tight in a high bun, I circled the cubicles on my way to the meeting rooms.
Jerome Ross brought the hand-held up to one eye and beckoned
me in to his temporary office.
‘Come on in,
Orla
. Have I got the pronunciation
right?’
‘Yes,
Orla
as it is spelt,’ I tried
to smile for the camera.
‘Please take a seat,
Orla
as its spelt.’
He manoeuvred behind the desk, watching his space. A chair was positioned for me
below a wide lamp and a terminal jumped with market activity in the background of
the shot.
‘Actually, I was wondering if we could use one of the larger
meeting rooms. I have a presentation I’d like to give and we require a projector
screen.’
‘A presentation?
Great! Lead the way.’
He carefully reversed direction.
I had already booked the meeting room and hooked up my laptop.
‘Come in.’ I held open the door.
‘This is the kind of thing I’m talking about.’ He scanned the
camera over my notes and the screen. ‘
The
Life of a Bug
’ he read out loud and then laughed at the picture of a bug beneath
the title.
‘Whenever software crashes or doesn’t behave the way it’s supposed
to, people wonder ‘why can’t it simply work?’ I want to examine the reasons why
and suggest a more lasting solution for Feeds.’
‘Awesome. Take it away,
Orla
.’ He settled
on the edge of a chair with his camera held steadily on the screen.
I clicked through my slides, first setting up the problem. We
regularly had issues with live software and bug fixing took up nearly half of our
job. These bugs could be created for any number of reasons but when they got through
to production, it was always because of two reasons: a rushed job and a lack of
testing. In fact, most of the time, when a bug turned up in production, it was in
a scenario that hadn’t even been tested before going live. I suspected this was
news to him. We work in a high pressure environment, I told him, so the first reason
is sometimes unavoidable. However, we could do something about the second. He was
silent with only a twitch of his camera as I went on to outline my solution.
Overnight Test Analysis meant that every night a group of scenarios
would be run on our feeds in a reserved test environment, exercising all paths of
the code possible. Then every morning a list of results would be available so any
bug that was introduced in new software would be caught the next day. It was a big
job to put it in place, yes. But once there, the gains were continuous.
In truth, the task of setting it up had been started by our team
many times but it was never finished. With another low-priority project on my desk,
I realised I would have the time to take it on.
My third group of slides outlined the technical detail. From
doing research on the internet and going through the scrap-yard of our previous
attempts I chose a list of possible overnight test harnesses worth further investigation.
I also showed how we could fit the test cases into our existing feeds. To finish
I stepped through a full example, showing a bug being introduced in a piece of code
and then being caught during OTA, with the results on screen displaying a green
tick for the tests that passed and a red X for the one that failed.
It wasn’t new functionality or rocket science. But I knew with
the recent events
CouperDaye
would be looking for a culprit,
and I was hoping to make a lack of test facilities the scapegoat this time.
Jerome Ross turned his camera on me. I tensed, waiting for his
reaction. ‘You know, one of the questions I always ask people in my Snaps is, what
can you do for your company? I want people to be enthusiastic about their job.’
His free hand griped an invisible employee. ‘
CouperDaye
is about the marriage of creativity and the strength to see things through! Unfortunately
though,
Orla
, OTA has been tried before with your team
and failed. You know, there is no magic solution.’
‘I know that.’ It was like being punched in the stomach. ‘But,
it failed because we never have enough time to put it in place. I mean, if writing
new feeds is always our priority, general improvements can never be made.’ Careful
Orla
, I thought taking a breath. ‘You know, under this
merge we’ve been put in a position of being inexperienced in our jobs. And that
makes something like overnight testing even more important.’
He blinked at the word ‘merge’. ‘I am aware there have been issues
and that is something I’m looking into.’
‘Well, we’re under more pressure now than ever before. I mean,
there has to be some compromise.’ A sigh accidentally slipped out.
Jerome folded away the camera and leaned back crossing his hands
behind his head. ‘Listen, I would really like to come back to this when the time
is right, when the merge is taken care of. Your enthusiasm is... hugely appreciated
and I
am
on your side. But you know the
big downside of OTA,
Orla
? How expensive it is, time-wise,
to implement.’ He sucked air through his teeth.
‘It is expensive yes, but Jerome, we’re constantly paying for
being without it. You know METX was my project? Those problems were partly due to
the fact that under our current test process, we couldn’t test some scenarios before
the code went live.’
Jerome narrowed his eyes as if he was hearing an unpleasant noise.
‘And Cameron’s project, last week? That crash was a memory handling
error that these overnight-test harnesses are designed to
catch.
It should never have happened.’