Software Requirement Analysis— Necessary or Unnecessary?

Steve Jobs Never Listened to His Customers

“It’s really hard to design products by focus groups. A lot of times, people don’t know what they want until you show it to them.” — Steve Jobs

Apple doesn’t do market research; Steve Jobs never listened to his customers. [1] Customers use products, while producers develop products. It is hard for customers to imagine an ideal product without seeing it, and tell the producer what they want. Innovation is of great importance for the survival of a company. If a company can always put innovation in the first place, it will has a great many opportunities to give customers surprises, offering real attractive products to the world.

We are not Steve Jobs

Exactly, we are not Steve Jobs. Besides Apple, there are certainly other companies did graceful innovative works, and managed running successful business. However, lacking of requirement analysis in software developing can cause huge risks. What if a company has spent a lot of time developing software that customers do not really need?

For example, customers want a kind of software that can help children to be interested in reading. To achieve this goal, an attractive GUI is required, as well as a nice sound effect. Nonetheless, the company comes up with software with huge font size, saying that this is to help children to remember words better. In the end, it is probably that the software will be a disappointing product. You may think: how can a company be such an idiot? Well, it is just a simple example, what I really want to say is, understanding the requirement of a software is undoubtedly necessary.

Software Requirement Analysis is Like a Translator

The purpose of software requirement analysis is to understand the exact requirement of a product, and build a basic standard for the product. To be noticed, the requirement of software is probably changing all the time; as a result, requirement analysis is necessary to be done throughout the whole development process. Requirement analysis is like a translator, to help both the customer and producer to understand each other’s “languages”, so that they can have the same understanding for the product. [2]

Understanding the Background of the Software is Necessary

However, as a developer, does it mean it is enough if we just understand what customers tell us to do? Absolutely not!

One of the basic principle of software requirement analysis is to understand how the requirement comes, i.e., why does it needed. Why it is necessary to understand “why”? The answer is, we can know more about the background of the needed software. So, why it is necessary to understand the background?

A developer basically has a good skill of producing software of good quality; however, when the product is used in different situations, does it really of good use? The answer would be not sure. This is the reason why developers also need to understand background of the software. Besides the needs mentioned explicitly by customers, there are also some implied needs. A “good” requirement analysis can describe the required functions well, and help developers to come up with satisfactory functions for the product; a “better” one can go further based on the background. [3s]

For instance, if a chain company requires a system for handling their products sales status, so that the branch offices can collect and pass the data to their head office. This is quite a simple requirement for the product. However, after the analysis of the background of this company, it has been found that the company has tens of chains. As a result, the producer suggests a distributed and parallel system for the company, so that information can be managed without complicated manual sending and receiving processes. What’s more, data consistency can be easily achieved.

Understanding the Change of Requirement is Necessary

Understanding the change of requirement, or communication, is necessary. Communication always lies in the center of many processes of software development, in requirement analysis, it also does.

The key to the success of analysis is a perfect understanding of every requirement, while the requirement keeps changing. Today, your customer tells you he needs a kind of software to record how much money he spends each month; tomorrow, he may ask for another function for suggesting how to save money. When it comes across a large-scale software development project, the requirements change more rapidly, making the whole process more complicated. Thus, a good communication is of great value to help developers to know exactly what the customers want and catch whatever changes in time. Guessing the requirements of customers may bring a software product into a disaster.

So, a Good Software Requirement Analysis is Necessary (A Summary)

Of course Jobs is right, innovation can give quite a lot opportunities for a company. Infinite market researches or requirement analysis may stop his company from making progress. But as far as I can see, a large amount of software products need to be developed based on software requirement analysis.

Software requirement analysis is like a translator, which can help companies to understand what the customers really want (to obtain comprehensive and detailed requirements of customer), and keep pace with the latest requirement without omitting any small changes (to prevent the misunderstandings of the requirements). A good requirement analysis can help a company to provide splendid products for customers, avoiding wasting time and energies on useless works.

References

[1] Why Steve Jobs Never Listened to His Customers https://www.helpscout.net/blog/why-steve-jobs-never-listened-to-his-customers/

[2] http://blog.jobbole.com/49332/

[3] Davis, Alan M. Software requirements: analysis and specification. Prentice Hall Press, 1990.