I came across this interesting question earlier and it did set me thinking… Consider the conventional SDLC (Software Development Life Cycle) which consists of the Analysis, Design, Development, Testing and Implementation phases. Of these 5, which would you pick to be the most important?
Of course, generally speaking I would say that all 5 are important and that you will not be able to attach any less importance to one over another. However, if I really had to choose, I will favour the Design phase over the rest. A good design will immediately highlight any requirements that may have been overlooked during the Analysis phase, and will also serve as a guideline during the Development phase. You will also be able to perform tests against the design specs. However, there might be less correlation between the Design and Implementation phase, unless its a hardware project instead of a software project.
What about your take on this question? It should be interesting to see the different viewpoints out there.