<<
>>

If we confront sociology's most important question: what is society? we could say that we can no longer straightforwardly describe society as a thing.

This is a crucial step towards understanding society as a process, which means that our societies are in a constant state of re-making, both as societies and as capitalist economies.

Just as Adorno regarded modern capitalism as ‘progressively self-totalizing', in as much as nothing can be thought of as outside of capitalism, and ‘resist commensurability with exchange-value' (Jarvis 1998: 44), today we are increasingly unable to think beyond the limits of the totalizing effects of computationality. Computational categories increasingly define the limits of our knowledge, even to the extent to which computation reshapes capitalism into its computational capitalist form. Thus, in common with Adorno's articulation of his interest in society, we might agree that,

this resistance of society to rational comprehension should be understood first and foremost as the sign of relationships between men which have grown increasingly independent of them, opaque, now standing of against human beings like some different substance. It ought to be the task of sociology today to comprehend the incomprehensible, the advance of human beings into the inhuman. (Adorno 1969: 147)

Adorno argues that we should not present social relations, which are ‘historical and produced', as if they were objects given to us to study. Indeed, social relations have become a ‘real illusion', and even though they remain made up of the human individuals that actuate them, they have some form of autonomy. This is magnified by the introduction of computational structures that crystallize certain social forms and perpetuate and prescribe them back onto society and individuals in a multitude of ways. Nonetheless, the critical insight of Adorno remains relevant. These social relations, regardless of whether they are or are not instantiated with computer code and algorithms, have emerged historically and hence can be changed.

Thus we might ask,

Is it possible to speak of sociological “laws”? Adorno repeatedly, and perhaps surprisingly, rejects the neo-Kantian distinction... between the “nomothetic” natural sciences, concerned with organizing appearances under laws, and the “idiographic” human sciences, concerned with specifying unique particulars not susceptible to subsumption under laws As Adorno points out, there is no such thing as an object which

is in itself “purely” sociological; all phenomena have non-sociological aspects. (Jarvis 1998: 46-7)

Rather than attempt to ground an approach in a particular 'scientific' status through the idea of methodology, the aim here, following Adorno, is not to renounce philosophy in favour of methodology. That is, avoiding the so-called distinction between fact and value, immensely important to both Durkheim and Weber, Adorno argues that we are not to think,

that I would like to fall back into a dogmatic hypostasis of some kind of universal anthropological values. This is as far from my position as is the Weberian position on the other side; rather, the Kantian proposition that the critical way alone remains open seems to me to be of greater relevance, even with reference to the so-called problem of values. (Jarvis 1998: 48)

Hence, we must follow a critical path and the aim 'of a critical social theory is to allow the entanglement of fact with value to become visible, by showing up both the way in which tacit valuations are present in all apparently purely factual description, and the way in which apparently pure valuations always presuppose descriptive models' (Jarvis 1998: 48). This is the historicization of philosophical analysis as a necessary move that goes beyond a purely methodological approach. Adorno made this crucial move because philosophy still takes seriously the possibility of there being a difference between appearance and reality or essence. Indeed,

existing sociological method... examined only appearance. “Dialectics” as he calls his own interpretative approach, “will not allow itself to be robbed of the distinction between essence and appearance” In Adorno's theory this means showing how a supposedly given fact - an appearance, be it epistemological, metaphysical, or sociological - is mediated by something that does not appear.

