Nightmare client No. 14: Frankenstein's Monster
Frankenstein's Monster was misunderstood. Cobbled together out of pieces and bits of others, he tried to be good, but failed — disastrously.
One encounters Frankenstein's Monster not so much in client form, but as the emergent result of a client who places no value on consistent methods, clean code, testing, refactoring, user experience, and so forth. Dr. Frankenstein was the real monster in that story, and that is what to watch out for in a client.
Has your client asked you to take questionable shortcuts? Has you client spouted morally ambiguous principles, eternally emphasized results-now and don't-care-how approaches with zero remorse or responsibility for cleaning up the resulting mess? If so, you might be working for Dr. Frankenstein and unwittingly building a Monster.
You, as an ethical software professional, must make provisions in your work to keep the code clean. Emergency fixes and features will happen, but don't simply fire and forget — when negotiating to fix or create these things (which will, over time, add enough cruft to your code base to bring the Monster to life) you must include time and provisions for refactoring, testing, and when appropriate, reanalyzing and redesigning the offending/affected subsystems.
Sign up for Computerworld eNewsletters.