When MSX and Atari ST were still ‘hot’, I contracted for a short while for a game company in the Netherlands, called Aackosoft, in Leiderdorp, a small town near The Hague. The reason it was only short was because the company failed spectacularly (the financial director came in one night and started shredding documents, I just packed my bag and left). Other than the management, the people working there were great.
We wrote interesting programs, the pay was OK (assuming you got paid), and the amount of knowledge floating around there was amazing. The designers were as good as I’ve ever seen, given the limited display capabilities of the various platforms available. For me, two people stood out: Steve and Chris, both from the UK. Because most of us had a very long commute, we slept ‘on campus’, one section of the building was something that is best described as a college dorm. After work we’d get together, order pizza or Thai food, talk shop and play games, sometimes our own games (Indy500, FlightDeck), sometimes those by competitors (does anybody even remember Gauntlet?).
Steve and Chris were as unalike as I’ve ever seen. Steve would toss out reams of code, sometimes creating the skeleton of a game in a few manic nights of coding and then he’d run out of steam to become slow as molasses. At roughly this point in time, Chris would enter the picture. He’d take the pile of work that Steve had done, and bit by bit, he’d clean it up and make it reliable and efficient. They knew each other so well that they didn’t actually discuss the code much, it just got passed back and forth in this fashion until the job was done, usually in record time.
Their secret was obviously their complementary characters and the fact that they’d grown up together, and had gotten to rely on the other guy ‘having your back’, as opposed to spending endless hours on transferring the knowledge Chris had been through this so many times that he knew quite well what to expect.
Today we’d probably call this ‘pair programming’, but it was pair programming in a way that was far more than the sum of its parts. Chris wouldn’t be able to come up with an original work if his life depended on it. Steve would not be able to finish a job if you threatened to fire him. But as a team, they worked out splendid. They typically had their releases based on the same storyboards ready before we’d had the skeleton fleshed out.
Over the years, Steve had collected a whole encyclopedia of useful chunks of assembly code and he would beat these in shape just long enough for Chris to find his way.
Co-dependency amongst programmers. I’ve never seen it afterwards, and I don’t really expect to see it ever again, it was one of those small things that remain as unique on the day that I first came across it as it is today.
But what I have seen is ‘halves’. I’ve seen Steve’s (I’m fairly strongly in his ‘camp’ when it comes to personality, when the engine works, I usually find it very hard to motivate myself to continue, that was the interesting bit for me), and I’ve seen Chris’s.
Typically they wander around big companies looking for their soulmate, but they never ever run into them in a way that they recognize each other, or manage to hit it off on a personal level. But it makes me wonder if there isn’t a use for a ‘programmer dating service’, where the Steve’s and the Chris’s of this world can meet up and achieve miracles that they alone would not be able to realize.