We like to get functional prototypes to stakeholders as early as possible in the development process. Prototypes help frame the discussion by putting features in context, helping teams make better design decisions and uncovering edge cases.
Designers present every sentence the customer reads, every action they take, and every screen that system generates in response. The designs follow a customer from an initial trigger all the way through completing a goal, and they show how the design supports every step in that flow.
Combining a design process like this with functional prototypes creates partnership between design and development teams that can lead to faster feature cycles, fewer bugs, and less rework by all involved.