Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I've been searching around for info on contract / freelance programming as far as steps to take in the initial communication with a client (someone who has contacted me regarding a project). I am wondering if anyone has links to good resources as far as what I should send them (should I send them a document outlining "my process", etc?).

Often the initial requirements that they send are vague and I want to immediately "take charge" of the process and starting asking them questions, talking about price, etc but I don't want to be too overbearing so I'm just curious if there is much out there written about this, my google searches aren't turning up much that is good about this sort of thing.

share|improve this question

closed as off topic by Mark Trapp Nov 14 '11 at 19:18

Questions on Programmers Stack Exchange are expected to relate to software development within the scope defined by the community. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about reopening questions here.If this question can be reworded to fit the rules in the help center, please edit the question.

up vote 6 down vote accepted

Well done on having this on your radar

1) In my experience you need to approach clients with a clear idea about

a) You price

b) Want you will and will not do

2) In addition you do need your own processes (it helps you stay sane)

After that it's a question of negotiation and talking. If you are dealing with customers remotely then it's a bit harder. I have written documents that outline change control, scope, expenses etc, but it was hard not having a conversation.

So I don't think you should put a document in front of customer as a first step, but something short and succinct may be useful in case the client really has not clue. A simple check list for yourself might be good as well (help you understand risks and stops you being distracted during the discussions)

If there is no clear requirements or scope (as you mention above) then I would attempt to make that an initiation phase (with a project initiation document at the end) that you can charge for. Depending on the project it may only be a days work, but does set the tone.

share|improve this answer
great response, thanks, a "project initiation" document sounds like a great idea, anyone have any resources on what this should include? – programmx10 Dec 19 '10 at 19:32
In the context of Alec's post, the "project initiation" document explicitly states the project's scope and requirements in detail. Without such a document for a fixed price project, you and the client can wind up arguing about what you've agreed to do, and you'll usually lose. You will need to interview the client, fill in any holes with your technical expertise and outside research, write it in an organized way, and get the prospect's approval. That can be lots of work, and I charge twice my usual rate for such documents since prospects have used them to solicit bids from other people. – Bob Murphy Dec 20 '10 at 3:18

Alec the Geek's answer is great, but I'd like to add a few things.

A lot of the documents he mentions apply to fixed-price projects, and I haven't used them since I switched to only working by the hour eight years ago. For instance, I don't use change order documents. If somebody wants a change, I just give them a ballpark estimate, and proceed if they agree.

If the prospect doesn't bring it up first, I insist on signing a non-disclosure agreement very early, usually after the first or second phone conversation. I also have a standard NDA if the prospect doesn't have one. Depending on what you do, that may not be important for you.

While I have a process, I don't talk about it that way with prospects - I think it sounds pretentious. Also, sometimes clients have their own processes, and if they do, you need to fit in with those.

Take version control, for example. I ask, "What do you do for version control?" Sometimes they say, "We use X and we'll give you VPN access and a login," and then we're good to go. Or sometimes they ask, "Version control? What's that" and then I say, "Okay, never mind, I'll send you code drops. How often do you want them?" Then I use my own version control server, and they don't need to know anything more.

In many ways, the most important thing is just promoting good communication. Try to be relaxed in talking with your prospect, ask lots of questions, and be genuinely concerned about helping them meet whatever need led them to contact you. Most people will value that personal touch much more than paperwork.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.