Throughout my time working with code, developing from zero and testing other’s code we all come to the conclusion that working code that actually compiles (yes I am pulling the typical and cliché meme) does not mean that it is ok for a valid use.
Let me explain, lets say that you are building a project that involves creating many files (10). Some of those files are linked to each other, using inheritance and when you finally want to test them you compile them one by one. Surprise? No compiling errors but guess what pal, none of those are actually linked to its entirety. Then you start to guess what are you doing wrong… I mean all of those compile! Where is the mistake?
Whenever we have those type of problems it is recommended to do the following:
- Calm down
In other words, the code MUST meet and fulfill the specifications. Obviously it also needs to do its purpose otherwise it is “useless”.
A clear example of a program that needs to reworked would be a calculator. It is very easy to build its UI, place the numbers and operations but whenever the input is written, for instance 5 + 5 the result would be 10 but if it gives you 25,m what is wrong? The tests were not done on its entirety and QOL (Quality of Life) modifications must take place.
It is important to understand that QOL involves doing verification and validation, which both may sound a like but are not.
Verification: The process of checking if the system is being built correctly in every single of its aspects such as the processes. The requirements are set but it does not mean that other aspects are being done correctly therefore a whole new direction is being assigned.
Validation: Whenever you are working on a project is to check that if the built is the one you/the company/ client is the one you need.
A great example would be the addition and subtraction of negative numbers, does the client really need that?
Think about it.