How can I not overengineer stuff?

1) Follow the 80/20 rule... favor design choices that accomplish more with less. Only make exceptions if some nuanced complexity is absolutely required, but typically I see these exceptions when someone simply didn't take the time to identify when something is trying to do more than it needs to. Stop trying to prove something and don't be above picking low hanging fruit, the opportunities where you can advance a design beyond convention will begin to become clearer. Realize that whatever grandiose idea you have is probably something many others would do, but don't for good reason.

2) Similar to #1, develop a more holistic understand of cost/benefit. If all you value is what something could maybe accomplish in an ideal world, then you don't have a balanced idea of all the factors involved in engineering. What about reliable operation, modular repairability or upgradability, financial cost, or simpler, more intuitive approaches to a complicated task? Start thinking in terms of how robust your idea is under the worst conditions, not the best.

3) Find beauty in simplicity. I personally trend towards overcomplication because I'm always looking for the next great widget, but you must learn to value the tried-and-true approaches because they've earned their spot. I might like the idea of a new feature or ability, but I still make sure that a new idea can win in the ring against the reigning champ in terms the factors mentioned in #2. The vast majority do not, which is why they get passed up by experienced engineers.

/r/EngineeringStudents Thread