In the Greek myth of Sisyphus as portrayed to us by Homer, Sisyphus was punished to eternally roll a huge rock up a hill only to have it roll to the bottom again, thereby showing the futility of man's existence.
The interactions between management and contractors can be seen in this same light. Often, management doesn't truly know what it wants, as far as technology goes. They have a vague notion of what they want, but no concrete terms in which to describe those needs. Contracted techies, often have concrete terms for what they can do, but no way to describe those skills and offerings in ways that management can comprehend.
I offer for your consideration: a small but growing non-profit organization desires to have one communal database which can be accessed by all its staff members via the internet, since its staff is spread throughout the state. The management of said non-profit puts out an RFP to find suitable contractors since no one on staff has the skills needed to build a database (much less a web site that can access it.) A contractor is chosen. The contract is so vague as to be useless and unenforceable (i.e. "We the contractor will build a database that can be accessed via the internet. We will also create a new template for a web site that will access said database.") No mention of how long it will take; no mention of what information will be storable in the database. NO mention is made that the non-profit already has 4 active websites using the same purchased template, in which each modified the color scheme via the CSS. Both sides sign off on this.
Fast forward 17 months. The database is complete (as far as the contractor is concerned). The database is incomplete (as far as the organization is concerned.) There *is* a database, written in MySQL, but the organization was expecting it to be in Access, since they had given a blank copy of their current database in Access to the contractor. Now they realize that it will take WORK to transfer all their data from one database system to another and that is doesn't do all of the things they want it to do. The "template" which was provided is merely a new CSS and two files, one an include and one a graphic, and is intended to be used with the existing template (which again was in place and paid for by the non-profit before the contract was put into effect). The exit contract specifies that the contractor is not liable for any problems in the database including errors, omissions or negligence on their part. It also specifies that they are free to sell the template to other customers. Shockingly, the non-profit is not inclined to sign the exit contract and wants the database to do the things they had "envisioned", instead of the things is actually does. They also don't feel it is ethically right for the contractor to take a licensed use of the template the non-profit paid for, and sell it to other people later down the road.
How does Sisyphus come into this? Well, I was hired 6 months after the contract with the contractors, and was asked to act as "liaison" with the developer, because no one understood his questions, nor did he understand their replies. I worked with this man via email and phone for months trying to explain what I *thought* the organization wanted (remember I was not at the meeting where they "explained" what they needed to the contractor) and trying to explain his responses to the staff at the non-profit. I was put in this position, because my boss was assigned the duty of "handling" the database by her boss, who was to "handle" all questions about the looks of the site, and the other program director was to handle all training on the new database. In the meantime, I continued to update and modify the in-house Access database, in order to get my assigned work done.
Now, my direct boss is holding up the process of closing this contract because what the contractor designed won't do 1/3 of what the in-house database will do. And I am caught in the middle between them, or was, until the contractor sent a letter stating that he would not meet with my boss unless I was involved, to which she replied that she and only she would decide when I would be involved. Now she has taken on the vendetta of roasting this man alive and offering his flesh to the monkey gods.
I offer this vignette as a warning to both geeks and those who make contracts with geeks. Please get someone to act as an interpreter *before* anything goes on paper. Please come up with a deadline/end of the contract *before* it begins. Please make sure both sides understand feature creep. Please make sure both sides understand that once the contract is in place, the end result is static, even if the world around you changes and moves to a newer technology. Please make sure that you have read Scott Adams books about management and have already secured your place in Dogbert's New Order.