The underlying feedback loop making this progressively worse is that passionate programmers write great code, but process kills passion. Disaffected programmers write poor code, and poor code makes management add more process in an attempt to “make” their programmers write good code. That just makes morale worse, and so on.
I’ve seen this happen time and time again, and not just within the confines of development — it also reaches well into implementation and integration projects.
If there is one tip I would offer to anyone running a development project, it’s this; Hire smart, trust your hires, align your goals with theirs and then stand back and watch the magic.
I’m not saying code reviews are bad, or that process has no place — far from it. But, every single thing you do to remove the hassle factor from your key developer’s lives directly translates to better code, more productivity and a more refined end product.