When there is the need of new software, most of the times companies delegate the analysis to their IT department, which collects requirements and outsources the development to external consultants. What happens later is that consultants mainly communicate with the IT personnel, missing the feedback of end users and other stakeholders.
This is not an cost-effective way of building a new product.
As you know, software development process is composed of many activities. Defects discovered at early stages are cheaper to fix than if they are discovered later. Since most of development costs are for testing and defect removal, it is evident how the consultancy aiming at producing an high quality analysis and design is crucial to reduce time and the overall costs. What makes the difference, in terms of cost and time for any change request, is only a good software design, which reduces the parts of the system that need to be amended in case of bugfix or code evolutions.
To produce a good design, you should worry about consultants really understand your business, and support you to identify any bad or missing requirements, while they foresee expected changes. Only if they empathize with your business, their technological background can be synergic with your projects, and they can suggest you the architecture suited for your domain, producing valuable domain models that reduce your long-term cost.
To succeed, next time you work with consultants, try to involve them in your business, not your projects.