Find Good Problems

Your job as a software engineer is not just picking up Jira tickets and completing them. Hopefully.

You need to be on the lookout for good new problems to solve. It's good for your career to drive this type of work and ultimately this is how you'll both increase impact and increase your own satisfaction.

But what makes a good problem?

Richard Hamming wrote a great bit on choosing good problems in science and picking a good software problem is similar. You want something important and approachable.

Knowing what problems are important is a skill in itself. You have to understand what your organization values and you need to be familiar enough with the systems to know where the shortcomings or opportunities are. It's your job to connect these values with gaps.

Figuring out if the problem is approachable is also a function of familiarity with the system and confidence in impact. Most software problems are not unsolved scientific problems, but having an understanding of effort vs impact will help justify your problem as worth tackling.

Look for things that nobody else is really paying attention to. These areas will come up as you gain deep experience from working on specific parts of your system or from taking the time to gather new data that others haven't been looking at or even just talking to people outside your domain to understand their pain points. Use this to get a sense of effort vs impact so you can justify your work. Just keep an eye out and you'll run into all sorts of good problems.