Ideas for a Healthier Engineering Environment
Ideas for a healthier engineering environment
We’ve all had good and bad work experiences, but how many of us are learning from them? Having recently left Deliveroo I decided to put together some things I thought were good engineering guidelines based on the experiences I’ve had at several companies so I could try to find a future workplace which was in-line with my ideal way of working.
Don’t assume you have complete knowledge
No-one is part of every conversation in a company, and very few, if any, engineers remember every fact from every conversation they have, so assuming you know all of the reasons behind someones actions is always going to lead to mistakes.
If you’re interested in something find out about it. If you don’t agree with something try and find out why it is the way it is. Both of those are great ways to learn new things.
Consider the views of others
All code gets rewritten at some point, so people who are defensive over their code or their views just because it’s their code or views tend to slow down innovation.
If someone comes up with an idea that’s not great then it’s usually either through lack of their own education, or because they are aware of something that others are, either way that’s useful to know. If they haven’t fully understood the reasoning behind a choice, help them, and future engineers understand why the choice was made by documenting it in an accesible way, or, if they do have additional information which wasn’t considered during the decision making process, take a step back and see if it could change the outcome and make the product even better.
Unblock others to help everyone move forward faster
Start your day seeing if what you’re doing is the most efficient thing to get the team moving forwards. Are your colleagues waiting for someone to review their code? then go do it! Is someone struggling with a problem? see if you can help! Even if it’s offering to get lunch for someone who’s slammed with work it can help. Don’t assume that cutting code is the most impactful thing you can do.
Don’t create unnecessary code
A lot have problems already been solved, so you should ask yourself at the start of any project “If we build something new, what will make it better than existing solutions?”. Could you buy or license a solution which will do everything you need? Can you contribute to a project to make it a better fit for the problem you’re trying to solve? If you’re part of a team, and the only reason you can come up with is “Because I want to learn X”, that might not be a reason to put X into production.
Hopefully you’ll find this list useful in either finding a great place to work, or helping the place you are currently working become even better.