A common diagnosis of many troubled app dev shops is that they don't understand the business well enough.
The result is developers build applications that don't quite satisify the business needs, are hard to change, have poor user experiences, are not delivered on time, or any combination of the above. Despite all the silver bullets over the years such as formal methodologies, new roles, tools, and technologies, app dev shops remain largely afflicted.
According to a survey I conducted last year, application developers concur that a common characteristic of great application developers is that they have a deep understanding of the business domain. Understanding the business does not mean you read the docs. It means you know the business in your bones.
Great application developers have talent that is inspired by a deep understanding of the user, a deep understand of the business goals, and a deep understanding of all that is possible with technology.
Developers are not going to get this deep understanding of the user and the business by sitting in a cube on the 9th floor overlooking the parking lot.
They need to get in the game physically and mentally. Getting in the game is difficult if application developers are forced to live in District 9 by the business or by a self-imposed aversion to break out of it.
What do you think? Are most developers living in District 9 by force or by choice?