We are using Yammer a the office. Someone started a thread to promote Agile at the office. When my reply got this long though, i figured i should just post a JE already. I edited my replies slightly.
I responded with: "Ugh, i despise Agile . It's an efficient way to deliver trash to the customer in five easy shipments. And forget the data model, it'll be worse than one designed by a java coder. If anything, we should have a group to make sure Agile stays out of our organization."
Someone challenged my generalization, and asked why coders can't design. I responded:
Why should an experienced developer in any technology not be capable of putting together a good data model? Developers and designers approach things differently. Developers architect, designers design.
Developers work on delivering something that meets the requirements. Designers design a model that supports the requirements. Meeting requirements is a perfect fit, but does not scale. Supporting requirement with a model scales.
Developers tend to work from the inside out. That is, get all the points then draw a big circle around it and call it the "model". Designers design from the outside in, draw a circle around an idea, and then check if it supports the requirements.
In Jungian terms (usually), developers are dominant Ts, Designers are dominant Ns. An NT can do both, but one will always be better, because of preference and training.
Designers tend not to code well. What they do works, but lacks runtime efficiency. Coders tend not to design well. What they do works, but lacks scalability.
Java coders are usually the worst of the bunch, as some schools churn them out with low quality. That is not to say that Java coders are bad coders. But bad coders, today, tend to learn Java. Leaving much room for generalizations.