to understand the company business. Internal IT developers are (or should be) trained to _gather_requirements_. When requirement gathering is done, a developer should know enough about the business to improve it with computers. And, above all, the developer has to understand the limits of his/her knowlege - where to stop and ask more questions.