waiting for good code Image Source

Estragon
Vladimir

ACT I
An open office. A circular dependency.
Evening.

Estragon, sitting on a low ball, is trying to reboot his computer. He pushes the power button with both hands, panting. He gives up, exhausted, rests, tries again. As before.

Enter Vladimir.

ESTRAGON:
(giving up again)
Nothing to be done.

VLADIMIR:
I’m beginning to come round to that opinion. All my life I’ve tried to debug it, saying Vladimir, be reasonable, you haven’t yet tried everything. And I resumed the struggle.

(He broods, musing on the struggle. Turning to Estragon.)

So there you are again.

ESTRAGON:
Am I?

VLADIMIR:
I am glad to see you back. I thought you were gone forever.

ESTRAGON:
Me too.

VLADIMIR:
Together again at last! We’ll have to celebrate this. But how?
(He reflects.)
Pair with me.

ESTRAGON:
(irritably)
Not now, not now.

VLADIMIR:
(hurt, coldly)
May one inquire where His Highness spent the night?

ESTRAGON:
In a ballpit.

VLADIMIR:
(admiringly)
A ballpit! Where?

ESTRAGON:
(without gesture)
Over there.

VLADIMIR:
And they didn’t beat you?

ESTRAGON:
Beat me? Certainly they beat me.

VLADIMIR:
The same operations gang as usual?

ESTRAGON:
The same? I don’t know.

VLADIMIR:
When I think of it…all these years…but for me…where would you be…
(Decisively.)
You’d be nothing more than a little heap of bones at the present minute, no doubt about it.

ESTRAGON:
And what of it?

VLADIMIR:
(gloomily)
It’s too much for one man.
(Pause. Cheerfully.)
On the other hand, what’s the good of losing heart now, that’s what I say. We should have thought of it a million years ago, in the nineties.

ESTRAGON:
Ah, stop blathering and help me with this bloody thing.

VLADIMIR:
What are you doing?

ESTRAGON:
Rebooting. Did that never happen to you?

VLADIMIR:
Computers must be rebooted every day, I’m tired of telling you that. Why don’t you listen to me?

ESTRAGON:
(feebly)
Help me!

VLADIMIR:
(angrily)
No one ever suffers but you. I don’t count. I’d like to hear what you’d say if you had what I have.

ESTRAGON:
What do you expect, you always wait till the last moment to merge your code.

VLADIMIR:
(musingly) The last moment… (He meditates.) Code deferred maketh the something sick, who said that?

ESTRAGON:
Why don’t you help me?

VLADIMIR:
Nothing to be done. (Estragon with a supreme effort succeeds in shutting down his computer. He peers at the screen, turns it upside down, shakes it, looks on the ground to see if anything has fallen out, finds nothing, stares sightlessly before him.)
Well?

ESTRAGON:
Nothing.

VLADIMIR:
Show me.

ESTRAGON:
There’s nothing to show.

VLADIMIR:
Try and turn it on again.

ESTRAGON:
(examining his hands).
I’ll air it out for a bit.

VLADIMIR: There’s man all over for you, blaming on his reboots the faults of his fingers. This is getting alarming.

ESTRAGON:
People are bloody ignorant apes. Let’s go.

VLADIMIR:
We can’t.

ESTRAGON:
Why not?

VLADIMIR: We’re waiting for good code.

ESTRAGON:
(despairingly)
Ah!
(Pause.)
You’re sure it was this pull request?

VLADIMIR:
What?

ESTRAGON:
That we were to review.

VLADIMIR:
He said by the tree.
(They look at the git tree.)
Do you see any others?

ESTRAGON:
Where are the branches?

VLADIMIR:
It must be dead.

ESTRAGON:
Looks to me more like a bush.

VLADIMIR:
A — . What are you insinuating? That we’ve come to the wrong pull request?

ESTRAGON:
It should be here.

VLADIMIR:
He didn’t say for sure it would be good code.

ESTRAGON:
And if he doesn’t fix it?

VLADIMIR:
We’ll come back tomorrow.

ESTRAGON:
And then the day after tomorrow.

VLADIMIR:
Possibly.

ESTRAGON:
And so on.

VLADIMIR:
The point is —

ESTRAGON:
Until the code is good.

VLADIMIR:
You’re merciless.

ESTRAGON:
We reviewed this yesterday.

VLADIMIR:
Ah no, there you’re mistaken.

ESTRAGON:
What did we do yesterday?

VLADIMIR:
What did we do yesterday?

ESTRAGON:
Yes.

VLADIMIR:
Why…
(Angrily.) Nothing is certain when you’re about.

ESTRAGON:
In my opinion we were here.

VLADIMIR: (scrolling through diff) You recognize this?

ESTRAGON:
I didn’t say that.

VLADIMIR:
Well?

