|
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? |
