In recent years, ‘software developers’ have traveled quite a distance in public imagination, from spotty-faced sociopathic nerds to geek chic alpha males. Some may want my head on a spike for such an appalling short cut, but one could argue that this change in the way software engineers are represented in cultural discourse may be seen as a sign of the evolution of their role in society. Indeed, software engineers, first the owners of a very specialised skill, useful only in the closed world of ‘computers’, quickly became the shapers of the digital world in which we all now dwell.
But what does this mean in regards to their day-to-day professional practice? How is this shift reflected in the daily professional activity of the people we call ‘developers’, or ‘software engineers’? My argument is that developers need to develop conceptual tools allowing them to gain a better understanding of the ways potential users interact with the systems they create, both from a design and evaluation point of view. Such a conceptual framework could be based on principles and notions which, although sometimes gesturally applied to computer science or human-computer interaction, are common place in disciplines such as sociology, psychology and even philosophy.
The evolution of software engineering practice from being mainly focussed on the design of rather enclosed, enterprise-related systems to open-ended, public applications has entailed all sorts of design issues, to which novel software development methodologies such as agile bring the beginning of an answer. However, the professional identity of the software developer or software engineer is still rather blurry and is yet to be defined, and the professional diversification of the field doesn’t help.
Thus, how are we to define professional roles in the face of this ever-evolving field that is software engineering? I would argue that too much professional diversification with the apparition of roles such as information architect, interface designer, developer has a chance of producing a fragmented vision of the systems developed. On the other hand, a particular individual equipped with the appropriate conceptual framework to understand particular issues ranging from architecture to user interaction and interface design should be capable of avoiding the common traps hidden in all software development projects, and therefore to design and implement robust, easy-to-use and coherent interactive systems.
Related posts:
- Social science for software developers – Using tools from social science to inform software design: should software developers also be social scientists?
- Research proposal : A Foucauldian analysis of the evolution of the discourse about software development methodologies
- The Emergence of Meaning Through System Use: The central role of interaction and its implications in terms of design methodology
- Interface Design and Information Architecture for Enterprise Web Applications: Four Simple Principles
- An introduction to the genealogy of subjectification