I am writing a paper on software development and structuration theory which has actually been accepted in the Journal of Systems Research and Behavioral Science (I am working on corrections now). The paper is based on my PhD thesis' contribution to knowledge (it sounds important but it isn't :P). To put it in short, simple terms, in my paper I explain how I developed a model of social issues in software development. More in detail (read this if you have insomnia)
The model is situated within a theoretical framework of structuration of technology (you'll need to read Giddens and Orlikowski to understand this) and was generated from data I gathered from virtual communities of software developers (people like you who spend their time reading and posting in blogs and forums :P).
My model describes how developers' understanding of new situations (like new assignments) is dependent on their current mental structures, that is their past experiences and knowledge of certain practices. Giddens calls them social structures but because structures exist in the memory of people (and they come to life through human activity and interaction) I call them mental structures or preconceptions. So, preconceptions determine the way developers address new situations. That is, developers act on the social structures known to them to evaluate, design and implement software.
However, as new assignments possess new challenges (not every project is the same and neither is every developer), developers adapt their preconceptions to develop new software. This is a cyclic process as new situations will form part of developers' future preconceptions. Preconceptions and new situations carry out a number of human and social issues that the developers' have to deal with and address when they develop software. During my fieldwork I found out that the main sources of issues for developers where their own development environment, the practices or methodologies they had (or were forced) to use and their client organisations (we all have hated one or two users or maybe more?).
(Insomnia bit over)
Now, I submitted the paper and got positive feedback from the examiner. However I got one recommendation which I am dealing with at the moment
. The examiner suggested I should address the issue of partitioning the software development task between human and computer-based agents. YES computer-based agents. Something like AI.
Ok if you don’t know what I mean by computer-based agents here you have an example. If you have ever been to amazon, you may have noticed the personalised suggestions you get there. That is a computer-based agent which tracks your preferences and purchases and by comparing other people’s preferences and purchases produces a list of suggestions. Although they are only pieces of software, to some people they may appear as humans. My examiner thinks we could produce computer-based agents to develop software.
I realise that by doing a PhD in management I have turned to the light side of the force. In my doctorate I study people producing software, and ignored the possibility that there can also be software producing more software. Software reproduction. Of course that would be another PhD and I am not interested. But, I wonder, how would software developers’ lives be if they had to deal with AI issues as well? Emotionless, unambiguous agents, but perhaps unpredictable like humans. Who knows???