This post has been migrated from www.experimentsincode.com, we apologise if some of the images or content is missing

This post has been migrated, original date 17 Oct 2008 The company I work for has an interesting setup for developing and support web applications. We have a team for development which I am a member of, when a project is completed it is handover to a support team who are then responsible for supporting the application. This creates a problem that the support team does not have the in-depth knowledge of the solution which the dev team does; this obviously causes delays when it comes to bug fixing and also possible incorrect fixes. To help support out I quite often go up and sit with the guys to work through a problem because I have knowledge of the solution. So the other day I went up and was helping a colleague a problem and he asked me “Have you ever done an advanced driving course?”  I said that I hadn’t and he explained that they had to talk through everything they did as they were driving; what dangers they saw ahead, every gear change they make, why they ran over a cat, etc. He asked me if I could do this when I am debugging a problem so that he could understand what I was thinking when I look at a problem. Such a brilliant simple idea that is really helpful. Normally when I help another developer with a problem I will tend to click around trying to debug the problem, trying different things, seeing what works. Then once I have found a solution I tell the other developer what the problem was and how to fix it. However they have been sat there watching me randomly click around the screen not knowing why I am trying out these different things. Although the developer now understands how to solve that particular problem they are none the wiser on how I came to that conclusion; the thought processes involved in getting to the solution. This means that I have not really given them anything they can go away with and try and apply elsewhere.  If however I talk through everything I do they can work through the same thought processes on future problems.