Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

As a freelance programmer:

  1. What is your process for gathering requirements from a client?
  2. How much time does the requirement gathering process take you? I know this is not fixed, and there are variables such as how prompt the client is in responding and such. In general, accounting for the delay in responses and such, how long does it take to get to the final requirement?
  3. Which communication channel (email, phone, instant messenger, other) do you use to gather these requirements?
  4. Do you charge for the time spent in requirements gathering?
  5. Are there any deliverables in your requirements gathering process? If so what are they?
share|improve this question
    
Upvote'd..I'd love to know the answer to this one also. –  Georges Nov 15 '10 at 3:59
    
Other than #4 (which may be some part of an ROI factor) would you expect any of this to be different if you were an employee? –  JeffO Jan 28 '11 at 16:21
add comment

1 Answer 1

up vote 20 down vote accepted

1.What is your process for gathering requirements from a client?

interview, whiteboard, conference call, shop tour, worker observation, staff interviews, meetings, etc. - whatever is appropriate, whatever it takes to understand the real problem, balanced with whatever they're amenable to and will make time for

2.How much time does the requirement gathering process take you? I know this is not fixed, and there are variables such as how prompt the client is in responding and such. In general, accounting for the delay in responses and such, how long does it take to get to the final requirement?

obviously this depends on the size of the project. it's not unusual to spend 20 hours in requirements and modeling for a very small project (< 100 hours), because you have to understand the business context well enough to peel back the layers of the problems the customer is presenting in order to get to the real problem that you'll have to solve to make them happy

whether that 20 hours is two calendar days or six weeks depends on customer responsiveness and availability, and how much thinking you have to do in between session (for hard problems)

3.Which communication channel (email, phone, instant messenger, other) do you use to gather these requirements?

all of them

4.Do you charge for the time spent in requirements gathering?

Hell, yes!

You have to understand the client's business, comprehend and document their problems, and propose solutions which they could then take to someone else to implement. This is the consulting part of the process, and consultants don't work for free.

5.Are there any deliverables in your requirements gathering process? If so what are they?

Typically, a draft list of features, user stories, test-case descriptions, an abbreviated work-breakdown structure (with project estimates), a highlighted list of unclear/unknown areas/items for further discussion/investigation, and a list of things (info, resources, tools, access, etc.) that you will require from the client with target dates. All of this is packaged as a proposal with some background info on the business, the methods used to identify the problems, constraints and caveats about the solution, notes about the expected timelines and ROI, and a request for follow-up by a specific date.

share|improve this answer
    
+1: Excellent answer. I'd be very interested in seeing some mocks or templates that you have (I have my own, but I'd love to compare) –  Steve Evers Nov 15 '10 at 4:24
    
@SnOrfus: all will be revealed in my forthcoming book "CITA: Change Is The Answer", to be published...uh...i'll get back to you on that ;-) –  Steven A. Lowe Nov 15 '10 at 4:28
    
Interesting, I look forward to reading it. –  Steve Evers Nov 15 '10 at 4:30
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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