I grew up at the dawn of personal computing. I was lucky enough to have been given a Commodore 64 as a christmas present and it blew my mind.
First Logo, then Basic, and before long I was scribbling down source code on reams of dot-matrix paper my step-Father brought home from work. I created screens that brought joy to my Mum by making “Happy Birthday” flash across our television screen in glorious 8-bit. I made a database to track every delivery of every test match in the Ashes Test series from England; an application that helped organise my Mum’s recipes so we wouldn’t lose all those great dishes my Hungarian Grandmother had scribbled down on bits of yellow, tabacco-stained paper; Mandelbrot sets – taking days to render until I realised that offscreen rendering was about 100 times faster - that had my friends jaws dropping at their beauty. I even copied verbatim the machine code from some magazine so that the kids at school could use a joystick to control simple sprites moving across the screen. I didn’t really understand what I was doing but they all thought I was a genius!
Eventually I started making a living writing software for very small Independent Software Vendors. Working in small teams, we produced amazing user experiences that I am still proud of 15-20 years later. It was as though I’d managed to con the world into paying me to do something that I really loved - creating software that put smiles on people’s faces.
For too many years now though, I have not really enjoyed my “chosen” profession. Sure, I’ve had moments here and there that have been thoroughly enjoyable but I’ve also had a sort of existential crisis every 12-18 months or so. “What was I doing this for?” “I’m clearly no good at this.” “Maybe I should find another line of work?”
Thankfully I’ve usually had the fortune to work with great people that have helped me through. It’s amazing just how important having great people around is no matter what you do. But even still I’ve developed a real love-hate relationship with the only real money-making skill I posess.
Then recently I tweeted:
I suspect very few “agile” teams actively work towards eliminating all the ceremony: standups, retrospectives, etc. ironic really.
What I meant by that is perhaps a discussion for another day but it did prompt a response from one of my colleagues:
I suspect the only way to remove all the ceremony is to remove all the other members of the team.
And you know what?, I think he’s absolutely right. Software development, and specifically corporate software development, is almost entirely about the organisation and the people therein. More specifically, it is about addressing the needs and problems of the organisation which largely revolve around scaling people and processes. I’ve been saying almost precisely that for years - “software is a means to end; it is not even close to the most important problem to solve.”
Now, don’t get me wrong. I’m not suggesting that’s a bad thing at all. Large organisations exist to produce “value” for shareholders, be they employees, management boards, or actual stockholders and software is but one means to that end. Were I to work within a large organisation, I would continue to deliver the same message.
The thing is though, I never took that line of thinking to its logical conclusion. Until that tweet. When I did, I realised that my growing apathy towards software development was completely unfounded. What I’d grown weary of had nothing to do with software development. Rather, I was tired of solving organisational problems. I was tired of focusing inwardly. I missed working in a team of people that implicitly and explicitly trusted one another to build software that addressed the needs and problems of people outside the organisation. I wanted to rekindle that love I had of using software as my tool to delight people. I realised that’s why I enjoy product development, real product development - not the kind that goes under the guise of “innovation” within large corporates.
Thankfully, for the past 18 months or so I’ve been working in a company that has supported my family-work balance, and with colleagues whose passion reminded me of my own. I feel as though I can work towards getting closer to my software development roots. Ultimately, I want to go back to working in small teams of highly motivated and trusting people building, importantly, end user products. I realise that I actually LOVE software development, just not as many now commonly know it.