We all have assumptions and predilections about the best way to do our work. They are built with experience over time and eventually become so ingrained in what we do that it’s hard to imagine another way. We become attached to the first way we learned how to do something and never research alternatives. This is a problem.
Challenge Your Assumptions
A good time to do this is when you start a new project. It’s easy to take what you did on your last project and start from there. The way you do something might be fine, but it’s possible there’s a better way to do it. On each new project choose an assumption to challenge. Ask yourself questions like the following:
- Is structuring my code this way still a good idea?
- What are other people doing?
- This is the build tool I know, but is it the right one for the job?
- Could I make this code reusable?
- Have I made this too abstract?
- Do I really need to do this?
- Surely there’s a better way…
If you’ve hacked something together because “this is the only way it will work”, step away and come back later to see if you can approach it from a different direction. Very rarely is there only one way to do something. If you’re doing something that feels novel and weird, it’s possible it’s just weird.
Especially when we’re learning something new. We try something and it works. Someone teaches us a technique and we run with it and never look back.
Look back. Try another method. You may find ways to improve.
Ask someone for help. Their fresh perspective or experience may help point you in the right direction. While it may feel like it, there’s no glory in doing things “your own way”. It’s prideful, wasteful and only occasionally a good idea. For many things you don’t need to re-invent the wheel as there is a standard/framework/library that already does what you need. Do furniture buyers care whether the craftsperson made their own tools? No, only that the finished product is high quality.
Even this can be abused with hero worship. It’s good to learn from others, plural. If you take only the opinions of one person, they’re not much better than your own. Learn how multiple people do something and distill your findings down to a singular approach.
There usually isn’t one best way, but a best way for each specific situation. Context is key and the real work happens in gray areas. Get comfortable with making decisions in the gray and you’ll be a better developer. The way to get there is to constantly challenge your assumptions.