I believe that programmers are primarily responsible for software quality. This is true even if your company has a formal quality assurance (QA) process. In fact, it is especially true if you have a formal QA process. Once programmers are not responsible for quality, quality has nowhere to go but down. Software QA is not some magic process. No amount of QA testing can possibly turn bad software into good software. At best, it can turn bad software into less bad software. It's important to understand that the QA process itself does not create quality software. It is the programmer's job to write quality code and perform the appropriate testing to verify that the code works as expected. Rather, the QA process verifies that quality is there and provides the feedback necessary to help ensure that quality.
TIP
The programmer is primarily responsible for software quality.
A significant portion of the problems found during the testing and QA process are user interface-related. While many of these problems can be found through QA testing and possibly user testing, you should make your best effort to find as many problems as you can before QA and user testing. Why? One reason is that programmer testing is more cost-effective, since there is little overhead when you find problems on your own. Another reason is that you can obtain better coverage than QA and user testing because you are working directly with the source code and user interface resources. The last reason is that there are some user interface problems that are difficult, if not impossible, for other testers to find.
There are three specific types of user interface testing that programmers can perform effectively:
In all cases, your ability to find user interface problems will be significantly enhanced by changing your perspective from being a programmer to being a user. I'll explore each of these ideas in the remainder of this chapter.