Developers or programmers like to think that building software is a creative pursuit.
Creativity implies freedom to do what you like. However the way that we control the output of the software delivery process requires formality, procedure, repeatability in order to be successful.
Formality works against our creative instincts. However getting something into production gives us a feeling of completion and satisfaction.
“I did something and it helped someone”
Two parts of the puzzle.
- I did something.
- It helped someone.
We can be cynical about development. We can want things to be more chaotic and more creative but any true software engineer enjoys working code (a problem solved) over a broken mess.
Creativity is a small but vital part of what we actually do as professional software engineers. If you’re on the more creative side sometimes it can be hard to just “park” that instinct and think about what delivering software should look like.
But by focussing on simplicity, elegance, self-commenting code, or even heavily commented code which explains our thinking – we give a chance to the next developer, to the next deployer of our software, to the next SRE, to be able to deliver and support quality code in production.
That after all should be our goal, right?