Formalism and rationality provide checks that whatever you are saying is coherent, but in the end what is being expressed are the ideas of a human mind, and the ideas expressed will be only as rigorous and thorough as the understanding you have about the problem you're describing.
There will also be a lot of assumptions that are not included in the formal object (the code) but which are essential to the full meaning of the concepts, and are either expressed as axioms or entirely omitted. A computer will blindly execute exactly what is being written in a program, but for the system to be used and evolved in a coherent way, it depends on the users knowing those untold assumptions that separate correct from incorrect interpretations.
There is an unexplored area for a platform to support this kind of exploratory, poorly understood and probably incomplete of wrong programs, with tooling to help the user refine a program iteratively from the first insights to a complete working state. "Live programming" and online notebooks a la Jupyter work in that direction, and spreadsheets directly support it (but are limited to a specific programming model).