Every team strives to create quality software. It takes the efforts of all team members from managers to programmers. However, despite all efforts, the programs contain errors (bugs, defects). Why is this happening?
One of the first reason – it’s a misunderstanding between the developer and the customer. Business people and developers, figuratively speaking, speak different languages. Everyone believes that his language is simple and straightforward, but in fact it is not. Not for nothing that there are systems that try to reconcile the logic of thinking Business and Technical people. Misunderstanding of developers and customers leads to misunderstanding of what software should or should not do.
The second reason, which takzhe affects communication between the customer and the developer is poorly documented and poorly coordinated with the customer requirements. Ask yourself what percentage of projects you have been with good requirements (requirements) and histories of users (user stories). Chaos can only cause chaos.
Man being restless. He constantly strives for perfection. No one project is not destined to avoid the change requests (change request). The end user typically does not understand all the consequences that may be making changes to working code. Whether it be design changes or changes related to functional software. Moreover all the consequences of such changes can not be predicted and developer himself.
Especially a lot of errors can occur if the process of making requests for change are not controlled and documented. Very often, information about changes in the functional software will not reach the testing department. The customer or the manager discussed on the sidelines (email, ICQ, Skype) changes, then developers have implemented them. Test Lead and his team are very often not included in the CC of this discussion. Since there are bugs that are not really bugs…
Properly plan the development and testing challenge! Often, such planning is done intuitively or on the basis of experience gained in similar projects. When a project does not fit into the term and the development is accelerated, and the testing did not have time to avoid errors.
There is a statistic that indicates an increase in accidents involving drivers who have 4.3 years of driving experience. This is due to the revaluation of the skill. Arrogance of the team members develop yet another reason for the bugs to the project. People often can not really appreciate the complexity of their task. Instead of an adequate assessment, they say: "No problem", "For me it was nothing," etc. This, alas, leads to errors in the design…
Not only to write the code is beautiful, to document the code! Poorly documented code – the source of errors.
Poorly documented and poorly coordinated with the customer requirements, lack of process control requirements are the causes of failures of many projects.
A final reason in our list, but not the least of the value of a haphazard testing. All defects are impossible to find, but well-built testing process reduces the percentage of significant user of bugs to zero.