To seek the reality behind appearances is, he claims, “to give a name to what secretly holds the machinery together” the machinery of society. (O'Connor 2013: 24)

With this in mind, I now want to turn to thinking through the context of a society that is increasingly reliant upon a machinery that certainly does not 'appear' - that is, software, algorithms and code. This is a crucial move in developing our understanding of contemporary society, political economy and aesthetics, as software mediation has reached a point at which it is at 'saturation' levels.Thus we need to move to a philosophical and historical critical contextualization of computation beyond purely methodological approaches which seek to empirically map or document their research object. These kinds of ahistorical digital methods attempt to deploy raw 'facts' from which they attempt to derive 'laws' from data, taking, as they do, past and present experiences as though they are predictive of future experience. Indeed, critical theory, as a project committed to social change, is irreconcilable with such empiricism. When software has become crucial to the everyday operation of the society, it is clear that something important has shifted, and that we need to develop critical concepts and theories to take account of it. For example, Bernard Stiegler usefully glosses his important contribution to understanding technology, as he explains:

(1) that technical becoming must be thought through the concept of the technical system; (2) that there is no human society which is not constituted by a technical system; (3) that a technical system is traversed by evolutionary tendencies which, when they concretely express themselves, induce a change in the technical system; (4) that such a change necessitates adjustments with the other systems constituting society; (5) that these adjustments constitute a suspension and a re-elaboration of the socio­ethnic programmes which form the unity of the social body; (6) that this re-elaboration is a selection amongst possibilities, effected across retentional systems, themselves constituted by mnemo-techniques or mnemo-technologies, the becoming of which is tied to that of the technical system, and the appropriation of which permits the elaboration of selection criteria constituting a motive, that is, a characteristic stage of psychic and collective individuation.

(Stiegler 2011: 166-7, fn 15)

Through the introduction of softwarized technical systems, it is sometimes claimed that we live in an information society (for a discussion see Berry 2008). While numerous definitions exist, we now appreciate that all around us software is running on digital computers in an attempt to make our lives more comfortable, safer, faster and convenient - although this may conversely mean we feel more stressed, depressed or empty of meaning or purpose due to our new softwarized world. Indeed, it seems more accurate to state that we live in a softwarized society. From the entertainment systems we use to listen to music and watch television, to the engine systems that allow us to experience unprecedented fuel efficiency and even electric cars, software is doing the heavy lifting that makes the old industrial and consumer experience better, easier and cheaper. We therefore need to develop an approach to this field that uses concepts and methods drawn from philosophy, politics, history, anthropology, sociology, media studies, computer science and the humanities more generally, to try to understand these issues - particularly the way in which software increasingly penetrates our everyday life. Thus, the relatively new field of software studies has a two-fold challenge of having to reorder and construct methods and theories that are appropriate to studying software, together with undertaking the difficult task of uncovering helpful exemplars and examples that can assist in the teaching of the critical understanding of software itself. As Kitchin explains,

we know very little about the ways in which software is socially created; the nature of software itself; how discourse, practices, and knowledge get translated into algorithms and code; the geographies and political economy of software development; how software is embedded into various social systems; how software applications work with each other to create complex assemblages that work within and across scales; the power wielded through software's “secondary agency”; and how software alternatively modulates the production of space and transforms the nature of governance.

(Kitchin 2011: 946)

The speed and iteration of innovation in this area of technology might be incredibly fast and accelerating, but software can be materialized so that we may think critically about it. For example, it is important to recognize that software requires a platform upon which to run. Platforms can be either hardware or software based, but they provide the conditions and environment which makes it possible for the software to function correctly. The platform can offer a standpoint from which to study software and code, and hence the digital, but it is not sufficient without taking into account the broader political economic contexts. Indeed, one of the difficulties with studying software is that is requires a complete assemblage of technologies in order to work at all, what we might call its infrastructure. This might be the specific model of computer or processor that is needed to run the software, or it might be a particular operating system, or network. Here we might note that the term software studies hardly seems to cover the wide variety of software, hardware and historical context that need to be included in what we might call the field of computational media - but which may be similarly addressed in cognate fields like digital humanities and computational social science (see Berry 2012b).

This software totality necessarily complicates the study of software and needs to be kept in mind when researching code-based systems and software. Nonetheless, it can be analytically useful to draw distinctions between different levels of analysis when thinking about software, in order to try to understand what it can and cannot do, and more importantly, how we might think about understanding it. For example, we might consider as a basic starting point the division of digital devices into three layers, namely (1) hardware platform, (2) software platform and (3) software application/ interface layer. The main reason for drawing these distinctions is that it enables us to pay attention to the salient focus of the analysis we wish to undertake, for example, the changes in the relations of production, without losing sight of the importance of the supporting hardware and software, in other words, the forces of production.

This form of layering different technologies on top of each other is very common in computer technology and we will see different forms of this structure throughout this discussion.

The most important aspect of this form of initial and simplified layer model is to abstract the hardware from the software, and this is widely used in creating software and hardware systems. This is crucial in enabling software to, in theory, run anywhere, without having to know too much about the specifics of the underlying technologies. Of course, this is an ideal scenario and even today few technologies can make this claim confidently, although technologies like HTML, Java and so forth were explicitly designed for just this reason. It is important to note that these technologies are digital technologies, but merely appreciating that they are made up of so-called digital code (0's and 1's) doesn't get us very far. Instead, we have to take account of the fact that the internal structures that enable things to become softwarized are complex and structured. Indeed, part of this requires an appreciation of the extent to which software transforms everything it touches - and this includes hardware, which is increasingly softwarized, and also software itself. That is, software increasingly acts upon software producing new levels of abstraction and complexity in software systems. This recursive logic of softwarization in the development of computational systems is an important hallmark of computationality. Indeed, we can account for this move from the flux and flow of everyday life into the logics of software with the notion of grammatization, and particularly with the idea that several layers of meaning are placed upon each moment of grammatization. Stiegler explains that:

Grammatization is the process by which all the fluxes or flows [flux] through which symbolic (that is, also, existential) acts are linked, can be discretized, formalized and reproduced. The most well-known of these processes is the writing of language. (Stiegler 2011: 172)

We might add that a softwarized grammatization always includes further developments in terms of optimizations, efficiencies and re-grammatizations. Sometimes this is at higher layers (see below), such that softwarized grammatization is a qualitatively different form of grammatization process.

This is relevant to the problems we have in dealing with code and software, and the multiplicity of levels that are appropriate to the study of software and code. Here, it is useful to introduce the heuristic notion of laminated system from the work of Roy Bhaskar et al. (2010) to help us surface the importance of a multidimensional or interdisciplinary approach to the study of code more generally. By laminated system, Bhaskar is trying to draw our attention to the problem of the levels of ontology in studying things (his concern is actually complex open systems like the environment, but I think it can be usefully adopted here for thinking through the question concerning software). This approach can help us develop a language for understanding and describing our object(s) of study at an 'appropriate' ontological level. For example, we might draw up the following ontological levels that are appropriate for the study of the computal:

1 Physical: Material and transactional level (of the hardware)

2 Logical: Logical, network and informational transactional level (level of software as diagram or platform)

3 Codal: Textual and coding logics (level of code as text and/or process)

4 Interactional: Surface/interface level (between human beings and non-humans mediated through code)

5 Logistics: Social and organizational structure (at the level of institutions, economies, culture, etc.)

6 Individuational: Stratification of embodied personality (the psychology of actors, the user, etc.)

What is useful about Bhaskar's approach is that the ontological levels work according to both different logics and different mechanisms. That is the mapping of an ontology that serves to 'make sense' at whichever level of analysis we focus upon. These can be mapped within the domain of each ontology, but importantly they also work together and require explanation in terms of how they are articulated. Of course, allied with this ontology we will need epistemology and concepts of knowledge (which may be appropriate to each ontology) but also meta concepts, which we might think as placed at a holistic level of the system of computation itself (which I call computationality [Berry 2011]). Each level has what Bhaskar would call unilateral dependence (on other things within its horizontal ontology), taxonomic irreducibility (namely that we treat each ontological level as distinct and irreducible, allowing for the emergence of particular concepts at a particular ontological level - and hence avoid the temptation to reduce everything down to voltage levels), or some form of causal irreducibility. That is, contra medium theoretic approaches that seek to get ‘close to the metal'. This model has certain benefits in relation to thinking through computational society as it includes an implicit understanding of the way in which abstraction layers function within the design, implementation and execution of computational systems more generally, such that software is ‘deep'. But also that these layers, each in their own way, are computational and reliant on certain aspects of softwarization to stabilize and provide a foundation for other layers.

By adapting Bhaskar's work in this way we are able to highlight an interdis­ciplinary approach like software studies, which sometimes have difficulties in developing referential overlap between different levels of analysis. This also allows us to think in terms of the possibility of a research programme that we could map to particular layers to analyse and understand them, for example, as offered while using the Scalar system (Scalar 2013). It would also allow us to consider the possibility of effective epistemic integration between our approaches and shared trans-disciplinary concepts. These strata of ‘ontology', then, can be used to critically approach and situate our knowledges in rela­tion to each other and provide some means of orientation in software/code's obvious multidimensional ontology. For clarity, it is helpful to think of these strata as multiple levels of ‘ontic strata' in relation to a more fundamental set of computational categories that transcend this ontic structure.

Of course, this is also the notion of a single ontology that is shared throughout the laminated system and which would be constructed around the notion of strata of emergent properties or qualities. This would imply some notion of irreduction, otherwise higher strata could, in theory, be ‘better' studied, or explained by lower strata levels. In some ways, this is the issue with some German media theory which problematically seeks to get closer to ‘the metal' of computation in order to get at a perceived foundational level. The layered ontic strata model, even if informed by a single ontology, is helpful in enabling the situatedness of a particular level to be investigated at the correct level, rather than a reductionist search for the ‘atoms' of computation as such. For the purposes of this book, I am interested in the idea of a shared ontology, computationality, that permeates all levels, that is in a way reminiscent of fractal geometry we see in computational principles that are repeated and generated at different scales through these computational laminated systems.

What would be the structural features of a world of computationality over and above what Heidegger called ‘technicity' (Heidegger 1966)? By technicity, Heidegger means more than just technology itself. He uses the term to ‘characterize the manner in which Being manifests itself in the present epoch of the world, according to which man experiences the beings around him as objects that can be submitted to his control. It is as a consequence of this experience that “technology” becomes possible' (Heidegger 1966, fn 23). For Heidegger, electricity was the paradigmatic metaphor for technicity, both in terms of its generation through the challenging forth of nature: through coal, oil, hydropower, etc., and in terms of the switching systems that were required to route production, distribution and consumption of the electricity itself. He saw this switching capacity as a process of ordering by ‘ordering beings' where:

Everywhere everything is ordered to standby, to be immediately on hand, indeed, to stand there just so that it may be on call for a further ordering. (Heidegger 1977)

I want to suggest that technicity isn't sufficient to describe the contemporary mode of production. Indeed, technicity is better understood, as indeed Heidegger concedes, as a time of modern technologies, and indeed I would argue, not necessarily applicable to the kinds of postmodern real-time data stream technologies, such as the computer, that increasingly permeate our everyday life. Instead I suggest we think in terms of computationality, a specific historical constellation of intelligibility made possible by computational categories and concepts. An exemplar case of the logic of thinking in real-time data streams is DARPAs ARGUS-IS drone aircraft, which contains a record­setting 1.8 gigapixel sensor array, which has ‘the ability to scan an entire city for all sorts of “suspicious” activity, not just in real-time but after the fact. It all adds up to around 6 petabytes (6,000 terabytes) worth of 12 frames-per- second video per day' (Kopstein 2013). This huge data stream is transmitted to the ground at 600 gigabits per second, as part of Wide Area Persistent Surveillance technologies that allow the tracking of individuals and activities in a city at a remarkable level of detail. The Atlantic writes that this drone,

can just hang out at 15,000 feet over a small city-sized area (roughly, half of Manhattan) and provide video surveillance of the whole thing. The other thing to note is that they are running machine vision on the moving objects, which means they are generating structured data out of the video, not just displaying the pictures. (Madrigal 2013)

Thus it is not the data per se as a standing reserve that is crucial in this control technology but rather its cybernetic capacity to provide police and state real-time streams of city-wide behaviour as patterns and calculative dashboards - the logistics made possible by the computal. This enables feedback mechanisms to feed directly into policing practices in real time creating a total system of monitoring and control, a huge increase in the reach and depth of surveillance. It also demonstrates the computational turn at play in intelligence work, particularly the ‘open source intelligence' of collecting everyday information and data and using it to undertake sophisticated search and pattern-finding algorithms. For example, the Criminal Reduction Utilising Statistical History system of predictive policing used by the police department of Memphis, Tennessee, whereby crime statistics from across the city are compiled and overlaid with other datasets, such as social housing maps, outside temperatures and so forth, is combined using algorithms to ‘search for correlations in the data' to guide policing decisions (Hickman 2013). This is the type of system thinking that drives the PRISM (US-984XN) intelligence­monitoring programme undertaken by the NSA in the United States, and the Tempora programme undertaken by GCHQ in the United Kingdom (Davies 2013). Indeed sources for the Guardian claimed, ‘Not so long ago, this was all about attaching crocodile clips to copper wires. And it was all about voice. Now, it's about the internet - massive scale - but still using the same law that was devised for crocodile clips. [UK] Ripa [Regulation of Investigatory Powers Act 2000] was primarily designed for voice, not for this level of interception. They are going round Ripa. The legislation doesn't exist for this. They are using old legislation and adapting it' (Davies 2013). Although PRISM collects mostly historical data through The United States Foreign Intelligence Surveillance Act 1978 (FISA) requests, it also does have some real-time capacity, such as collecting real-time notification of an ‘email event' (RTN-EDC), such as login or sent message, and real-time notification of a chat login or logout event (RTN- IM). This real-time capability enables the kind of always-on surveillance that even the East German Stasi could only have dreamed of, indeed as Wolfgang Schmidt, a former lieutenant colonel in the communist secret police stated, ‘you know, for us [the Stasi], this would have been a dream come true,' adding that his department was limited to tapping 40 phones at a time due to technical restrictions. So if there was a decision to spy on a new victim then an old one had to be dropped. Indeed, he argued ‘it is the height of naivete to think that once collected this information won't be used.... This is the nature of secret government organizations' (Schofield 2013). The probable move to real time beyond the ‘batch-processing' of historical records is also surely just over the horizon. Indeed, ‘the NSA has developed a program for the incoming streams of data called “Boundless Informant” The program is intended to process connection data from all incoming telephone calls in “near real time”' (Poitras et al. 2013).

These challenges help us appreciate that to understand the 'digital' requires the concept of the computational to be unpacked. Computational technologies are increasing in their capabilities at an astonishing pace, while our theoretical, political, social and legal understanding lags far behind. Indeed, Galloway is correct to assert that 'software... asks a question to which the political interpretation is the only coherent answer' (Galloway 2012). However, paradoxically computational systems rely on fairly simple operating logics, and their 'fractal' logic means that techniques from different layers can be reassembled to create new layers and platforms. So, for example, one common distinction that is increasingly used today is between applications (or apps) and files (or data). It is usual for them to be combined together in a so-called wrapper that hides this from the user, for example, in many mobile operating systems, but the basic distinction still remains as 'pocket' and 'cloud'. In this case, we might say the 'digital' is the user interface (UI) that is experienced by the user, opening the possibility for a critically informed phenomenology of the digital, of the experience generated at the screenic level by the operation of the logistics of computational technology. The digital is then made and remade by the underlying computational system and which conforms to expected practices of the digital, both in terms of the UI and in terms of the user experience. It is not the '0's and '1's that are in memory chips within the device but the specific modular organization and deployment of the 'digital' - in its both material and ideological moments, which needs to be considered carefully. Apps are, in this rendering of the representative operation of the UI, the logic and control and are often paid for, and the files are the data or informational content which belongs to the user and is often segregated as a user file area.

This notion of performing operations 'upon data' is reminiscent of notions of the will to power, a controlling logic, in this case by the wielding of software tools. Indeed, often a rural or domestic imagery is associated with the files and user data, contrasted with an industrial or mechanistic imagery with the apps and logic. Although these examples are only meant in an introductory sense, we will explore within particular contexts how these metaphors can quickly become generalized within a softwarized society, such that government becomes conceived as 'apps' or 'platforms' and social action is seen in terms of softwarized processes and technical 'interrupts' to the system.

This becomes a convincing narrative as software presents a translucent interface relative to the common 'world' and so enables engagement with this digitally infused 'world', through what we call its interface. It is tempting when trying to understand software/code to provide analysis at the surface/ interactional level; however, software also possesses an opaque machinery that mediates engagement that is not experienced directly nor through social mediations. Without an attentiveness to the layers of software beneath this surface interface, we are in danger of ‘screen essentialism'. This is crucial to appreciate, as one of the key issues is that the surface can remain relatively stable, while the physical/logical layer(s) can undergo frenetic and disorienting amounts of change (Berry 2012c). This frantic disorientation underneath the surface is therefore insulated from the user, who is provided with an interactional surface which can be familiar, skeuomorphic (from the Greek, skeuos - vessel or tool, morphe - shape), representational, metonymic, flat, figurative or extremely simplistic and domestic. It is important to note that the surface/interface need not be visual, indeed it may be presented as an API which hides the underlying machinery behind a relatively benign interface or as a touch or haptic surface.

This surface, or interactional layer, of the digital is hugely important for providing the foundations through which we interact with these technologies. Not only are the interfaces responsive to our questioning via queries, searches, navigation and so forth, they are also designed increasingly to be intuitive, intelligent and contextual, in as much as they attempt not only to guess our intentions but also to shape the direction of our minds' travel. The interface itself is not an impermeable system; however, it does require a certain amount of work to look beneath its often extremely compelling surface. Not only is there an ideological aspect to the interface, which needs to be carefully explored and mapped (see Chun 2011), but there is also a layer of mechanical construction that keeps the interface in motion - literally makes the interface in real time (Berry 2011; Galloway 2012). To think beneath the surface is to explore the layer of software that exists in code, and to use critical concepts and methods to understand and explain its functioning and structuring logics. Indeed, it is important to keep in mind the normative aspect in the design of computation systems, both explicit and implicit in the ideological foundations of computationality as a system of thought.

Looking from the perspective of producing code itself, we might also note the ‘drudgery' of production, as ‘programming' is something that remains largely hand coded. Computational culture is increasingly made up of artefacts and products that are code objects or coded in digital technology by coders, users and people more widely. Indeed, it helps if the complexity of production is constantly abstracted away through the clever use of these computer ‘layers', with languages such as Ruby and APIs, and also through the use of Integrated Development Environments (IDEs) and other visual programming techniques. Of course, the ‘drudgery' of programming is not really equivalent to the drudgery of working in a factory, and it could be argued that machine- assisted programming allows the creativity of the individual in even the most ‘boring' jobs. In fact, often even the ‘boring' programming jobs are extremely well paid in the West, due to the difficulties of retaining staff (and options are often made to connect these mundane tasks to more exciting programming practices).

However, we should be aware of the growing disciplinary threat of outsourcing which is used to control labour costs in the digital economy. But nonetheless, there is definitely some interesting work to be done in mapping the way in which creativity, programming languages, abstraction layers, culture and so forth play out in people's everyday experience of programming practice. These are also helpful to think of the ways in which the structures of programming code acts as disciplinary mechanisms or prescriptive technologies that aid in governance - the links to neoliberalism are extremely striking in relation to the extent to which human subjectivity can be observed, nudged and managed through certain technologies - indeed, there is a field within computer science called ‘persuasive technology' or ‘captology' that attempts to develop software in this direction. It is certainly striking that the code produced within the technology industry is often actually more successful at controlling user behaviour than managers are at controlling their own programmers. Indeed, even in 1951, computer programmers were understood to be a peculiar form of employee, with specific practices associated with their labour, such as a revealing letter from Lord Halsbury to Christopher Strachey, one of the great figures in British Computer Science, who on his appointment to National Research Development Corporation noted,

It is recognized that the quite peculiar nature of the work you will be doing justifies certain concessions in respect to regular attendance in the office in order that you can do it in solitude to your own satisfaction. Needless to say I rely upon your sense of responsibility to see that this does not become a source of dissatisfaction to other members of the staff who are required to keep more regular hours. (Halsbury 1951)

Today, in the management of programming projects, Taylorist approaches are now widely used in the software industry; however, one only needs to look over the relevant literature to see the slow and partial success in this area. Software engineering is still a relatively recent discipline and there is still a reliance on the superhuman efforts of a small cadre of programmers within a project a la Ullman's (2011) The Soul of a New Machine. The way in which software engineering projects rely on very long hours and young programmers' labour to produce their products has remained a constant feature of the computing industry and particularly Silicon Valley culture. With the rise in profitability of the digital as an input into the productive process, it is no surprise that the digital has sought to be increasingly rationalized by large corporations and government. Thus, the wayward computer hacker has partially been domesticated though various management techniques and to a varying extent this has been successful in standardizing software writing processes.

Nonetheless, the lack of a ‘silver bullet' in software programming still eludes the managers, who are therefore reliant on programmers who know far more about the system they are working on than any of the management. While not wanting to be too optimistic or celebratory about this, after all programmers can, and often are, very mercenary in these situations, nonetheless, this is an interesting moment for those interested in studying software, and of course, the potential for radical politics also remains radically open (see Berry 2008). Understanding the code and being able to disassemble it and read the contents to understand the code objects that perform certain kinds of governmentality on human bodies certainly raise the promise of developing critical approaches to neoliberalism, for example. Here, the links with the concerns of critical theory and the notion of instrumental means of control and rationalization are clear, particularly in terms of a system of identity thinking that attempts to foreclose any alternative or critical voices to be heard. Indeed, as Marx argued,

Technology reveals the active relation of man to nature, the direct process of the production of his life, and thereby it also lays bare the process of production of the social relations of his life, and of the mental conceptions that flow from these conceptions. (Marx 1990: 493, fn 4)

Critical analysis of neoliberalism through close reading of code and distant reading practices is possible through their application to code and software systems - especially its tendency to code things with a view to markets, efficiency and instrumental rationality. In a similar vein, for Foucault, neoliberal governmentality is a particular form of post-welfare state politics, in which the state essentially outsources the responsibility for ensuring the ‘well­being' of the population. The primary recipient of this responsibility is derived from a strengthened notion of the subject as a rational individual. Indeed, these new subjectivities are expected to ‘look after themselves'. This form of governmentality has an extremely diffuse form of rule whereby strategies and imperatives of control are distributed through a variety of media but are implicated in even the most mundane practice of everyday life. Indeed, we might connect these layers of power to that delegated power diffused through code objects and computational devices. As Schecter writes,

Foucault regards the exercise of power and the formalisation of knowledge to be intimately bound up with the constitution of living individuals as subjects of knowledge, that is, as citizens and populations about whom knowledge is systematically constructed.... Subjects are not born subjects so much as they become them. In the course of becoming subjects they are classified in innumerable ways which contribute to their social integration, even if they are simultaneously marginalised in many cases. (Schecter 2010: 171)

So, for example, the state promotes an ethic of self-care which is justified in terms of a wider social responsibility and which is celebrated through the examples given in specific moments represented as individual acts of consumption that contribute to a notion of good citizenship. So using recycling bins, caring for one's teeth, stopping smoking and so forth are all actively invested in by the state as both beneficial to the individual and as collective care, but most importantly they are the responsibilities of the citizen. They are also new sites for computational software apps that seek to promote a notion of the ‘quantified self', such as that given in calorie-counting apps, and life-tracking hardware like the Nike Fuel or the Fitbit.

Neo-liberal governmentality also gestures towards the subordination of state power to the requirements of the marketplace, the implication being that ‘political problems' are re-presented or cast in market terms. Within this framework, citizens are promised new levels of freedom, consumerism, customization, interactivity and control over their lives and possessions. In other words, they are promised an unfulfilled expectation as to the extent to which they are able to exert their individual agency. In order to facilitate this governmental practice, certain infrastructural systems need to be put in place, such as bureaucratic structures, computational agencies and so forth. For example, it has become increasingly clear that providing information to citizens is not sufficient for controlling and influencing behaviour. Indeed, people's ability to understand and manipulate raw data or information has been found to be profoundly limited in many contexts with a heavy reliance on habit understood as part of the human condition. Here, computational tools assist by providing mediation and advising and providing structure for a world full of data, real-time streams and complex calculations required from its citizens. This computational assistance or monitoring is backgrounded and often hidden from us.

Any study of computer code has to acknowledge that the performativity of software is in some way linked to its location in a capitalist economy. Code costs money and labour to produce and once it is written it requires continual inputs of energy, maintenance and labour to keep functioning. Thus code is socially constructed, historically specific and more or less socially embedded in broader networks of social relations and institutional ensembles. I have explored some of these issues in Berry (2008, 2011a.) It is crucial that the materiality and ownership of code is understood and the constraints that operate upon the production, distribution and consumption of code as software are noted. This has important implications when it is understood that much of the code that supports the internet, even though it is free software or open source, actually runs on private computer systems and networks (see Berry 2008).

We might say that a softwarized society is one in which society itself is computed. The term computation comes from the Latin computare, ‘com “together”' and putare - 'to reckon, to think or to section to compare the pieces'. To compute, then, is to ‘to count, or to calculate' (see Berry 2011a). For computer scientists, computation (or information processing) is a field of research that investigates what can and what cannot be calculated. Understanding the theoretical, empirical and political economic aspects of ‘computational cultures' in relation to the so-called knowledge economy, particularly through the lens of critical theory, requires us to engage with this computational dimension of the digital. Further, computation is the logic of the ‘creative' economy and to understand the cultural outputs of computational structures (sometimes referred to as the ‘softwarization of culture') we need a critical theory that can contribute to the understanding of the computational.

The internet itself is deeply saturated by both its historical compromises and its conditions of production. It is also increasingly penetrated by capitalist logics that are often imposed onto the technical layers and protocols of the internet. For example, the practice of surfing the web is a visual experience of seeing a collection of images, text, videos and animations that are presented in the browser.This is, however, only a portion of the web that is being shown. Concealed in the background are a group of hidden entities called ‘web bugs', embedded in webpages across the internet, which allow advertisers, search engines, trackers and others to monitor our usage and page choices, in a system of monitoring I will call the ‘dark Internet'. This enables a customized webpage to be delivered on the fly, which is personalized to the user, to a marketing group, or to a national population, etc. A good example of seeing the actions of these web bugs at work is to use the ‘Cultural Differences' engine developed by Taryn Simon and Aaron Swartz (2012a). This javascript algorithm makes situated searches by requesting search queries from Google on different national versions of the search engine, such as Iran, America, Germany and France. Although only offering visual results as an image search, it places the top six results from each country next to each other and thus allows a comparative analysis of the image results to be made. It is striking how different the results can be depending on the national search engine used, and therefore how the search engine by localizing your search by IP address, for example, is delivering specific search engine results to the user. Usually, this would have been undertaken automatically, and supplemented by personalization data drawn from web bugs and the database of information collected about the user (Simon and Swartz 2012b).1 This demonstrates that the internet is increasingly becoming subject to algorithmic pre-processing to create personalized versions of its content for capitalist exploitation.

The software we use is part of a wider constellation of software ecologies made possible by a plethora of computational devices that facilitate the colonization of code into the lifeworld. In other words, software enables access to certain forms of mediated engagement with the world. By being built on physical machinery that is distributed from global cloud data centres to highly mobile intimate technologies, huge logistical questions have to be addressed and solved. This mediation is achieved via the translucent surface interface, of the interactional layer, and enables a machinery to be engaged which computationally interoperates with the world. These engagements are enabled by processes we might call compactants (computational actants) which can be understood through a dual surface/machinery structure. That is, they are designed to function across the interactional and codal layers - as is much software in use today. Compactants are often constructed in such a way that they can be understood as having a dichotomous modality of data collection/visualization, each of which is a specific mode of operation. This may not necessarily be a visual component of the compactant, which may merely re-present data through computational analysis to a visual packager or visualization device/software system. This modal setting may be accessible to the user, or it may be a hidden function accessible only to certain people/ coder/other compactants, etc. Compactants may also be layered across a technology stack forming complex networks of sensors, data processors and interface structures, rather like fishing nets or trellis, taking data from the bottom and processing it upwards in a process of curation or filtering.

Compactants are designed to passive-aggressively record data. I want to particularly draw attention to this passive-aggressive feature of computational agents, both in terms of their passive quality - under the surface, relatively benign and silent - and in terms of their aggressive quality in their hoarding of data - monitoring behavioural signals, social signals, streams of affectivity and so forth. The word compact also has useful overtones of having all the necessary components or functions fitted into a small package, and compact as in conciseness in expression. The etymology from the Latin compact for closely put together, or joined together, also neatly expresses the sense of what web bugs and related technologies are (discussed in greater detail in later chapters). The term compactants is also evocative in terms of the notion of ‘companion actants' (see Harraway 2007). Here value-centred design and ethics of these systems offer an interesting moment of reflection in terms of the latitude usually granted to compactants by programmers. They will usually store more data, and this is considered a norm, hoarding user interactions and behaviour where possible, and to the fullest extent possible technically. Analytically, therefore, software can be said to have two faces:

Commodity: accessible via the interface/surface and providing or procuring a commodity/service/function. Provides a relative stability for the consumption of ends. The commodity is usually articulated at the level of the interactional layer, usually visually, although this may be through other sensory interfaces level.

Mechanism: accessible via textual source code, which contains the mechanisms and functions ‘hidden' in the software (means). This can be thought of as the substructure for the overlay of commodities and consumption. The mechanisms are usually delegated within the codal layer, and thus hidden from the interactional.

Nonetheless, the complexity of the machinery of code is obscured by its interface, the commodity, which is often only loosely coupled to the underlying logics and therefore to the control of the system under use. It is here that the notion of compactants helps us to understand the way in which computationality has increasingly become constitutive of the understanding of important categories in late capitalism, like privacy and self-care. Here, we could say that we are interested in a transition from the juridicification, through the medicalization, to the ‘computationalisation' of reason. This is the formation of discrete powers rather than power in general. That is, ‘the processes through which subjects become subjects, the truth becomes truth, and then changing conditions under which this happens, which in the first instance is the discrepancy between the visible and the readable' (Schecter 2010: 173). Or as Foucault himself writes that what is at stake is,

how the coupling of a series of practices with a truth regime form an operative knowledge-power system (dispotif) which effectively inscribes in the real something that does not exist, and which subjects the real to a series of criteria stipulating what is true and what is false, whereby these criteria are taken to be legitimate. It is that moment which does not exist as real and which is not generally considered relevant to the legitimacy of a regime of true and false.... It marks the birth of the asymmetrical bi-polarity of politics and economics, that is, of that politics and economics which are neither things that exist nor are errors, illusions or ideologies. It has to do with something which does not exist and which is nonetheless inscribed within the real, and which has great relevance for a truth regime which makes distinctions between truth and falsity. (Foucault 2010: 19-20)

The way in which software and algorithms generate certain notion of truth and falsity is a topic requiring close investigation, both in terms of the surface interface generating a 'visible' truth, and in terms of the notion of a computational, or cloud, 'truth' that is delivered from the truth machines that lie somewhere on the networks of power and knowledge. Foucault suggests that if there is a 'system' or an ensemble of systems, the task is somehow to think systemic functioning outside of the perspective of the subject dominated by or in charge of the so-called system. Indeed, 'critical thinking can deconstruct the visible harmony between casual seeing and instrumental reason... in contrast with monolithic appearances, surfaces are characterised by strata and folds that can inflect power to create new truths, desires and forms of experience' (Schecter 2010: 175). The interactional layer is extremely plastic and enables the computational presentation of appearance as such, usually through a visual register, but which can hold particular types of visual rhetoric that can be deployed to support or produce preferred readings of the computational as such.

Here we can make the link between sight and power, and of course sight itself is deployed such that the 'visible' is not transparent nor hidden. Compactants certainly contribute to the deployment of the visible, through the generation of certain forms of geometric and photographic truths manifested in painted screens and surfaces, the availability of commodity surfaces, for example. One of the striking things about using this analytical model for thinking about software is that it draws attention to a source of stability in computational society. That is, the commodity layer, the interface, may stay relatively stable vis a vis the user (interactional, social, individuational layers), while, underneath at the level of the machinery, there can be rapid changes in terms of both hardware and software (codal, logical and physical layers). In a usual case, the user is unlikely to notice much difference in the usability of the device; however, the interface constantly allows for a de-freneticness or at least a looser coupling between rapid technical change and the user experience of technology. We should expect that when interfaces achieve a certain retinal quality, making them indistinguishable from other representational forms, such as high definition images or photography, then further developments will begin to be made in terms of the skeuomorphic/figurative/metonymic. Indeed, to some extent this is already starting to happen within UI design with the move to 'simple' or 'obvious' design principles (see Beecher 2010). The so-called 'flat design' is a visual design aesthetic and method that prioritizes a notion of a priori geons that structure the interface through a semi-platonic ideal drawn from geometric principles, this is then 'painted' onto layers of 'glass' which create a three-dimensional aesthetic which is highly kinetic and exploratory but moves away from 'fake' three-dimensional effects. The effect of this innovation is extremely visually pleasing and functions to enable the machinery level of the codal object to be hidden away more successfully. Later chapters will examine the extent to which new digital ontologies based on this process create profound challenges for the political.

<< | >>
Source: Berry D.. Critical Theory and the Digital. New York: Bloomsbury,2014. — 272 p.. 2014

More on the topic If we confront sociology's most important question: what is society? we could say that we can no longer straightforwardly describe society as a thing.: