I can understand that there are people who start from the perfect design and then implement it and never change anything - but I don't believe that this is the most efficient way of programming. You might disagree - but at least don't put this inflammatory label of 'bad programmer' on people who work by constantly refining their design.