Programmers are Users Too: Human Centered Methods for Improving Tools for Programming
Software development continues to be one of the most difficult human tasks. Over the past thirty years of research, we have found that the methods and approaches from the field of Human-Computer Interaction (HCI) are effective in better understanding and meeting the needs of programmers of all types: novice, professional, and end-user programmers (EUPs). We have applied these methods across all activities of software development: requirements and problem analysis, design, development, testing, and deployment. Since programming is a human process, we have found that many of these HCI methods can be used without change to answer many useful questions, but for other questions, we have needed to create new human-centered methods, which can also be usefully applied to systems in other domains in addition to software development. This talk summarizes our use of new and existing HCI methods across nearly 30 years of research on improving software development.