An internal crack IT team is the only way to make something meaningful happen. Consultants should only be brought in when there is no in house capacity/capability. The best way to make applications happen is to have the programmer intimately know the requirements by being on site and intermixed with the end users.