Mike O (the guy who worked with A Database's Database), sent in an entertaining story about a vendor app he's been working with ...
At our shop, we use an off-the-shelf web-based application called "Magic" for defect tracking, migration scheduling, and a few other things. Magic lacks some of the features that I would consider a must, such as generating an email with the contents of a ticket. Or allowing you to search for tickets in any meaningful way. Or even providing a reasonable way to find your own tickets.
Given its little quirks, I still would consider Magic to be an "average" application. That is, until I started looking into building small applications to work around its shortcomings. My favorite example comes when I was researching a way to do deep linking so we could directly open a ticket window without having to go though all the layers of the UI. I was finally able to figure it out, and it looks something like this ...
http://magic/magictsd/Commonframe.asp?Sequence=999999&strFormSeq=0&TMRecCount=5 &ModuleID=24&QueryClause=%20%28%28%20%5BState%3A%5D%20%3D%20%27O%27%29%20AND%20 %28%20%5BInActive%3A%5D%20%3D%200%29%20AND%20%28%20%5BSubject%20ID%5D%20NOT%20 LIKE%20%27ARC%27%29%20AND%20%28%20%5BLogin%20ID%20Assigned%20To%5D%20%3D%20%27 15447%27%29%20%29%20ORDER%20BY%20%5BIncident%20%23%5D%20DESC%20Fair enough. So it's a big URL. But let's run a URLDecode on it ...http://magic/magictsd/Commonframe.asp?Sequence=999999&strFormSeq=0&TMRecCount=5 &ModuleID=24&QueryClause=(( [State:] = 'O') AND ( [InActive:] = 0) AND ( [Subject ID] NOT LIKE 'ARC') AND ( [Login ID Assigned To] = '15447') ) ORDER BY [Incident #] DESCThat's right. SQL in the querystring. And if you take a look at some of the column names they have, you can probably guess how well our development efforts went from there ...