Getting the most from a software development team depends on the ability to build technical consensus among the professionals on the project.
Software development groups, if they keep any records at all, are likely to limit their files and notes to results and conclusions, the work product or deliverables generated by their efforts. Programmers, especially, are loathe to write down anything other than the code itself unless they are threatened with a fine or imprisonment.
You can’t reach consensus unless you recognize it when you have it in your grasp. This means that software development groups trying to reach collective decisions are wise to agree, in advance, on the criteria by which technical matters will be decided.
Suppose you had an utterly perfect process for delivering software. Would that remove all uncertainty from your projects? In fact, is the software building process even one of the major sources of uncertainty?