IEEE Software - The Pragmatic Designer: Programming as Extended Cognition
This column was published in IEEE Software, The Pragmatic Designer column, September-October 2025, Vol 42, number 5.
ABSTRACT: Programming is an example of extended cognition: A developer’s ability to program is enhanced by source code that is a suitable external representation and by tools to manipulate it. When structures are aligned between mind and code, they can be swapped in and out like virtual memory pages; using external tools can be quicker and more accurate than thinking alone. A developer, source code, and tools fuse into a coupled system, which enables work on bigger problems, more quickly, and with fewer errors. However, the extended cognition phenomenon is fragile. Code is typically treated as a machine that can be left alone unless new features are desired. As a consequence, the coupling between developer and code slips away, taking productivity with it.
Software engineering is an intensely cognitive activity. Faced with millions of lines of code, however, no developer tries to memorize it all, nor do they try to use their minds alone to test, typecheck, or compile it. To enable their work on anything larger than tiny programs, developers amplify their minds by externalizing their memory and reasoning with external tools that are larger, faster, and more accurate than their own minds.
Full article will be posted once published in IEEE Software
References
-
Chalmers, David J., Extended Cognition and Extended Consciousness, in Matteo Colombo, Elizabeth Irvine, and Mog Stapleton (eds), Andy Clark and His Critics (2019; online edn, Oxford Academic, 23 May 2019), https://doi.org/10.1093/oso/9780190662813.003.0002.
-
Sprevak, Mark. Extended Cognition, 2019, doi:10.4324/9780415249126-V049-1. Routledge Encyclopedia of Philosophy, Taylor and Francis.
-
Jiaje Zhang, Donald A. Norman, Representations in distributed cognitive tasks, Cognitive Science, Volume 18, Issue 1, 1994, Pages 87-122, ISSN 0364-0213.
-
George Fairbanks, Ur-Technical Debt, IEEE Software, Vol 37 number 4, July/August 2020.
-
Ward Cunningham, Ward Explains the Tech Debt Metaphor, February 14, 2009, Video transcript.
-
George Fairbanks, Code Is Your Partner in Thought, IEEE Software, Vol 37 number 5. September/October 2020.
-
Ward Cunningham, The WyCash Portfolio Management System, OOPSLA 92, Vancouver, British Columbia, Canada, Addendum to the Proceedings, Experience Report, 5 - 10 October 1992.