It really works... I've 'tried' it writing my first database program. Discovering fundamental mistakes and their results (like changing database layout when program is almost finished), etc. leads you to the point, when you spend much more time changing your code (changing != improving) than writing/adding a new one. So costs (not only time costs) rise exponentially with time. Now I know that spending even few days normalizing your database decreases total costs of developement process and then to write a program is just to code rules and actions planned during normalization process.
Greetz, Tom.