ESTRAGON:
You’re sure it was this evening?

VLADIMIR:
What?

ESTRAGON:
That we were to review.

VLADIMIR:
He said Saturday.
(Pause.) I think.

ESTRAGON:
You think.

VLADIMIR:
I must have made a note of it.
(He fumbles with JIRA, bursting with miscellaneous tickets.)

ESTRAGON:
(very insidious).
But what Saturday? And is it Saturday? Is it not rather Sunday?
(Pause.)
Or Monday?
(Pause.) Or Friday?

VLADIMIR: (clicking wildly through Chrome tabs, as though the date was inscribed in one of them)
It’s not possible!

ESTRAGON:
Or Thursday?

VLADIMIR:
What’ll we do?

ESTRAGON:
If he pushed code yesterday and we didn’t see it, you may be sure he won’t push again today.

VLADIMIR:
But you say we were here yesterday.

ESTRAGON:
I may be mistaken.
(Pause.)
Let’s stop talking for a minute, do you mind?

VLADIMIR: (feebly).
All right.
(Estragon lays his head on his standing desk. Vladimir paces agitatedly to and fro, halting from time to time to gaze at the pull request. Estragon falls asleep. His phone begins to ring with a PagerDuty alert. Estragon wakes with a start.)

ESTRAGON:
(restored to the horror of his situation)
I was asleep! (Despairingly, to his phone.)
Why will you never let me sleep?

VLADIMIR:
You’re on call.

ESTRAGON:
It was a flaky test.

VLADIMIR:
Don’t tell me!

ESTRAGON:
I’m not fixing —

VLADIMIR:
DON’T TELL ME!

ESTRAGON:
It’s not nice of you. Who am I to tell my private nightmares to if I can’t tell them to you?

VLADIMIR:
Let them remain private. You know I can’t bear that. (Silence.)
What do we do now?

ESTRAGON:
Wait.

VLADIMIR:
Yes, but while waiting.

ESTRAGON:
What about installing a Node package?

VLADIMIR:
From NPM? I wouldn’t trust it.

ESTRAGON:
We can always try.

VLADIMIR:
Go ahead.

ESTRAGON:
After you.

VLADIMIR:
No no, you first.

ESTRAGON:
Let’s not do anything. It’s safer.

VLADIMIR:
Let’s wait and see what he says.

ESTRAGON:
Good idea.

VLADIMIR:
I’m curious to hear what he has to offer. Then we’ll take it or leave it.

ESTRAGON:
What exactly did we ask him for?

VLADIMIR:
Were you not there?

ESTRAGON:
It was a long meeting. I can’t have been listening.

VLADIMIR:
Oh…Nothing very definite.

ESTRAGON:
A kind of prayer.

VLADIMIR:
Precisely.

ESTRAGON:
A vague supplication for changes.

VLADIMIR:
Exactly.

ESTRAGON:
And what did he reply?

VLADIMIR:
That he’d see.

ESTRAGON:
That he couldn’t promise anything.

VLADIMIR:
That he’d have to think it over.

ESTRAGON:
In the quiet of his home.

VLADIMIR:
Consult his manager.

ESTRAGON:
His peers.

VLADIMIR:
His direct reports.

ESTRAGON:
His books.

VLADIMIR:
His family.

ESTRAGON:
His horoscope.

VLADIMIR:
Before taking a decision.

ESTRAGON:
It’s the normal thing.

VLADIMIR:
Is it not?

ESTRAGON:
I think it is.

VLADIMIR:
I think so too.

(Silence.)

ESTRAGON:
We’re not tied?

VLADIMIR:
How do you mean tied?

ESTRAGON:
Down.

VLADIMIR:
But to whom? By whom?

ESTRAGON:
To good code.

VLADIMIR:
To good code? Tied to good code! What an idea! No question of it.
(Pause.)
For the moment.

ESTRAGON:
Funny, the more you code the worse it gets.

VLADIMIR:
With me, it’s just the opposite.

ESTRAGON:
In other words?

VLADIMIR:
I get used to the muck as I go along.

ESTRAGON:
(after prolonged reflection.)
Is that the opposite?

VLADIMIR:
Question of temperament.

ESTRAGON:
Of character.

VLADIMIR:
Nothing you can do about it.

ESTRAGON:
No use merging.

VLADIMIR:
One is what one is.

ESTRAGON:
No use deploying.

VLADIMIR:
The essential doesn’t change.

ESTRAGON:
Nothing to be done.

Alek is a developer advocate at CircleCI, where he talks more than he should and writes nearly as much, all about continuous integration and delivery — what you do while waiting for good code.

If you liked this, you’ll probably enjoy his other tech fiction: Continuous (Dis)integration, Continuous Delivery: A Christmas Tale, and How to Inspire Envy with Your Dream Color Scheme.

Oh, and the original play, of course. :)