A coworker sent me a link about Websites more frequently going down on Mondays. While the gist of the article was about developers gettting an "inspiration" over the weekend and crashing Web sites with it, the quote that got to me was the last one:
However, you still get managers who don't understand the technology and want changes implemented yesterday. If it goes wrong it's the developer that ends up with egg on the face.
Managers make management decision and developers make development decisions. It seems self-evident. If I had the gall to tell the owner he only has one week to develop that new business plan, I'd get reamed. That same owner has no problem telling me that I have to get "X" done in a week, regardless of the actual work involved. If I had a dollar for every time I've heard "it's only a simple database change" ...
Once both sides understand that there's a clear separatation between the two, things go more smoothly. Management still makes technical suggestions and developers still make business suggestions, but ultimately, when they tell me the "update" button has to be hot pink and purr like a kitten, that's what I need to do. I might suggest that it's not a good idea, but ultimately, I don't put my foot down unless it's impossible, illegal or unethical.
Conversely, management might suggest to me that the Web site needs to support IE, but when I point out that the Web based app is only running on Linux boxes, they follow my lead. Life is easier this way.
The one remaining problem is for a hands-on small business owner to realize that just because he signs your checks doesn't make the impossible possible.
I remember one project where the company owner wanted an HTML upload that pre-filled the upload path on the client side. Thankfully, it's impossible (unless you're running IE, maybe), but it took some explaining.
On second thought, maybe some malicious JavaScript could do it, but I'll stand by my original assessment of "not a good idea".