When people solve problems, they often start with a bad or even faulty solution and then iteratively optimize the result until it meets all requirements well. It's not so much about not making mistakes, but about not getting stuck until the solution is good enough.