Mark Dryden works for a small software company with clients spread across the state. One of their clients had some in-house development skill but wanted to outsource a fairly large project: redoing their sales database. The client had a number of features to be added and wanted to improve its interface, which had a cyan-colored background featuring a magenta-colored map with sunshine yellow controls placed in seemingly random places. However, the in-house developer vehemently disagreed, claiming that this could be handled with a few simple tweaks instead of a costly, out-sourced rewrite.

The client held a meeting so that the in-house developer and Mark could meet and make their case for their solution. Having seen the code and database structure, and realizing that the GUI was actually the application's strong point, Mark knew it would be a fairly easily sell ...

Mark: I'm a bit puzzled why the first line of the address for each customer is the primary key in the Customer's Table ...
Developer: I decided that was the most unique item for each entity
Mark: So what happens when you get a customer that shares the same first line of the address?
Developer: That generates an error - the user then rings me up and I generate the customer record.
Mark: Ah - so you change the first line of the address, what to?
Developer: Well, I prefix the line with a numerical value - indicating the duplication number.
Mark: So ... a new customer with the address of "1 Main Street" would be changed to "2 1 Main Street"?
Developer: Correct
Owner: Does it?
Developer: Er ... Yes.
Owner: ...
Owner: Well, that explains why most of our marketing and billing post is never delivered...

Things seemed to go downhill from there. It all ended well, though; by the time Mark's team went in with the project, the original developer seemed to have moved on ...

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