I am working as a programming consultant with Andree Woodcock on the Programming As Reflective Practice project.
 
We are looking at the category of 'super-programmer' that essentially works on his/her own as an all round software author. I suppose the use of the word 'super' is subjective, but there is no doubt that there is a well established category of  IT  worker called software author. Software authors are programmers who both design and program a non-trivial application by themselves. Often, the most motivated software authors are those who see the 'need' for the application, or are inspired to create it, rather than responding to a third party request for a 'widgit' or narrowly focussed business/industrial application.
 
Shareware authors, and sole games authors fall into this category. Often the games or applications are quite large in size and scope, and we are currently looking at these types of 'programmer' in our study. One of the things we want to investigate, is whether these software authors exhibit the characteristics of the 'reflective professional' (Donald A Schon) - namely the use of 'knowledge in action' and 'reflection in action'. i.e. do they use high level knowledge in a new original way ; and do they glean new high level knowledge from their activity.
 
Interestingly, software authors are often amateur, in that they are not pursuing software authorship as a career. Contrast this with the 'professional' programmer, who programs relatively small fragments of code as part of a larger team of 'professionals'. As well as studying how software authors go about their work, some of the longer term issues that we hope to raise are 1) whether all programmers can function as software authors; 2) The relative merits of authorship vs team programming.
 
I am of the opinion (dirty word... I know) that in order to effectively function as a software author, one has to almost ignore programming technique - either because the lower level details are so well assimilated that one's response is almost subconcious; or because priority has to be given to integrating a piece of code into one's overall mental schema. How many successful software authors use formal methods I wonder?

Reply via email to