I read a great blog post by David White about irrational thinking by developers who call themselves “architects.“ Here's part of the post:
I think a lot of architects go for what they consider architectural purity over ‘getting stuff done’. I am not suggesting we all go out and just start hacking things together but there is a balance between good, solid architecture and the common sense of getting things done. I vividly remember an architect 4 years ago say he would rather design the perfect OO system and then worry about performance. The sad thing is that still ranks today as the craziest thing I have heard and I hear things like that all the time. Why architects can not deal with the realities of technology, business cases, or the dollars associated with what they are proposing still boggle my mind.
I've personally worked on software with guys who overarchitected applications to the point of rendering the app useless. Why? Re-inventing the wheel, inflexibility, ego, and design-pattern frenzy. Don't get me wrong, desing patterns are great - unless you start forcing patterns on problems that don't fit the pattern! Do the world a favor and don't live your life according to the GOF book. Seriously, there are guys that are design- and structure-crazy.
Just as a side note: some of this behavior I see from guys who used to be VB6 programmers and for some reason are too ashamed to admit that they were VB6 programers. They switched over to C# to feel like “real developers“ and avoid VB6 at all costs. Did COM suddenly die? Is everything managed code now? It cracks me up because these guys won't write VB6 code even if it is the right tool for the job. Not only that, they won't install VB6. Sorry guys, but using C# for COM-based development over VB6 is like hammering a nail with a wrench.
Anyway, enough of my off-topic rant about VB6 haters...my main point being that these guys suddenly consider themselves OO experts and “architects” who suck up money and time from companies because they are so busy talking about “how things should be done” instead of “how to GET things done!“