Design, Develop, Create

Monday, 9 September 2013

Objects of development


The modern era is increasingly delineated by a ‘digital life’ or form of engagement that entwines complexly with our existence in a physical world. IT and high tech use-production is seen as the enabling force for overcoming immobilities. They are implicated in transforming our social or organizational interactions and generate heightened perceptions of speed, movement, presence, both global and local awareness, and interconnectedness. We introduce the idea of high tech use-production to try to overcome the idea that these transformations result from push processes originating in the development centre.

Furthermore, our capability to successfully create and utilise high tech products is linked with a variety of challenges across a number of diverse domains; organisational theory and sociology for management and societal use patterns; economics and systems theory to understand aggregate behaviour; physiology, psychology and ethnography to understand use factors and design for finished products; maths, materials, and physics, for microprocessor and computational innovation.

Let’s take a closer look at the objects of software, the expressive environment for software engineers. The following illustrations are representations of different aspects of a not untypical digital product (Figure below). In this case a rendered simulation of an apartment, a wireframe model of the same scene, the software services for configuring the simulation, an XML description of objects present in the simulation, the build log for compiling the simulation and some source code for one of the objects. Furthermore there are many more layers of source and representation with their related technologies associated with this particular product.

Figure Images from Microsoft Robotics Developer Studio 2010

These are all ‘representations of’ and ‘resources for’ an interleaved complexly reinforcing structure that can be un-picked or un-packed right down to single lines of code. The point of this presentation is to illustrate the argument that “developers solve problems at all levels, between the ‘whole project level’ and the ‘one line of code’ level (and everything in between.” (Racoon, 1995)

Figure Layered perspective of digital production

The many layers of digital production are interleaved and interconnected from the single line of code right through to the whole project as Racoon (1995) suggests. This may account for both the brittleness of digital systems and their complex resilience. The same work dynamic occurs across large and small teams, across large and small organisations, across the world and is an important aspect of the defining qualities of software development work. Significantly, the practice of high tech production also depends on creative and collaborative processes; software engineering is a designing profession regardless of whether the engineer is working on a version 1.0 project or maintaining an existing product through multiple generations and update releases. Yes crafting and designing software is a kind of individual contribution, a highly cognitive process, however in practice it is also a highly communicative and essentially social process comprised of many various interactions in a team.