The typical software development process can be represented conceptually as a multi-level human communication channel.
The customer communicates with the BA, the BA with the designer, the designer with the developer, and the developer with the tester.
At each communication level, information is analyzed by an assigned specialist and transformed into a new format: at the BA level, into the requirements document, at the Design level, into the design specifications, at the Developer level, into the code and, at the Tester level, into the tests.
As we can see from the model, performance and quality of the entire process is dependent on:
Performance and quality parameters at each level of information processing; and
Performance and quality parameters of communication between levels.
Thus, efficiency of the software development process depends on:
The efficiency of each group of software development specialists; and
The efficiency of human communication between the groups of specialists.
1.2 Analysis of Working Efficiency of Software Specialists
Recently, there has been an enormous industry-wide effort to improve quality in the work of software specialists.
1.2.1 The Empowered Developers – the “First Born”
Particular attention has been paid to improving the work of developers:
More efficient methodologies and standards are being proposed and published;
New software development tools are appearing on the market; and
Many professional seminars and workshops are being developed and offered.
Since programming was really the first computer profession, today’s developers benefit from being the “first born” among other software specialists, enjoying the overwhelming bulk of attention and improvement efforts.
As a result, developers are fully equipped to perform their work efficiently. In general, “the empowered developers” already have sufficient tools, methods, models and knowledge.
1.2.2 The Semi-Equipped Tester
Y2K played a significant role in establishing testing as a self-contained discipline. More efficient formal testing methods and techniques are now replacing ad hoc approaches and creating new opportunities for test improvement. However, testing and QA improvement is still hampered by serious limitations in modern testing tools. While test tools can automate test execution, there are virtually no tools on the market for automating the most difficult and intellectually demanding part of the testing process: test development.