Oh boy. This funny article brought back a lot of memories.
I remember once receiving some legacy VB code, and trying to figure out what the hell was happening. It was a nightmare.
3 or four modules containing huge 200-300 line procedures which accessed the database using lots concatenated strings SQL text inside.
The best part was that one of them was named Doit() . After about 200 lines or so, it called another method. That one was called Doit1(). That was the longest week of my life.
That application had to be rewritten from the ground up, that's how bad it was.
Sometimes people waste entire man-years on this stuff.
I think it all comes down to companies not willing to spend the extra buck on the more experienced programmer, and think they can get away with it. They only end up paying much much more, not in the distant future, mind you, but starting right from the day that person comes on board. You can actually hear the money going down the drain on these occasions.