Before anything is built, we work out what is actually being asked for, what it will cost, and what has to be true for it to land. Most failed projects were lost at this stage, not during the build.

Two to four weeks for a single system. Longer where several departments have to agree on one process first.
A written definition of what is in, what is out, and what happens when someone asks for more halfway through.
Cost broken into phases that each deliver something, so you are not asked for the whole amount before you see anything work.
A schedule built around your quiet periods and your approval cycles, not ours.
We sit with the staff who will use the system and write down how the job actually runs, including the parts nobody documented. That is usually not what the brief said.
The things most likely to derail this, written down while there is still time to plan around them. A risk you have named is a risk you can price.
What has to happen before we can start, who owns it, and what it costs you if it slips.
Broken into pieces that each stand on their own, so you can stop after any of them and still have something working.
A week of sitting with your team, watching the work, and reading whatever documentation exists. We ask a lot of questions.
A written scope with costs and dates, including the option we would not take and why.
You push back, we adjust. This is the cheapest point in the project to change your mind.
Everyone agrees what is being built before anyone starts building it.