I believe this behavior has been dubbed "Resume Driven Development". I am sure I was guilty of it when I was a junior developer. It extends from over-engineering to also selecting the hot new technologies rather than the tried and true ones. It's actually a pretty rational behavior from a self-interest standpoint. As a manager you have to balance the needs of the projects with the needs of your staff to develop their skill sets. If you don't, they will languish and the good ones will leave. For instance, I will try to work with only 1 new technology at a time in a project, try to limit the super abstractions and over-generalization to libraries, where you might get real benefit from them someday, rather than the applications that come and go.