You said "The problem with coding then fixing is that many times you are half way through coding your program when you realize that the way you have designed code that doesn't work, or doesn't work well."
Wouldn't using a more modular design with smaller parts help? I wouldn't bother researching all those processes and methodologies. The large number of them tell me that which is best is a matter of opinion, and I'm sure it says somewhere that you could use a combination. You could also invent your own. Learning all that would just waste my time. Just teach me all the Perl functions and maybe some good modules, and I'll be satisfied.