Of course it is true in any design or building effort that inadequate plans lead to inadequate results. So the majority of the effort needs to be spent in designing the specifications. After that, the project is just writing code. Of course, writing good and efficient code is no small task, it is a major challenge, no doubt. BUT the first part of the effort is in the development of an adequate specification. Defining responses to all possible exceptions at each stage of a program is both hard and tedious indeed. But if the task were trivial than everybody could do it well, and we can see that is not what happens.