Here is a real life example of how a good design can be implemented badly.
I went to RTA (Road Transport Authority, our equivalent of DMV) earlier this week to make an update in the registration of my car. The bank loan on the car is paid off and the lien holder’s name has to be removed from the RC-Book (car title.) I took all the paper work and went to the C-Block of the RTA office at Khairatabad.
A quick background on how the registration numbers look here in the state of Andhra Pradesh. My car has a number that looks like SS-OO-LL-DDDD, where SS represents the state (AP), OO represents the RTA office (09 in this case) within AP, LL is two alphabets representing the order of issue of registration numbers (for example: AN, BD, CX, …) and DDDD is a four digit number (like 2438). Finally, my car number would look like AP-09-AN-6660.
Here comes the good design part. They have setup four (C14 thru C17) counters where you can get registration changes done. The counters are labeled with meta hashes of registration sequences. For example, counter C14 would handle AP09AA, AE, AH and so on. C15 would handle AP09AB, AF, AI and so on. You get the idea. Due to this distribution, people are evenly distributed across these four counters. At any time, the max queue length I have seen is four people. Beautiful design!
Here comes the bad implementation part. Note that this is a government office. Three of these counters, which should have opened at 10.30am, are still unopened by 10.50am. I headed out to take care of few errands and came back at 11.30am. The queue length is one. I got my job done in exactly 1.5 minutes. How stupid! All the people who waited for more than 20 minutes should have completed their actual work in less than 5-6 minutes.
Wearing my architecture hat, can think of only one phrase: good design, bad implementation.