An Ode to Software Engineers

We are an odd bunch.

We spend our days staring into screens, or sometimes into nothingness trying to understand a problem we’re trying to solve. We also spend our days trying to convince other humans that the problems we’re solving are hard and that we need computers to solve them for us. Worse, once we’ve convinced our fellow humans of the problem we’re trying to solve, then we get the unenviable task of being as precise and accurate as possible to get the machines to solve the problem with a solution we have to come up with.

We doodle on paper, we scribble on whiteboards, we type into text boxes that send them into the ether only to appear as blips on a screen somewhere else. We try to keep as much of the context of the problem and the solution in our heads while juggling the myriad issues we encounter just in the course of writing out the programs and documents that surround the key endeavour of problem solving.

At the end of the day all those things we’ve written down into code or documents get filed away only to be tweaked or read a few more times later, like an ever unfinished sculpture that changes form the more we realise what we actually want at the end. We tend to move from task to task, from requirement to requirement, from project to project, ever chasing that better way of doing things while ending up with good enough solutions at that time.

We almost never recognise the work we’ve done a few weeks later, often cursing under our breaths for why anybody would do it this particular way instead of my way – only to look at the history of the code to see that it in fact was past us doing it our way. Our tastes and sensibilities change quickly as soon as we learn about new ways of doing things, trying out different approaches the moment we get the chance.

We’re intrepid explorers and at the same time territorial settlers. We’ll try new programming languages, new paradigms for solving problems, while defending the stakes we put on the ground and our lines in the sand as strongly as we can – and abandon them just as quickly.

Our sense of self can be tied up with the work we do and the outcomes of that work. We tend to be proud of a particular trick we found to solve a problem more efficiently, more expressively, or more beautifully. We like the sense of challenge in figuring out a different way of expressing the same thing, like poets trying out different words, rhymes, metres, and styles. We also sometimes like prose to explain why we’re doing things a certain way and sometimes even come up with fiction on how things could be.

I yearn for the days when we can get together and talk about the big hairy problems we’ve encountered – like adventurers sharing tales of dragons slain and loot uncovered. So much of what we do is ephemeral, electrical signals on silicon wafers shaped and powered just so to remember what is. So much of what we do is also magical, providing utility to people’s lives, bringing joy and happiness in the moments the users and customers accomplish their tasks with what we’ve built, and powering the stuff that makes the modern societies go round. Yet we know, when we get together, that we’re kindred souls fighting the same battles, carrying similar scars, and bonding over this shared experience of debugging software that doesn’t do what we want it to do.

It pains me that this industry we’re in is moving too fast and to slow at the same time. Too fast that we’re introducing automation to short-circuit the exploration and artistic process of coding yet too slow that we still haven’t quite formalised what it means to do software engineering. I know the automation is for our own good – we cannot afford to lose more people to repetitive strain injuries and to promotions to management and software architecture or becoming software astronauts.

I’m excited for us that we get to solve harder problems with ever improving tools, greater participation from the community towards prioritising safety and security, and innovating on ever more effective software development practices.

The boon of being in this industry is not lost on me. That we are lucky to be at the frontier of the software revolution, where software is infiltrating every aspect of human society. That we are positioned to have the most impact to the world with the use of our brains to imagine what doesn’t exist and our hands to make these things come to reality. With the hardware getting better year over year and the harder problems getting more tractable with modern hardware, our jobs will only get more challenging and more rewarding.


Popular posts from this blog

Mastering the Information Avalanche: Your Roadmap to Conquer Digital Overload

Navigating the Investment Landscape with Canvas Investment Partners

HEB Community Investment: Nurturing Communities for a Brighter Tomorrow