Jump to content

Questions to ask the client

- - - - -

  • Please log in to reply
4 replies to this topic

#1
ahmed

ahmed

    Programming Professional

  • Members
  • PipPipPipPipPip
  • 304 posts
Well I have to make a Email ,IM and file sharing system so what questions should I ask the client to get to know the best requirements out of him? So any suggestions?

#2
WingedPanther

WingedPanther

    A spammer's worst nightmare

  • Moderators
  • 16,831 posts
  • Location:Upstate, South Carolina
  • Programming Language:C, C++, PL/SQL, Delphi/Object Pascal, Pascal, Transact-SQL, Others
  • Learning:Java, C#, PHP, JavaScript, Lisp, Fortran, Haskell, Others
Thunderbird, Pidgin/Empathy, etc came to my mind immediately. Is there some assumption about this being highly integrated?
Programming is a branch of mathematics.
My CodeCall Blog | My Personal Blog

#3
ahmed

ahmed

    Programming Professional

  • Members
  • PipPipPipPipPip
  • 304 posts
this is more of a task where i will have to go talk to the people ( client ) and ask them what features do you want in the software . It is difficult to get requirements out of client cause they mess up sometimes . So what can I ask them (the questions) so i can get the features written down. You people are confusing it i think :c-whistle:

To be more precise what are the best methods to gather user requirements?

Edited by ahmed, 09 January 2011 - 08:00 PM.


#4
LuthfiHakim

LuthfiHakim

    Programming God

  • Members
  • PipPipPipPipPipPipPip
  • 763 posts

ahmed said:

this is more of a task where i will have to go talk to the people ( client ) and ask them what features do you want in the software . It is difficult to get requirements out of client cause they mess up sometimes . So what can I ask them (the questions) so i can get the features written down.

To be more precise what are the best methods to gather user requirements?

There is no immediate answer for this problem. The more experience you have, the easier this process would be. However I can tell you what the key process is. It is talking. :) Make your client talk as much as they can. First ask them to describe you in their own words of how they want the system to behave. Don't let them get into too much detail first. Just the overview of the system. From there you can break down the project into more manageable modules/phases and then ask them to describe into more details of each module/phase. Do this in enough iterations, and you will get your requirements.

I usually use UML Use Case diagram for this process.

However the basic questions you should ask (hopefully already answered in the client's initial description of the system) are:

  • What is the environment of the system? E.g. where should the server running? Linux, Windows, OpenBSD? What kind of client software does the client want? Desktop software or web based or ..? Things like that.
  • Is there any sophisticated privilege hierarchy for the system or simple user vs admin only?
  • What is the anticipated load in the near future after the system enter production stage?
  • What kind of copy/license protection?


#5
WingedPanther

WingedPanther

    A spammer's worst nightmare

  • Moderators
  • 16,831 posts
  • Location:Upstate, South Carolina
  • Programming Language:C, C++, PL/SQL, Delphi/Object Pascal, Pascal, Transact-SQL, Others
  • Learning:Java, C#, PHP, JavaScript, Lisp, Fortran, Haskell, Others
Following up with UML diagrams, you are likely to also want to create diagrams of interfaces, so they can have a sense of how it will look. I use Dynamic Draw and Thought Tickler () for this a lot. The other thing I do a LOT is assume they haven't thought about the consequences of their requests. I try to think about the unintended consequences of their requests, possible variations on functionality they are likely to want, etc.

Things I look out for: unintended lockins, rigid or inflexible business logic, etc.
Programming is a branch of mathematics.
My CodeCall Blog | My Personal Blog




1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users