Martin Fowler is so right on with this latest post, CustomerAffinity.

This ties to a recent post of mine on creativity. Taking a real interest in the business is the best way to understand and appreciate the problem. The more a developer invests in understanding the business and the business problems the better they’ll become at being able to help contribute in the developing of requirements.

This happens because it is far easier for an engineer to start to pick up and learn the business than it is for the business person to start understanding the highly technical nature of software engineering. As this happens, the engineer can anticipate needs of the business user and can more readily offer options. He can do this because he can quickly think through the realm of possibilities while the business user doesn’t know what kinds of things are feasible or even possible.

This is why I am a huge fan of seeing developers/engineers having some part of their compensation tied to performance of the business, preferably in some form of equity.