I was honoured to be asked to contribute to Al’s blog, and I hope I can do it some justice.
My first couple of days in the office were spent sitting on the front desk, whilst people paid £1 to Guess The Name Of The Cuddly Toy. Eventually, with the contribution of the postman, the sheet was full, and Al was revealed as my new owner.
Daniela delivered me to Al’s desk, forgetting my name on the way – thanks. It’s Samson. Al is eyeing me warily; he’s reminded of my biblical namesake, and considers me an unwelcome harbinger of a haircut.
Al’s desk is dominated by four large monitors which cluster over two keyboards. A Mac and a PC, with a desktop background consisting of an Icelandic mountain range stretching seamlessly over all four monitors. He seems inordinately proud of this.
Aside from the computers, it’s not the tidiest desk in the room. There’s a cluster of unread cell biology and image processing papers in the corner, and a stuffed parrot lurking behind a monitor.
Most of the developers here are working on new features. Al tells me I’m not allowed to mention specific features until they’re complete – and maybe even then. “It’s important that we keep our options open,” he explains. “Until something’s complete, we don’t know how long it will take, or even if it’ll be successful.”
The point seems pertinent. This morning, he has spent most of his time with his headphones on, fingers fidgeting across the keyboard, and grumbling at the screen. The feature he’s adding is taking longer than expected.
“We’ve spent a lot of time recently reworking some of the software architecture behind it,” he tells me. “It’s supposed to make it easier for us to add new features in the future, and to maintain what we’ve got. But porting over the old behaviour is taking longer than we expected.”
Does that mean all the architecture work was in vain? Al laughs – no. He shows me two C++ classes which do the same task – one in the old version, one in the new. I’m no C++ expert, but I can see that the new one is much simpler. It has many more methods, and they’re all shorter.
“601 lines of code in the old, 217 in the new,” he tells me, irrelevantly, “and most of those 601 lines are duplication, or laborious listing of literal strings and version numbers. We’re not re-writing – we’re refactoring.”
Refactor is a word I hear a few times today. Rather than just copying code around, the team seems keen to leave it in better shape once they’ve touched it. Is it working? Al shrugs.
“It’s immediately easier to read,” he says. “Our method names make sense, and our variables are all – well, mostly – properly encapsulated. But the proof of the pudding is in the eating. Ask me again in five years’ time.”
At this point, Daniela stands up and mutters, “Scrum”. Six people stand, stretch, and walk over to the scrum board. It’s covered in post-it notes. Al speaks first; he moves a couple of post-it notes around, and mumbles some excuses for not having finished something. He prods at the post-it accusatorally.
“But I will have it finished by tomorrow,” he says.
The others move post-its around; someone asks for advice on fixing a problem. Only the programmers speak; something to do with pigs and chickens. Then the burn-down chart is updated, with a few more hours of work knocked off.
There’s a bit of paper above the board declaring, in big letters, “April A Sprint Goal: Functional Equivalence”. “That’s a new thing,” explains Al. “The idea is that by the end of this sprint we’ll be finished our re-architecturing, and be in a better position to add even more new features. I was kinda hoping to keep everyone focused on that goal.” Is it working? “Ask me in five years.”
After lunch, Al disappears off to some top-secret meeting about new features, leaving me to stare idly at the flesh-and-blood rabbits hopping around in the hedges outside. To be honest my mind is drifting; I’m told there’s two young kids who’ll give me a more entertaining life back at Al’s house. I hope they don’t chew my ears. I hate that.
Well, thanks for reading this far; thanks to Al’s colleagues for raising a few quid for charity; and thanks to Al for letting me write this. I’ll be back in five years to see how he’s doing.