Quote Originally Posted by pendell View Post
When you're debugging software, the answer is "no". It can sometimes take many experiments and tests to isolate the problem, which can then be corrected.

I've seen the same thing in the auto shop; While a mechanic may have a reasonably good idea what the issue is, a lot of times it's still a good idea to check the onboard diagnostics before opening 'er up. And in a few cases the symptoms could result from a number of different problems, and it will require some experiments to narrow it down before a proper diagnosis can be made.
None of which is "trial and error". The mechanic or programmer has a good idea of where to find the problem--for instance, if the car is belching blue smoke from the exhaust, there's very little point in checking out the electrical system. "Trial and error" implies that you're so clueless about what the problem might be that you can only fix it by changing random things and seeing if the situation gets worse or better. That works well over the course of millions of years when you're talking evolution, it isn't so hot when you have a problem to solve and you're on the clock.