Software engineering is creative

Every decision is creative which is enjoyable, but can lead to overattachment, conflict and burnout

Profile pictureToni Petrina
Published on 2023-03-132 min read
  • #opinion

It's the eternal question: is writing software a creative endeavour? Or is it just a white-collar job filled with repetitive grunt work? Are we just too sensitive?

After spending time in engineering for more than 2 decades, I think it is firmly in the first category - even when the job is repetitive, when it feels like no decisions are being made, it is still highly creative work.

The creativity comes in various shapes and forms, but daily creativity involves naming and structure. Naming happens all the time: files, classes, functions, variables. And it is only the "second hardest problem in computer science". The structure refers to the act of organizing code: be it within a unit (function, class, file) or within the project. Sure, naming a function doesn't feel like creating art, but it doesn't have to. It was a decision made based on experience, feeling - and we feel it was the right decision to be taken!

Some of these are preferences, some are habits. But they are still employing the same part of the brain as any creative endeavour would (citation needed).

Quite often the need for refactoring stems not from any functional advantages, but to satisfy internal urge to be creative about naming and structure.

This constant creativity takes a toll on engineers - when we create something, we feel that it is "ours" which makes it hard to accept when others don't accept it. It leads to overall defensiveness, overattachment, and in the extreme cases even burnout!

It takes quite an effort or plain experience to detach from one's output. When someone is passionate about something, discarding or preventing such work (or even delaying shipping) causes stress. It is not just code that we wrote, we left a piece of our creativity there.

Just being mindful of this is already a good start. This will slowly lead to detaching ourselves from the code we produce. Hopefully, it won't lead to apathy but to mere realization what is important and what is not.

“One of the symptoms of an approaching nervous breakdown is the belief that one's work is terribly important.”

Bertrand Russell

This is #Day4 of #100DaysToOffload.

Change code theme: