Exactly like this. Originally, we meant how to avoid mistakes when programming complex web-systems but realized that it is impossible to avoid mistakes - you can only minimize them. It’s the nature to blame.
The nature of mistakes
● Practical experience
● Psychology: consciousness, responsibility, approach
Moral: You should improve knowledge.
Moral: you should enrich the experience in development, this will help you avoid silly and not very silly mistakes automatically.
Moral: responsibility implies a very simple rule - do notice your own mistakes.
Experience and mistakes in programming are inseparable. If you would like to minimize the latter for some reason - make them. But you should not only make them, but also correct them. It is far more unlikely to repeat a mistake that you once corrected.
How we avoid project mistakes
Making a project is half the project’s success. Without it, it will not make out, you will have to alter and correct the functionalities. A couple of years ago something similar happened to us when we had to add functionalities to an online store for a week just because the client did not have a clear idea of the end product.
Read the specialization thoughroughly. Every letter, every full-stop. A ‘why read’ approach may lead to bad results like financial costs for the company.
One head is good, two is better. Your collegues may have a different seeing on the problem, which can be a light.
Draw schemes. A scheme looks more demonstrative than a text and can be remembered better.
Analyse all possible sticks and stones of the project when making it. Create such a project which can be of help any time. For example, when plan a database so that any data will lead to the beginning and the end of it.
How we avoid implementation mistakes
Check-lists are our everything. Before implementing the task, make a check list of what you are to do and check it before its completion. It will help you remember all the details.
Share experience with the team. This will help you create input validation and checking for null at once.
Read through the text of the task, technical specification and technical solution. Forget about the ‘why bother’ principle.
Experienced developers. Adopt, learn, ask if a similar task was implemented before and do not by shy to look up their solution. It may not be ideal but at least works.
Do not be afraid to make mistakes. A true acceptance of the mistake will not make you repeat it twice.
Grow professionally. Even if your personality doesn’t let you, it is always pleasant to look good in the eyes of the collegues.
The first mistake is not a curse but a valuable experience. A repeated mistake is a true curse.
Test your implementation not as a programmer but as a tester. Imagin a foe developed the solution and you will be eager to find a mistake there.
Do not rely on random. Murphy’s Law works.
Author: Yuri Titov, programmer of Highload Dept.