A sufficiently detailed spec is code

A detailed software specification can effectively serve as a form of contract between stakeholders and developers, as advocated by the Haskell community.