1. Slow Things Down
Everyone seems to be in a rush nowadays to push out features, move up the chain and get those sweet raises. However, most of this comes back to bite you in the ass once software you’ve created becomes a nightmare to maintain, add features or deploy. One concept that gets lost in software is the requirement to be perfect, while not achievable something to strive for. Perfection doesn’t come overnight, and rushed solutions end up straying further from that. Take time to design, discuss engineering solutions, play around with proof of concepts and mold into quality software.
Next, things constantly change, so trying to release a product without fully fleshed out requirements. I’ve seen several cases of developers trying to push something out nobody wants, instead of waiting and pushing something out that others want. Unless requirements are ultra clear for a project, I wouldn’t hop into any implementation and question as much as you can.
2. Question Everything
Sweat the details, it’s super important. If you see something that seems odd, say ask a question about it. As a developer, explanation is key to understanding. This skill grows overtime as you understand what to look for in projects and what really stands out. However, whether it’s something as small as a configuration to an architectural choice, question everything otherwise it’ll stick. Remember that a lot of software is built in silos so 1 point of view might not be enough for a project. Back and forth is key into building properly designed software. Ideas from a diverse set of individuals highlighting different important items are going to build quality software compared to non-challenged lack of ideas type software.
Final note about questioning everything is don’t perceive it as rude. We as engineers are trying to solve a problem and do it correctly, every detail is important. Someone else will work on this project one day and it’s you’re responsibility to question everything before bad decisions are made in a silo.