1. >I've been struck by the lack of standard debugging skills taught.. Have you got evidence for this? Have you examined the curricula of some undergraduate computing programmes? It would be interesting to see this work.
2. There is a qualitative difference between medical diagnosis and debugging. In the former case you have a device (a body) which has come about by an evolutionary process, and which will normally 'work' The diagnostic process there is to identify in what way it is failing. This also applies to mechanics - they know that for example petrol engines normally 'work' because the design is correct - they simply have to identify why the device is not functioning according to a correct design. However a program is an implementation of an attempted solution to a problem, and if there is a bug, the design is flawed - maybe trivially, maybe fundamentally. Consequently the task is to identify what the designed solution is (which with poor documentation may be very difficult) and then to identify why the design is faulty. This does not apply to the medical or mechanics cases. 3. Yes, the research has a long history. Atwood, M. E. & Ramsey, H. R. 1978 Cognitive Structures in the Memory of Computer Programs : An Investigation of Computer Program Debugging US Army Research Institute for the Behavioural and Social Sciences Technical Report TR-78-A21 is interesting, relating debugging to program comprehension and 'normal text' comprehension. But back in 1981 (Sheil, B.A. (1981) The psychological study of programming Computing Surveys, 13, 101-20) Sheil wrote ".. the computing community has paid little attention to these results. This paper reviews the psychological research on programming and argues that its ineffectiveness is the result of both unsophisticated experimental technique and a shallow view of the nature of programming skill." So your comment about 10 second decisions altering what people do looks good. -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Dan Frost Sent: 02 January 2007 20:05 To: discuss@ppig.org Subject: PPIG discuss: Hello / how we debug Hi, First - hello to the list. Second, my particular interest at the moment is around how coders debug. compared to the diagnosis skills taught to medics, mechanics and other professions where diagnosis, prescription, and resolution are more or less rote. My angle on this, as it were, is largely day-to-day - debugging in a day-to-day coding environment. I mention this because I've discovered papers dating back decades stating what coders (programmers) should know, and if only they did! So, the theory is there, but the practice isn't dripping through. The reason I ask PPIG about this is that I think the Psychology - or the simple emotional effect - of being forced to solve a problem in 10 seconds affects the decisions many coders make. Having a mental framework which gets delegated most of the information gathering (what information is there, what causes might there be... etc) relieves coders of 90% of the decisions made during debugging. Any interesting research in this area? Any standard diagnosis processes (like differential diagnosis etc)? ... Cheers, dan ---------------------------------------------------------------------- PPIG Discuss List (discuss@ppig.org) Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss Announce admin: http://limitlessmail.net/mailman/listinfo/announce PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/ ---------------------------------------------------------------------- PPIG Discuss List (discuss@ppig.org) Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss Announce admin: http://limitlessmail.net/mailman/listinfo/announce PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/