|Think about Loose Coupling|
I used to have a PHB who was a wizard at breaking applications. I wrote an application in Perl to allow "self service" updates of information in our LDAP directory. Once they authenticated and if they had the privileges to do so they could also add new entries and/or delete entries.
I thought the code was 100% bullet proof. Error checked every piece of data that was gathered by the UI and did "does this make sense" types of checks on groups of data. No way this can break.. right?
Enter the PHB. Within three minutes of using the app to enter new people into LDAP he managed to break the app. Fortunately the default action on error was to put up a page that said "An unfortunate turn of events have occurred resulting in an application error. Don't worry though the software author is looking into it." The module that did that would collect as much data as available and email it to me so I could see what braniac stunt PHB had done. after about two weeks of this there were enough tests in place that he couldn't break the app any more.
PHB now has a job as far separated from computers as possible. :-)
Peter L. Berghold -- Unix Professional
Peter -at- Berghold -dot- Net; AOL IM redcowdawg Yahoo IM: blue_cowdawg
In reply to Re: When writing code for end users, what operator error surprises you the most?