Having one of those headache-inducing days. Adding "unlisted number" features to the VoIP billing system. It's a common situation in accounting software; an event occurs at some unknown time (exporting the values for the telephone book), at some other (known) time, the user may change whether they want the feature or not for "a month", while at some third time you figure out what to bill them for "the month" of services. You also, of course, have to deal with the phone number, the VoIP account, or the ISP service being disengaged (and potentially re-engaged) as well.
There are half a dozen servicable approaches to the problem. All of them are either messy or have corner cases that are not acceptable (read the customer can either be cheated or cheat the system). Any approach that is chosen is likely to take the entire budget for the feature, but has a good chance of turning out non-functional (or ugly) in the end.
So mental gridlock sets in as the mind tries to figure out which of the paths is going to result in a better likelihood of success with minimal uglification of the code. Sit pondering for far too long, however, and you blow the budget anyway. Sometime in there the stress triggers a headache and you begin to think "why aren't I teaching a class somewhere instead?" but that doesn't get the job done. In the end you wind up just choosing a path and marching down it, better something ugly and finished than an unfinished dream in programming.
Pingbacks are closed.