How do I professionally phrase "shut up and do what I'm hiring you to do"?

Dio, you’re exactly right; that’s what I’m hoping to be able to put in so many words. Everything I’ve written myself strikes as either too brusque or too spineless, depending whether I’m feeling nice (my default state, I like to think*) or pissed off at contract coding in general (right after dealing with a nightmare contract, such as when I started this thread). I’m trying to convey the message that most of the posters thus far seem to be getting, without giving potential bidders the impression that I’m whatever it is that usedtobe got the impression I was.

*For the record, my buyer rating on RAC is a 10, with 28 ratings…I’m really not the asshole my OP might lead one to think. :wink:

Fair enough.

But hey, listen…you could just C&P it and use Replace to get rid of the Ds…

:: d&r ::

NO CONTRACT FOR YOU! Come back, one year! ::CodeNazi::

Just for reference, here’s the details section of one of the earlier projects I ever posted to RAC. All of my descriptions look pretty much like this, save for the aforementioned “I promise there is a method to my madness” line I started adding later. (As you might imagine, this particular project was a good bit before I started getting paid to program. If I paid someone to do this now, I’d quit out of abject shame.)

This is the sort of thing I ask for. Simple enough, no? The first two bidders still managed to jack it up before I found a lovely gentleman in Bangladesh who got it done, no problems and no questions asked, for $10 (with a $10 bonus for reading comprehension).

Not a coder or someone who hires coders, but it seems, based on the minuscule levels of pay you are talking about, that you are looking for high quality workers willing to give your project a relatively high level of special attention despite the fact you are paying them peanuts. I don’t think the problem is your clarity, it’s the level of individual and focused attention you expect relative to the compensation you are offering.

I am quite serious - use the term micro-manage; use it proudly.
I can assure you that telling them you micro-manage up front, you will be talking their language.
Look at it this way: you can use it up front and get them to realize you are serious -OR- you can pussy-foot around it and they *will * use the term to describe you at the end of the contract, when you are dealing with the same issue and once again have code you can’t use, another coder will be bad-mouthing you and everyone hates everyone.
Be the bastard up front - the reason they continue to “improve” your design is they don’t really believe you want what you say you want. To use your example, if I get a spec from a user (who, by definition, are NOT qualified to do physical spec at the program level) saying “copy this document letter-by-letter except for cap D’s”, I WILL assume that you, in your cute-but-not-too-bright way are trying to be helpful by telling me a way to copy doc, replace all cap D with null (Hex ‘00’ NOT hex ‘40’), and will be thrilled when I come up with a much simpler, cheaper, ya-de-da way of doing what you want done.
THE POINT:
HOW the program does what it does is the concern of the programmer, NOT the user! You are demanding to specify the HOW - that, I assure you, will get you the dreaded micro-manager label.

Either tell them (it would take, what, 3 minutes?) why it needs to work the way you say - which will establish that, in this wierd case, the user DOES specify the physical design at the program internal level, or just tell them you are a bastard and they WILL do what you say. As long as you have coders coming in thinking “this is another code-slinging job - they say what, I say how”,you will continue to have this (rather large) communication problem.
Either tell them (high level) WHY the program needs to be ugly OR-
make them believe you have some fetish about bit-bashing and want to see really ugly code.

Glad to hear you don’t use screenshots…

Do you still have his contact information? :smiley:

or you could try something like this: (tongue in cheek)
Important read this before bidding
For reasons I don’t need to (and won’t) go into here. I need this project to be completed exactly as described here.
Read that again carefully. Exactly as described. Three simple words. Not almost, not mostly, not sorta like. Exactly as described
If the project is not done exactly as described here, it won’t work with some other processes I have on my system. I won’t pay for something that won’t work. Got that? Not exactly = no pay. Exactly = pay
So if you are still game then go ahead and bid. If you think you can get me to change my ways, then move along, there is nothing to see here.

I’d believe that if I didn’t keep (eventually) finding people like the Bangladeshi man from my above. Found a few of 'em, too; 28 and counting thus far. Sometimes they charge a bit more than the ones who ignore me, sometimes not – the Bangladeshi man sure as hell didn’t – but price doesn’t seem to be the deciding factor. As far as I can tell, it’s pretty much luck of the draw…I direct you to Athena’s lament in post #5.

usedtobe, I feel you, but how exactly do I communicate the “why” of it when, in addition to usually being complex enough that explaining it would take more time than the end result is worth, parts of it often have to do with the specifics of processes I can’t publically reveal?*

