For some problems, yes. Formal specification is particularly useful in two cases. 1) The problem is simple but an efficient implementation is hard or bug-prone. Examples are garbage collection, file systems, sorts, databases, and tree updating.
2) The inverse of the problem is simpler than the forward operation. Examples include matrix inversion and parsing.