It is pretty simple, if you want a high quality application, you need to spend time up front in order to build well documented software requirements. I have seen countless projects throughout my career where teams feel they don’t need to spend the time to document requirements. With the recent phenomenon around Agile, teams feel they have been given a green light to not have any software requirements documented. Frankly that can lead to disaster because development is relying on building applications on the fly without taking the time to get software requirements documented.
I also agree with the concept of not needing hundreds of pages of requirements documents using an Agile methodology. I believe in keeping things to a minimum in order to get things done the right way. There has to be a solid balance on both sides so that everyone knows which direction things are headed in. People and companies have to make the most of their investments therefore things need to be practical and have a good return on the work that is produced.
I generally follow some basic concepts when reviewing software requirements. Here are some of the things that I look for:
Without all of these elements within software requirements it will make development and testing difficult.