Working on my Own
I've been working on a sizeable software development project over the last few days in the office, and after reading some of the conversations on the #developer Slack channel at Ghost recently, it brought into sharp focus just how much I typically have to carry on my shoulders compared to others.
I guess when I say “others”, I really mean the rest of the world – when in reality I have no doubt that I am probably the “norm”, and close knit product development teams are something of a rarity.
Back to the/my story.
While working on the code over the last few days I have been building out my own class libraries, methods, and so on – inventing as I go. I've been inventing conventions, and setting out particular ways of doing things that suit the project in question – unit testing methods, and skipping around an increasingly gargantuan code base like a crazed madman. The fact that it is slowly coming together, and slowly bringing a complex user interface to life is more an illustration of monkeys and typewriters than of deep thought and stunning insight.
I do wonder though. I wonder if the codebase might have evolved differently had I reviewed the code with another developer. The only conversations I have had were in the kitchen, while making coffee. We tend to make rounds of drinks purely to step away from our desks for a few minutes. Inevitably some stunning insight always occurs to you while waiting for the kettle to boil, and then you slap everybody's drinks together in a hurry in order to resume your place, hunched over a keyboard, desperately trying to remember the idea that seemed so obvious only a few moments earlier.
Of all the developers I know, my code tends to be among the most mechanical, the most correct, the easiest to read, and the neatest. I don't mind using Visual Studio, but I'm far happier in a plain old text editor (syntax highlighting is a bonus) – I guess my habits are the product of years spent doing web development on Linux servers via SSH connections. There was a time when knowing how to use Vi was a valuable skill.
I'm also one of the few developers I know that really cares about source code management – assiduously checking in my code at the end of each day, and trying to reach a good point in the moments before so anybody looking at the commit and it's verbose notes will be able to make head or tail of it. After many years arm twisting, I finally got the entire company to switch to Git this year, away from an unholy mixture of Subversion, and Team Foundation Server. We have immediately gone for a cloud hosted solution, rather than run our own Git servers (although we do in a way for backup purposes).
My next sideline project will undoubtedly be “Slack”. I've been reading about it for months, and wishing we were using it, but fear I may face a similar battle than I did over source code management. We are often at disparate ends of the country while working on client projects – having some kind of back-channel would be invaluable, and that's exactly what Slack provides.
Anyway – as ever – time to make a drink.