|Think about Loose Coupling|
Boy oh boy, do I feel for you. I've been there and, in my best Clinton voice, "I feel your pain." Typical example:
In one company I worked for, we had a huge project that was supposed to automate the creation of what we called "small group plans." I was brand new with the company and, even though I only had a small piece to work on, I felt overwhelmed by everyone tossing around business terms that I didn't know. I talked to my boss about this and he advised me on a course of action.
I spent a couple of weeks arranging personal meetings with various people who had free time and asked them to explain what they did for the company and how that might affect what I was trying to do (my job was to extract billing data from a agent/broker commission system and format it so that it could be read into an Oracle database). Once I had everything I needed, I wrote up the requirements and got everyone involved to sign off on them. I wound up with a very clear understanding of what was needed and wound up finishing my part about a month early.
Several times after that, the project manager would call me up and yell that my program was spitting out garbage. Research into the problem invariably indicated that systems that fed into mine created the garbage, but that my work was fine. By the time the project was winding down, we were 6 months overdue and (according to rumor) about a million dollars over budget. Nothing in the system seemed to work properly. In fact, there was only one piece that I knew of that never needed to be changed: the susbsystem that I wrote. It worked because I didn't know what I was doing and took the time to ask everybody and their dog what was going on.
The end result of all of that mess? "Small group coverage" was to be canceled as unprofitable. Our entire project went down the drain and the project manager was let go.
Join the Perlmonks Setiathome Group or just click on the the link and check out our stats.
In reply to (Ovid - communication rocks!) Re: A Cautionary Rant