[prev] [thread] [next] [lurker] [Date index for 2003/08/28]
We've probably all had to maintain horrible software, so even if I haven't met your particular burden, you have my sympathy. I think I'll avoid listing which jobs and places of employment were responsible for these disasters, but I have at one time or another, had to maintain all of the following: * poor directory structure (modules, logs and cgi in the same directory) * variables shared between scripts and modules without ever being explicitly passed * the same sort of data (such as translations) stored in multiple locations--sometimes in a file, sometimes in a database * credit card numbers stored unencrypted in databases * code littered with exceptions for projects or features which have since expired or faded away * unused code which hasn't been deleted * unused database fields * modules which export all 200 functions by default * hardcoded deployment information scattered across dozens of files * no revision control in sight * no tests * no documentation * multiple versions of the same application which differ just enough to make maintaining each a seperate nightmare * no development environment; everything is done on the live server * multiple HTML pages embeded in a single script * thousands of lines of code without a subroutine * subroutines which neither accept arguments nor return values, but set global variables * dry run code which shares nothing whatsoever with the real run code * code which avoided nested data structures by having hash values which were in fact the names of the other hashes (NOT: $hash{foo} = \%bar, BUT: $hash{foo} = 'bar') * subroutines which can take dozens of optional arguments, with each specifying a slightly different result in the routine (without using named arguments) * OO modules that did nothing which required OO, but instead exported a bunch of 'methods' * passwords in plain text in cookies, databases and URLs * really odd home-grown templating/cgi syntax * error messages with creative values like 'ERROR 2' * single letter variable names (when variables > alphabet, use 2-character names) I think I have to stop. I'm getting depressed.
Generated at 14:02 on 01 Jul 2004 by mariachi 0.52