On facing massive problems
Have you ever faced a problem that was so difficult or so large that you gave up before even trying? This is something that’s holding back a lot of engineers – including senior ones and maybe especially senior ones.
When you are a junior engineer, your knowledge is limited so you may be scared of trying to resolve problems where you have no expertise. My best advice is to
- Give it a shot
- Ask for help if you are stuck
This is by far the best way you can grow. For example, you’ll never become a JVM expert until you actually have to play with it and figure out all the weird flags and possible issues.
As you become more senior, you will get a better sense of how complex a project is and how long it takes – but you should keep two things in mind:
- If the project is on a domain you’re not familiar, your estimate might be very off
- You don’t flatten a mountain a once – you start by chipping at it
It’s fine to give a shot at a problem even if you think there are only 5% of you being successful – just make sure you communicate about the risks and why you are giving it a shot beside the risks. As you get more clarity on the problem, you can either:
- Fix it because it’s manageable
- Document the issues, write a proposal and figure out if the staffing requirements are worth the benefits
One reason and maybe the primary one I have been successful (beside being lucky) in my career is that I have been able to tackle multi-year problems and/or difficult ones that people didn’t want to give a shot at. Believe in yourself, communicate about it and take your shot 🙂