Functional and non functional requirements

A functional requirement is something the product needs to work, perform an action and fulfill the purpose. It answers the question of "What does it do?". They describe the minimal requirements of the product functionality. A non-funtional requirement is something that the product have to increase it quality. It answers the question of  "How does it do it?". Non-functional requirements are extras made to improve the functionality of the product.

Eventhough the definition is mostly used for engineering purposes, it can be used to describe all kind of products and subjects. An example of a product can be a shoe. One functional requirement can be to protect the feet. One example of a non-functional example is that the shoe has the right size and right weight for maximum comfort.

Knowing the requirements while developing a program is very important because it can save you time. Probably you want to present a functional software to a company in a week but you can get distracted if you spend your time coding non-functional requirements like the design or the resizable database. I mean, yes, non-functional requirements can be everything today, they are very useful to attract more users or to get a real distinction over all the other programs that do the same. However, sometimes the time is running and people want to see results as quickly as posible, while developing make sure to cover first the minimal requirements and list them to follow an ordered process, later you can start adding colors and extra features. Remember, if the time is on your back, don´t lose time on non-functional requirements and make sure the program do what is meant to do.

Lets get heavy this time, enjoy the headbanging:


source:
https://en.wikipedia.org/wiki/Non-functional_requirement
https://en.wikipedia.org/wiki/Functional_requirement