See, part of the reason I can’t bring myself to be as much of a jerk about this as I probably ought to, if only for clarity’s sake, is that I can sympathize. As a programmer myself, I would chew my own leg off before taking a job where I was told what to do and how to do it with no good reason why. I really, truly do sympathize.

The key difference, though, is the word job, as opposed to contract.

“Job” implies that I should have a level of trust and understanding sufficient to provide my employer with 100% effort, suggest improvements where I can, and do my job with the utmost efficiency I can muster. This long-term relationship requires that I have the information (and reasoning) that I need to do that.

“Contract”, on the other hand, means that I read what the buyer wants me to do and decide whether I feel like doing it. If he wants me to put on a purple shirt and dance the hula whilst I type Excel formulae, and he’s quite clear up front that that’s the way he wants it done, then I’m free to go about my merry way if I don’t want to do that. If offered the Purple Hula contract, I might very well turn it down…but what I would NOT do is agree to the contract, take it upon myself to decide that “eh, it’s the same formula whatever color shirt I’m wearing”, and proceed to try to bill my customer for something wholly other than what he paid for, whether I think the difference is significant or not.

I would agree wholeheartedly with the “micromanager” label if I sprang this crap on the coder after they accepted a contract. If I posted a project description saying “I want a copy of this document with all the D’s removed”, then after the results were submitted said “no no no, this copies the whole thing all at once, I need it done character-by-character,” then yeah, I’d be a micromanaging asshole. I don’t do that, though. I need something very specific, I ask for it as clearly and up-front as I possibly can, and if someone agrees to deliver it to me, then I expect that that’s what they’ll do.

If you, as a coder, reviewed my “D removal project”, decided that you didn’t deign to be told how to program, and told me you were passing on the project for that reason, I would totally respect that. What I would NOT respect would be for you to read my requirements, agree to them with nary a protest, and get pissed off at ME when I refuse to pay you for failing to produce what you agreed to.

Is that really so unreasonable?

*I suppose I could require an NDA for each project, but see again “more time than it’s worth”, and the information is never actually relevant to the actual project anyway, apart from satisfying someone’s curiosity.

If the agencies still work the way they used to, I can assure you it is NOT the luck of the draw…

Some clients got certain candidates that other clients did not - and that worked both ways as to who got to be selective…

Roland, your sample description a few posts up is, how should we say, ignorable? Too much fussy detail will find your point missed - they’ll scan the instructions, pluck out the end result, and go to town.

I would put, in as much bolding and underlining as you care to, something to this effect, front-and-center, first line:

Very Important: The way this program accomplishes its end result is as important as the end output. DO NOT ACCEPT this project if you are unwilling or unable to produce code that approaches the objective in the manner and process specified in the instructions below.

The reasoning for this is confidential and complicated. By accepting this project, you must provide code that accomplishes a certain result by performing a certain process.
(obv. this needs to be recited in any contract (don’t know how your services you use work though))

(i’m not an engineer, so if the words i use are misused because they have a specific CS meaning, I would hit up the Thesaurus)

Again I’ll point out that my rating on RAC is a 10; clearly, the buyers don’t hate me that much.

Also, serious question, no snark intended: do you understand that I’m discussing Rent-A-Coder — a website where you hire student-types to do one-off projects for a nominal fee over the internet — and not people I actually hire to do part-time or temp work for me in my office? A lot of your comments (micromanaging, agencies, clients, etc.) seem to be a lot more applicable if you think I’m talking about a face-to-face work arrangement. Hell, in that context, I’d almost even agree with you. :smiley:

ETA: Rumor, that’s a very good start, thanks. I’m aware that I need to be more punchy up front; a way to do that effectively is exactly what I’m hoping to get out of this thread.

A simple
“the internals of a propriety system with which this system interacts require this very specific method be used”. No, that is why it is called “propriety”. Trust me - I’m the one who writes the check."
?
You could try that - it won’t work, but you could try it.

