Developers actively experience the problems of everyday software development. They must make decisions on the spot, solving problems using available tools and existing capabilities, and within the circumstances surrounding their teams and organisations. In these cases, individual developers rely on know-how, balancing the need to write good software alongside their understanding of what is required to finish tasks and keep work moving.
Historically, problem solving that requires know-how has also been shown to strengthen collective practice: developers rely on the expertise of colleagues, sharing information and asking one other for help. Conversations online between developers make problem solving easier and smoother. Individual growth in developers is fostered during problem solving through trust and open connections between colleagues.
With the rise in the adoption of AI tools, development roles are changing, raising questions about what comprises know-how, how is it formed, how it ages, and how it is shared. This project will identify how developers solve problems using know-how in professional environments today, update models of localised problem solving, and assess the impact AI tools have on collective practice in professional software development.
You should have an appreciation of qualitative research methods and an understanding of surveying techniques. A first degree in Software Engineering is advisable, as is a postgraduate conversion degree in Computing or a closely related subject. Applicants working within the software industry who have a first degree in the Social Sciences or Humanities are also encouraged to apply.
Reason, J. (2000). Human error: models and management. Bmj, 320(7237), 768-770.
Ko, A. J., & Myers, B. A. (2005). A framework and methodology for studying the causes of software errors in programming systems. Journal of Visual Languages & Computing, 16(1-2), 41-84.
Sillito, J., Murphy, G. C., & De Volder, K. (2006, November). Questions programmers ask during software evolution tasks. In Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering (pp. 23-34).
Woods, D. D., & Allspaw, J. (2020). Revealing the critical role of human performance in software. Communications of the ACM, 63(5), 64-67.
Lopez, T., Sharp, H., Petre, M., & Nuseibeh, B. (2021). Bumps in the code: Error handling during software development. IEEE Software, 38(3), 26-34.
Starr, A., & Storey, M. A. (2026). Theory of troubleshooting: the developer’s cognitive experience of overcoming confusion. ACM Transactions on Software Engineering and Methodology.
Contact
![]()
Explore our qualifications and courses by requesting one of our prospectuses today.