"The project was done in C and it was clear the original contractor had no comprehension of function parameters," Aargle Zymurgy writes, "Imagine a source file with 20 functions in it, all modestly complex (between 10 and 40 lines) that only differed from each other by which global variable they operated on. Now repeat for dozens of other modules."

"But this was just the start of the global madness. For the user interface, various notions of up, down left and right were needed. In fact, those ideas were needed in dozens of contexts throughout the program. But what to do? You just have to innovate, of course! Thus the code had the following global variables."

int up, Up, UP, uP, _up, _UP, _uP, up_, uP_;

Aargle continues, "now just extrapolate with more combinations, then do it for down, left and right. Then repeat for other variables where you could get naming collisions. Then try to keep it all straight in your head."

[Advertisement] BuildMaster allows you to create a self-service release management platform that allows different teams to manage their applications. Explore how!