There are a lot of programmers who are “over-engineers” which I guess the extreme opposite is the “brogrammer”. I consider myself a “practical programmer”. Over-engineers are people who look to the “Rube Goldberg” way to get to the finish. Like over-lords they want to micro-manage every detail because if offends their obsessive compulsive nature. While the point is to get to finish, they are the ones who tend to relish the process rather than the result. How do you know if you are one?
- You create a tool for another tool. “I’ve got this great tool it helps you do X. But to do X you have to use this other great tool called Y. I’ll have to create an installer, an icon and documentation, but I’ll save that for later.” Unless the tool saves at least double the time, I would avoid creating any tool at all.
- You never finish any projects. This is for the person who doesn’t even like the result, and ends up doing it for just the process. Back in the day I was making a fighting game, but focused on the sprite engine, then just quit. After about 5 years of doing it this way I stopped.
- You can’t document a moving target. Since everything changes all the time (OCD), you just can’t document anything. Everyone is left out of the loop. If you cannot teach someone what you made, you cannot grow, because no one can take over.
- You pass a deadline just to refactor code. “Screw the self-imposed deadline, screw marketing! This code must be refactored now!” Basically under the hood is more important than the final result.
- You want to use multi-core PureMVC on Hello World or Pong. It’s too simple, so you can’t let that stand. Get Robot Legs or PureMVC on it immediately!
- You make getters and setters when you could have just set it to public. This is for AS3, people do this even when their getters and setters have the same effect as setting them to public, I have no idea why.
If you want to add anything to my list let me know in the comments.