Image credit: The Marmot
During my whole product development career I always tried to focus on the most important aspect, feature, what ever... and get that done first. I usually didn't work based on a very well defined plan, but anticipated change based on the showed results. This for me worked fine, I just took small steps to reach a goal. In case of software it should always work and feedback or reviews were always done on the 'real' product in development. Of course I was also expected to give delivery dates of the 'final' product, but constantly showing progress helped to create confidence around timely delivery.
However many people around me considered, and still consider, this as a chaotic way. This of course caused many discussions on much better defined requirements, designs and a complete planning. I often tried to explain that my way of working was not chaotic, but just more iterative. The first signals that I wasn't crazy became visible when agile development processes became in fashion and for many showed that iterative methods do work.
For me personally it was sort of a victory to read 'Getting Real', by 37 Signals, because they managed to describe very clearly my thoughts:
1. Paper is very patient, leading to exploding number of requirements
2. Focus on the most important feature and in the beginning ignore all details
3. Get something working as soon as possible
4. Accept the limitations of your environment, don't use workarounds
5. Deliver feature by feature, one at a time
6. Anticipate change, constantly review and rework
For everybody involved in product development I can recommend to read Getting Real by 37 Signals. I lost my paperback copy. I probably lent it to someone that wants to hold on to it or ripped it to pieces in absolute disagreement... May be one day it will resurface and you can borrow my copy.