The best software developers I’ve worked with so far (in the last 20 years) are a particular type of person. They tend to blend the creativeness of an artist with the technical adroitness of a scientist and the clear-thinking of a businessperson.
That’s quite a lot to personalities to fit in one head.
The trouble with creative types is that sometimes we’re a bit needy.
Almost gone are the days when you could have a great idea and code away with your mates on the next “killer app”. Those success stories and startups you read about are outliers, many markets are saturated. You need a genuine differentiator to succeed and it’s a long and painful road to get there.
In many successful (and unsuccessful) companies it’s a rare luxury to work on genuinely green field software development projects. Legacy code is the every day reality for most of us.
That new and shiny creativeness is a different beast in large-scale or legacy software development. Step back and take time to recognize that your needs are being fulfilled – but in ways you may not be open to seeing.
For those of you who live in the harsh reality of “normal”, when truly creative opportunities come up, relish them but don’t cling to them.
Embrace it, make it work for you and remember how every genuine improvement you make is one more step along the road to “better”. And that in itself is creative.
There is art in refactoring
There is love in fixing bugs
There is rare beauty in using coding standards
There is satisfaction in fixing broken tests
There is joy in shipping release 29.5.36 of your successful but old product.