Software quality is a very important topic that is sometimes overlooked in the school because you are just focus that the program runs and the output is correct but there is a lot more things you have to consider.
So to start talking about the topic first is important to clarify what is software quality, in general a definition to it is that software quality is bug or defect free software that is delivered on time and within budget and the most important part meets requirements and expectations and is maintainable. So there are five principal characteristics:
- Satisfaction (solve the problem)
So why this is important? this things are of common sense no some might say, but when you are working on a real project you are not on your own, you have to write good code that runs well and do what is expected to do but you have to do some extra considerations, first the facilities you have in order to increase the functionality of your software and integration of new functions or external libraries, this is important because I have seen cases when the client wants some changes and the code written is not scalable, so the programmer has to change a lot of things and recode some functionality in order to integrate that new function. Another consideration that is ignored a lot of the times is that you have to write code that others can understand, this is very important to create good software, this because imagine the case that you are no longer in the company and they have to make changes to your code, if the code is hard to read then the software is hard to maintain and the new programmer will spend unnecessary time trying to understand your code and write it again in a simpler way.
Okay so taking in consideration all this things it can be seen a bit more difficult start coding as we used to do when we are on our own but this isn’t true, because to ensure that our software is scalable and is easy to understand and maintainable you first have to plan how is going to be structured, you can use some of the software architectures to make your project or combine some of them, and follow good practices to make your code as clean as possible and in the phase of planning the code you can use some elements like UML to create the relations of how is going to be implemented the code, for example in my works I always use some UML to make the different relations of how is going to be structured the database and at the same time I am creating the documentation of how my api is going to work and when I finish I just give the documentation to front-end team so they can use the api.
The files below are a clear example of how extensive some companies do their documentation.