round green clock at 2:20

Writing software is a creative endeavor

A few books I’ve read and in fact the majority if not all of them (from decades old Mythical Man Month to Agile Estimation and Planning or more recent) all repeat the idea that the act of creation of software is a creative endeavor in the artistic sense of the word. My years in this domain for sure confirm it and furthermore, as with any “art” if it’s not done with pleasure, it’s not worth doing.

I wanted to write this post based on a discussion with former colleagues from a previous common employer which I shall not name who had the nerves of calling to the office a big batch of employees in full pandemic rise of COVID-19 only for the reason of a top-management visit, though the same employer had 2 recent infections in the ranks of other fellow colleagues. Of course, my friends were angry for being imposed to take a risk they do not want to take and because of the “slave” mentality of the employer.

The problem of the employer however is mentality. Mentality in special of the managers who believe, wrongly, that you can only be a manager if you have a floor of 50 people over which you “manage” all present in the office, at their desks, like nice little children. It is the same mentality that believes “work” and especially creative work of the software development kind to be able to be done between 9AM and 5PM. The kind of mentality you should run from …

Nothing else more false can these managers believe. While indeed challenges from work can occupy our minds more than 8h/day as we slowly sift through the various solutions to our problem to find the one that matches perfectly, actual coding, actual will of problem solving cannot be limited to work hours or a schedule.

Take a living, breathing example of MySQL AB. In an interview with MÃ¥rten Mickos over at productivemag.com. M. Mickos had a similar interview on Slashdot a couple of years ago (with the video being removed now). One of the questions that popped-up was why is MySQL AB a company with mostly remote developers and how are they managing that. Remember that a few years ago, remote work or work-from-home didn’t even exist as a concept.

As I remember MM responding in the video is that being remote allowed them (MySQL AB) to hire the best people from all over the world, for which the equilibrium of their home, being close to their family and friends allowed them, being in the cities or villages they liked allowed these people to keep a balance and focus also on what the job required, while being able to maintain a healthy dose of work/life balance instead of, for example, wasting time on commute to an office.

If you don’t know by now what “MySQL” is … probably the most popular database engine in existence a few years ago and the foundation to open-source MariaDB and some other spin-offs or forks.

There are tons of other examples of people working-from-home (Torvalds for example) or people from Thoughtworks, for example, have been the beneficiaries of remote work for some 25 years, as they say. To quote Fowler (a Thoughtworker): “People value the fact that it’s easy to pick up children from school, avoiding the waste of time and energy in a commute, and the pleasant environment. Offering that makes an employment package more alluring.

If I were to extract two words from the above that really capture the essence is: “people value“. This subjective value is what makes people invest their time in your business more than they’d do otherwise, as you as an employer are showing them trust (by allowing remote work) and the fact that you value their work more than the money you pay for it, whenever they feel motivated to work on it and deliver (of course, constrained by estimations, commitments and deadlines, preferably not end-to-end, but allowing a budget for eventual refactoring or for them to learn a new technology).

Now back to our subject and true for most of the software engineers I know, creativity and the willingness of problem solving doesn’t come when asked, on the spot, between 9AM and 5PM, but it’s rather uneven, distributed across the day, in the pockets of 1, 2, 3h of time, in the morning of the afternoon, depending on each one of us, when we’re free of other distractions, healthy and bored, willing to do the challenging problem solving exercise that lies before us.

If we force it sadly, it leads to high-cost low quality work, done only for the interest of “getting it done” and nothing more, without the value of true passion and dedication on the side of the developer for the solution at hand.

It’s that lack of interest, caused by being forced to work inside a time-slot, inside a cage (or open-office) that causes the lowest quality code, the most frictions that don’t serve anybody good (and fore sure not the employer who’s loosing money, paying a premium on low-quality code who he himself sponsors by not infusing the teams with the freedom to be creative from where they want, when they want, but in the constraints of pre-agreed estimations, commitments or imposed deadlines).