I use an agile approach for the development of SAP solutions to support your ideas.
The implementation is usually a traumatic experience that leaves the business with little desire for more changes. Small low-cost low-risk improvements will help the business start moving towards the ideal system. Users will appreciate the improvements and ask for more.
More extensive changes can be piloted with a narrow scope (a plant, production line, group of materials), perfected and then rolled out to the rest of the organization.
Developing it together
Development subcontracting based on a functional specification is especially difficult in a complex system as SAP. The functional impact of a line of code is difficult to predict.
I prefer a more interactive approach, interacting constantly during the development with the user, challenging assumptions and suggesting improvements.
After a basic solution is developed and tested, further improvements can be agreed. By focusing on the business real needs, feature creep can be avoided and the product will be a business solution, not an IT solution.
The result is a useful and well regarded solution.
In contrast, blindly following a functional specification – preferred by some subcontracted developers as it reduces their accountability – can lead to tools that do not solve the customer needs and are subsequently dropped.