this is a principle that is perfect for that environment
it states that you should spend more time fully designing the application before you even write the first line of code
Clearly, this says waterfall all over the place, where you can spend the required amount of time completely defining everything, with the hopes that once you start developing, you won’t spend too much time finding and fixing design flaws
Of course, like with many of the other principles described here, it is not without its detractors
Especially agile developers tend to argue against this one, considering that the ever changing nature of agile life cycles make this principle useless
Unless of course, you enjoy spending time designing something that you know will change completely by the end of the project