For green-field software products (contracting is different, and much more akin to product maintenance), your requirements are unknown. Your ultimate acceptance criteria is "does the user like it?", which is an emotional one, not a logical one. This requires that you connect the rational part of your brain, which speaks the language of the machine, with the emotional part, which speaks the language of the user. Being able to exercise both parts in tandem is a very rare skillset, which is why market rates for truly innovative programmers range into the millions. (This ability to fuse emotional & rational thinking together is also a skillset required of CEOs, executives, politicians, and pop entertainers, all of which are also professions with compensation reaching into the millions.)
I was thinking more about enterprise or line-of-business green-field development. That still benefits from all of the things we're talking about, but it's a different set of problems to focus on.