At what point do you start writing an .mli file?

This is more of a personal/philosophical question than a technical problem. When you’re building something new with OCaml, at what point do you write an interface file for your module? Do you start with the interface file, and then fill in the implementation later? How far do you go before you sta…