Refactoring, nucleation and incubation: three tools for digital urban adaptability
March 27, 2013 5 Comments
When I am at my most productive as a computer programmer, I don’t write code; I sculpt virtual objects from it.
Any computer system exists to fulfill a purpose in the real world. To do so it recreates in code those aspects of the world that are relevant to its purpose. What transformed the creation of that model from the laborious, procedural task of writing instructions into the seamless creative flow that I liken to sculpting was Martin Fowler‘s conception of “refactoring”.
In Martin’s words:
“Refactoring is a disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior. Its heart is a series of small behavior preserving transformations. Each transformation (called a ‘refactoring’) does little, but a sequence of transformations can produce a significant restructuring. Since each refactoring is small, it’s less likely to go wrong. The system is also kept fully working after each small refactoring, reducing the chances that a system can get seriously broken during the restructuring.”
– (quoted from the Refactoring homepage).
Refactoring is at the heart of what we now know as the “Agile Development” of software. Agile approaches embrace the fact that when we start to create a new system, we don’t know exactly what the final result should be. Traditional approaches to software development attempted to address that challenge through the lengthy analysis of stakeholder requirements. In contrast, agile approaches address it by quickly presenting a first working solution to stakeholders for feedback, and asking them what should be changed. The final solution is co-created by developers and stakeholders through many iterations of that process.
Refactoring codified the tools and techniques for performing the adaptations to computer systems required by that evolutionary process whilst preserving their operability. With practise, a good programmer internalises those tools so that they are used almost unconsciously – just as any good artisan or artist creates their work through the expert application of technique.
We need similar tools and techniques to support the evolution of our cities in the 21st Century.
Those cities will exist in a world that is ever more changeable, and ever less certain. Geoffrey West’s analysis of city systems, for example, showed that as the cities of the world grow, the rate of social, technological and economic change within them will increase. At the same time, climate change is causing not just an increase in temperature, but an increase in the variability of temperature, and of other environmental conditions. That variability reduces the stability of supply of grain and other natural resources that underpin the systems that support life. In order to provide social stability in this context, cities need to be adaptable and resilient in the face of change and uncertainty.
But it is already the case that the urban, economic and social systems of cities can’t keep up with the rate of change we are experiencing today.
Take the ability of education to support the economy. Google’s Chairman Eric Schmidt criticised the British Education system recently for producing insufficient computer programming skills to meet the needs of businesses.
But our current need for those skills is based on the computing technologies that are broadly adopted by business today. By and large those technologies are at least five years behind the leading edge; consider that whilst the first generation Apple iPad was launched in 2010, most businesses do not yet routinely provide their employees with a touchscreen tablet for use as a business tool.
As the rate of change in science and technology increases, the skills required by business will also change more rapidly. Consequently, it will become even more challenging to design and operate an education system that prepares children for productive careers in an economy that evolves for at least a decade after their education begins.
We won’t design those education systems successfully by considering our current requirements for skills; or by attempting to predict the skills that will be required ten years from now. If we make such predictions, they will be wrong. Instead we need to equip the education system with refactoring tools that allow it to continually adapt to the changing needs of the present.
The same challenges apply to the strategic planning of physical infrastructure in cities. As cities pursue “Smarter City” strategies, and as their economies evolve to exploit new technologies, what are the impacts on power requirements? On the need to provide connectivity to residential, retail and business space? On the physical space required by retail and business as online commerce and mobile working continue to grow? And on the movement of people and goods as information marketplaces change the physical supply chains of industries?
The only thing we can be sure of is the need for flexibility: the city of the future will need to be more responsive and adaptable to change than the cities that we know today.
Techniques to provide flexibility in the physical environment are already emerging. Kelvin Campbell’s theory of Smart Urbanism encourages the use of a spatial grid, party walls and building shells as a substrate upon which the fine detail of a city can grow.
A high quality, detailed physical environment can first be constructed on such a substrate according to customisable “design patterns” such as town houses and mews studios; and then refactored through interventions such as the reconfiguration of internal walls; the conversion of lofts to living or working space; or straightforward extensions to the physical size of buildings. Recently developed technologies such as 3D printing and 3D cutting provide additional opportunities for the physical refactoring of buildings and cities that would have been unimaginable relatively recently.
In materials science, sophisticated materials such as semi-conductors and super-conductors grow when large numbers of individual atomic particles are attracted to appropriately designed substrates; and when those particles form clusters together which eventually grow and combine into continuous materials. The process by which those initial clusters form is nucleation.
By analogy, if we can design urban substrates which encourage the nucleation of small-scale, productive, sustainable social and economic activity; and the subsequent agglomeration of that activity into larger-scale systems; then we will have created an environment in which smarter 21st century cities can grow.
We need to evolve similar concepts to support the development of information infrastructures for smarter cities. Broadband, wi-fi and mobile communications provide the equivalent substrate to the grid-based spatial framework of a city; but what are the equivalents of the party wall, building shell, design pattern and nucleation?
“Open data“, for example, is clearly an important component of a Smarter City information infrastructure; but we do not yet fully understand how to exploit it sustainably. Doing so will likely involve structures such as city information partnerships; sustainable commercial models; standards for the interchange of data; models of the meaning of data; and planning and procurement policies that embed the openness and interoperability of data into the development process.
Finally, the same challenges appear in economic development.
Michael Porter’s theory of economic clusters states that in order to protect profit margins from commoditisation over time, businesses need to constantly adopt new capabilities into their products and services. As science and technology develop more rapidly, cities and regions will need to drive that process of innovation more intensively in order to remain competitive in the global economy.
This thinking is behind the technology innovation and business incubation partnership programme I’m putting together for IBM with Sunderland Software City, following our recent agreement to provide support for their new urban technology incubation campus at Tavistock Place.
Sunderland Software City- like Bristols’ Watershed media incubation centre and Birmingham’s Science Park Aston and Custard Factory – are exploring a form of urban technology incubation that is very different from that enabled by the more common out-of-town, campus-based science parks. They are not only concerned with supporting new businesses that exploit the latest developments in science and technology; but with doing so in a way that creates synergies between local businesses, and that contributes to the economic and industrial strategy of the cities where they are located.
Refactoring, nucleation and incubation are concepts drawn independently from domains as diverse as software engineering, the physical sciences and economics. There is no guarantee that they are mutually compatible; or even relevant to urban systems in any more direct way than by loose analogy.
But they share important characteristics that are also observed in successful urbanism and the research of resilient systems. For example: a preference for emergent growth rather than planned development; and the need to enable widespread changes that are adaptable to highly specific local contexts.
So whilst I can’t be sure that these concepts are universally applicable, I am convinced that their potential value is so great that we are compelled to explore them.