Some say that software engineering is all about creating things out of nothing. You start from an empty file, add a few lines of code, then bundle everything together, and voilà - the next Spotify, YouTube, or Figma just came into being. Things get a bit more complicated when you extend this optimistic scenario with a few minor additions, for example - customers, time, and money.
Writing software for customers, under time pressure and with the hope of eventual reward, changes the rules of the game in a meaningful way.
First and foremost, you are not the only one who has a say in how good your software is. Now, this role is taken by your customer. Second, the dimension of time introduces two new concepts - being ready too early, or too late. Both extremes can disrupt your roadmap and the overall result of your efforts. Third, to get rewarded for the outcome, you need to solve problems that are actually worth solving. And this is something that’s often overlooked by many in this industry. Why?
The instant gratification that hits our brains with every single shipped feature, fixed bug, or green test, makes zooming out and considering the big picture pretty tricky. Sometimes it is reinforced by the fact that minding the business is considered “not your job”. When you add to that the neverending pressure of time, solving customers’ problems may very quickly turn into Jira Olympics.
How to know which problems are actually worth your attention? Mind the business. Challenge requirements. Ask and dig deeper. Build your network. Go beyond code and talk to people from customer support, product management, and marketing. Learn more about your competitors. Follow their social media and compare their roadmaps to your current priorities. Get the market. Get your customer.
And above all, understand how your employer benefits from what you actually work on every day.
Because if they don’t, you’d better pick some better problems to solve.