Development is limited by the amount of cross-functional experience within operational and technical teams. In a perfect world, their experience would overlap. IT developers would have significant real-world business/operational experience. Users would have advanced computer knowledge. Each team would speak the language of the other.
In the real world, we often find gaps between user and technical teams:
- Users can rarely specify new functionality or advanced analysis with enough detail to design new systems. They normally react concretely to applications only after they see them in operation.
- IT is often forced to respond to uncertainty by adding more control and documentation to the development process. Unfortunately, the extra overhead limits resources and creativity.
- Users cannot ask for world-class solutions if they do not know that they exist. As a result, companies build limited tools even though they do not completely solve the problems at hand.
- It is easy to set specifications for a segment of the organization that do not meet the Company's overall goals.
Only real world experience fills the gap.