Software development is a creative job

Software development is a creative job.

It’s not a pleasant truth to most business people, who’d like more predictability. It doesn’t fit in the worldview of most project managers, who’d want to know how far along we are. But it’s a reality, nonetheless.

It’s impossible to say when a software product is 80% done. Estimates are hard. Long term estimates are a joke. Deep down, we all know this.

Software development is a creative job.

That doesn’t mean developers are artistes or divas. It does mean that the way we get to results will be chaotic to the outsider. There is no clear and predictable step-by-step plan. We’ll spend a huge portion of our time on tweaking a productive environment. We’ll experiment and discover. A solution emerges from our labour.

We can’t define a workflow that works across teams, but that hasn’t stopped us from trying.

For decades we have tried to standardize the way people build software. We’ve come up with frameworks and best practises. From simple tools to elaborate processes, there is no shortage of literature to describe these silver bullets.

At best, these are lessons-learned spelt out by industry veterans. At worst, we get SAFe management hocus pocus that summons legions of consultants to build nothing. Yet all of them are high-level abstractions at best.

Don’t force a tool or workflow in an attempt to standardize.

The hard truth is that there are no standards.

There are as many software development processes out there as there are developers.

Embrace that.

Don’t limit the creativity of your teams to fit some JIRA flow.