Here we have the concept of “subject matter expertise” - the worker (more on that distinction later) views him/herself as the expert on program internals, and you the dexpert on the system(s) involved.
You are demanding to be the expert on the internals. To say that is both uncommon and will be regarded as a bit obnoxious is an understatement.
You need to grab their attention and yell "This ONE crummy time, the user DOES get to say HOW!
The fact that you first made this assertion in a RFP really doesn’t matter - you have to get it across loudly and repeatedly.
Please, unless you are paying $10 per job, do NOT treat contractors differently than FTE’s - that is as much for your benefit as the contractors - especially if you have FTE programmers who see the contractor. There is enough tension between contractors (over-paid prima donnas) and FTEs (if they were any good, they wouldn’t be working here) - and treating them as slave labor only makes things worse.
One job, the people who issued IDs were under instruction to ignore this group for 6 weeks (minimum service level in the contract). One of the FORTRAN whizzes saw a contractor doing what all contractors did on that project for 6 weeks - sat and read a book. He was fired for that - then they brought in another contractor, so the 6 week clock reset). The pathetic part was the firing was done AFTER boy wonder found out why the fellow couldn’t work - but had made suuch a scene, he either fired the guy or looked like a fool. As it turned out, he did both…

Oh boy…
I guessed we weren’t talking long-term contracts… But to want to get this across to people you will never see…
On the plus side, what do you care ift some kid halfway around the world thinks you’re a micro-managing code fetish?
If that one document is your only shot at getting the point across…
Hell, if I can get the work done for $10, I’d be screaming how big a bastard I am - whatever works.

I like Rumour’s start; I’d just add something along the lines of “Because of the the way this program will interact with the existing system,”
probably right before “The way this program accomplishes its end result is as important as the end output.”

That way, the coder understands (well, ideally, anyway) that there’s a technical reason for doing it this way, even if they don’t know what it is, rather than “it’s confidential and complicated” which to a coder might sound like “I don’t understand it and so can’t explain it to you”

(Though the more you can explain the technical reasons, the better, and you might try putting some of that into the specs, in a way that doesn’t reveal anything confidential. E.g., “The program will copy word files one character at a time, allowing another existing program to insert characters into the copied file at intervals” or whatever.

I’m getting a good laugh out of this thread. Athena was helpful in post #2, and I think a lot of the rest of the posters are humoring you. You’re looking for cheap labor, you’re buying cheap labor, and this is one of the frustrating points of cheap labor.

Yeah, you’ll get professionals who want to argue with you as well, but most of the professionals in the workplace (you know, those people who have actually managed to get past the interview process and get hired) manage to get this message often enough. These sites don’t screen out these folks, and at the prices you are paying, there’s really not a financial incentive for reading comprehension.

It’s the same complaint I see with a lot of companies who are “offshoring” coding work nowadays. They don’t get anything near the quality of work they used to get, because they are paying 1/5 the price for it. If you want quality work, you have to be willing to pay for it.

Your best bet would be to actually find and “hire” a single smart person to do these sort of requests for you, instead of finding a different person each time.

I’m going to have to disagree. The more you explain pointless details, the more people are apt to skip over the entire paragraph.

ok, maybe there’s a better word than “complicated” that can be used, but anyone holding themselves out to be a contractor and/or someone who is a gun-for-hire should be able to comprehend that some things are not for their eyes/brain without them getting butthurt and instead assuming that the other side doesn’t know what they’re talking about.

Yeah, but how do you “hire” someone to do $100 worth of work, once or twice a month (or however often the OP needs it?)

Really, the only people interested in that kind of work are the oDesk/RAC types. My idea of a “small job” is something that takes, say, 20-40 hours (and costs a fair bit more than $100). Anything less than that is more hassle than it’s worth.

Heck, I’ve got a couple web sites I did years ago when I was just starting to do web-based work that the clients want minor changes made every six months or so. I finally stopped even charging them for those teeny tiny jobs - it’s more of a hassle to send out an invoice and track the payments (and associated taxes) for something that I only make $100 or less on.

You’re right that $100 worth of work is a tough sell. Heck, were I a coder and not a DBA, I don’t think I’d look at a $100 project, because just all of the overhead involved would be worth more than $100, including setting up invoices, reading over the spec, dealing with some completely wierd stuff, etc (IOW, exactly what you said)

It’s a conundrum for sure, but at the same time, he’s bragging that he paid a dude $10 to complete some work for him. It’s sort of like trying to find a good handyman. Once you find someone reliable and whose work you like, you stick with that dude, you don’t keep hiring around.

You could get together with van halen so that no M&Ms go to waste.

In this case you could do better by being more specific. For example, if you’ve determined that having each character appear in a certain buffer will permit you to do the necessary ancillary operations, the specs should include: “Each character of the document, in sequence, must be placed in a buffer (of attributes xxx), before being removed from this buffer and placed in the final document. Solutions will be evaluated on whether this buffering is done as specified.”