I'm sure we've all had to deal with bad programmers before. Fact of life in any business. really...there are those who suck and those who rule and a whole bunch in between. Whether those in between know the difference is still up for debate.
I had to do a small integration project last week that didn't go too well. When you're dealing with Foxpro. pretty much anything is possible. Or. in this case. absolutely nothing.
I established an ODBC connection just fine through Windows to this remote database (different server. same network). Went into ColdFusion and set up the ODBC socket connection to that DB connection. All good. until I went to write a record. Or read a record. Or even look at the damn table. No dice. CF complains it can't find the database table.
My best guess was that there exists some sort of permission problem between the servers - probably the account that one process runs under blah blah blah. After a few hours of trying to figure it out (ending at 2AM) I gave up and did a "workaround" the details of which I will not be sharing with you today. Or ever ;-)
Anyway. the point of this story:
Designer of said Foxpro database has been adding fields every now and then. His latest addition. made mere hours after my job was done. was created as a NON NULLABLE FIELD. I mean. seriously. you fool! Of COURSE this breaks two other programs! He didn't test. didn't inform. didn't do anything to validate that this was a good idea. Where did he get his direction? From a non-technical General Manager! And then left the "testing" to this same General Manager! Couldn't believe it.
I bet the company lost some business over the weekend due to this. Weekends are a high-traffic period for their website.
But they have no way of knowing for sure. The ASP code that inserts into this table isn't wrapped in error-checking of any type. Zip. Zero. None.
How did I know he made a change? My code. interfacing with this table for a different purpose. contained a simple error check - if anything failed on the sql execution. I got an email. Simple. 3 lines. no big deal. That's ALL IT TAKES. And yes. mind you. this was in "classic" ASP. a language I know very little about (other than it sucks) and using code samples that weren't commented at all.
This is what happens when you take a dinosaur. let him write code in a language that is not the standard on your server (everything else is in CF). use a database platform that makes it very difficult to interface with (ok. so it's only SLIGHTLY worse than Access). and then have no overarching guidelines for informing the other programmers of your changes.
Change management. project management. consistent standards and some minimum level of software development best practice experience would have been helpful. God help this guy if his server goes belly up! I can't imagine the recovery effort being pleasant at all.