What is the best way to collect project requirements?

How to collect system or product requirements? For example, if we want to make a car, how should we collect requirements? Please help me.

+6
sdlc
source share
7 answers

This is a really big question. The answer I would put is "it depends." Gathering requirements is a very complicated thing. The best way to collect requirements depends on your project methodology. Are you going to use an iterative approach or a waterfall approach first? You also need to determine who your interested project participants are (for example, project manager, developers, business analyst, clients, project sponsor ...). Then you need your project participants to talk about what they want.

When you are all talking about what you want, the business analyst should help customer management describe what they want. Your analyst needs to dig the requirements. Many times, the client does not know what they really want, or how to describe the system in such a way that it makes sense to developers.

The first step at this stage is to describe the project area. Once a good volume has been identified, you will be able to determine which requirements are in scope or out of scope. After that, the best way to identify requirements is to discuss the problem and what they would like to solve. Try not to create a solution at the requirements stage, just a description of what the final product should do.

Don't spend too little time collecting requirements. The more changes you make in the project life cycle, the more expensive those changes will be. In addition, do not spend too much time on improving the requirements or you will find yourself in the so-called "analysis paralysis". Keep in mind that these dots simply scratch the surface. Here are some decent books in which I read some of this information:

Software Requirements 2nd Edition Karl E. Wiegers

More on Carl E. Wieger Software Requirements

These are decent books, and they discuss all the topics related to preparing the SRS for a few viewers to Requirement Requirements.

+7
source share

It is called system analysis - you go and talk with potential users of your product.

+1
source share

I would probably start by preparing “Meeting Requirements”. Then I would check Joel On Software and 37Signals . They have decent information about creating requirements documents. Joel on Software has an example .

+1
source share

Use the SRS document to record the requirements that you call the customer.

+1
source share
  • regular discussions with customers and especially future users and key users
  • Take small notes during negotiations.
  • After each CONTRACT write an official list of requirements and submit it for approval. It would later be difficult to object to all agreed documents.
  • make sure your customers know roughly what the approximate cost of time and money to implement the “good to have” requirements.
  • make sure you specify requirements as “must have”, “must have” and “nice to have” from the very beginning, so that clients understand the differences between these types.
  • integrate all documents into the last and final requirements analysis (either current for iteration or any flexible programming cycle that you use ...)
  • remember that requirements change throughout the software life cycle, so data collection is one thing, and managing and implementing another
  • KISS - keep it as simple as possible
  • read flexible manifest - working software is the only measure of the success of a software project.
  • also study the environment in which the future system will live - more and more technological limitations from obsolete or surrounding systems, because companies do not prefer to throw in the trash money that they have invested for decades, even if in our modern minds a 20-year-old code - trash...
+1
source share
  • Talk with people - project stakeholders and users in particular.
  • Ask questions. Many of them.
  • Document your discussions and conclusions.
  • Use prototypes to confirm conclusions.
0
source share

It is usually useful to remember that you are serving several masters at the same time:

  • End user
  • Control
  • Your development environment and any restrictions that it imposes.

It’s best to spend time with all of the above

For example, I was recently hired to program a system from scratch for a package delivery company. I needed to please the end user (drivers - to make it simple and fast) control (we want to know what we did and when / how), as well as work in a restrictive environment (mobile scanner)

I spent a lot of time with the management, then turned around and went out to deliver with the drivers. Only after that I was able to really cope with this.

It is important to remember that it is NOT easy to come up with a solution that you like, but another that actually solves the problems that the client faces every day. The only way you will ever do this is to spend some time on them, preferring when they do their work.

It’s also worth faking the last point - while they do their work ... if you just ask them, you will almost certainly get incomplete answers. Most people do a lot of things in their work that they don’t even think about, it just became a habit. It is these small quirks that are difficult to pick up and incorporate into the new system without direct experience.

Sorry if you requested tools instead of methods.

0
source share

All Articles