I am facing a serious problem of the software of our product.Unfortunately this bug is a fatal issue, and we have to fix the problem before the official release.
However, this problem is very simple and easy to reproduce the bug. The lack of fundamental knowledge to parse processing may be the cause of this problem. Usually the message from out of the system through the network may have some unexpected format, phrase and data. Therefore, we have to check the message first. In the result of those checks, the message should be handled by special error task when there is an unexpected or unknown phrase.
But some programmers do not assume such unexpected messages, they only program for the ideal situation. Even the case of GUI based program, some programmer does not check the data from the edit box. I cannot understand why they are so optimistic for the network and operator.
Today, simple and convenience development tool expanded the programming to the people who do not have the experience of learning basic computer science. This was not at all a bad thing, but we have to understand that some of the programmer do not have a fundamental skill of programming.
There are two methods to learn things.
1) Study the theory first and then creates something.
2) Create something and then study the theory.
In other words, it is important to have both of the experience of creation and theory.This is important for not only programming, but also for hardware development.
It is also easy to make some hardware gadget with the convenience development way such as a Raspberry Pi and Ardino,
And it may work like a commercial product.
Nevertheless, before the official release, theoretical review should be passed.