• Log In

The Partially Examined Life Philosophy Podcast

A Philosophy Podcast and Philosophy Blog

Subscribe on Android Spotify audible patreon
  • Home
  • Podcast
    • PEL Network Episodes
    • Publicly Available PEL Episodes
    • Paywalled and Ad-Free Episodes
    • PEL Episodes by Topic
    • Nightcap
    • (sub)Text
    • Pretty Much Pop
    • Nakedly Examined Music
    • Phi Fic Podcast
    • Combat & Classics
    • Constellary Tales
  • Blog
  • About
    • PEL FAQ
    • Meet PEL
    • About Pretty Much Pop
    • Nakedly Examined Music
    • Meet Phi Fic
    • Listener Feedback
    • Links
  • Join
    • Become a Citizen
    • Join Our Mailing List
    • Log In
  • Donate
  • Store
    • Episodes
    • Swag
    • Everything Else
    • Cart
    • Checkout
    • My Account
  • Contact
  • Mailing List

Partially Examined Software Design Philosophy

November 10, 2012 by Michael Rissman 2 Comments

Software design[Editor's Note: This is a guest blog from our supporter Michael Rissman. Enjoy!]

Philosophy doesn’t make me a better software designer. It does help me reflect on what I do when I am designing. A few podcast episodes are germane here: the ones on Pirsig, Wittgenstien and Goodman. Donald Schön in The Reflective Practitioner: How Professionals Think In Action described design as a process of naming and framing, and that’s an excellent place to start.

Consider one aspect of an information system. Users search for things satisfying certain criteria: for example, authors who wrote mysteries with no violence in them. Results can be presented in a grid with rows representing found instances and columns displaying attributes of those instances. An information system I developed comprises 104 such grids. I know that there are 104 because I implemented each the same way using metadata which I can query to obtain the count. But what if I hadn’t performed the ontological act of naming the search-result-grid as a class of things? The system would still manifest a number of grids showing results, but I would have to identify the set of such things extensionally, by naming the instances rather than intensionally by class.

Object-oriented analysis is all the vogue in software design. Its proponents advocate orienting information systems around the things in the world to which the information applies: books and authors and the like. My stance is to view an information system as a processor of patterns of data. That leads me to see search-result-grids and edited-text-fields and other classes the behavior of which can be described in metadata. The patterns of data transcend object-orientation and are obscured when the objects are allowed to be transcendent.

My design comprises a language game in which classes like search-results-grids and edited-text-fields and edit-logger make full sense. The language game provides context for other system aspects such as connectivity and synchronization and security and the like. My goal as a designer is to untangle a lattice of interactions so that the resulting composition seems hierarchical and thus compatible with classical rationality. Systems designed that way evolve wonderfully if allowed to do so.

How did I know to play the processor-of-patterns-of-data language game? I’m smart and lazy and had opportunities to design systems as I saw them. I could trace the evolution of my design but eventually would hit a point where the rest was “pretty much turtles all the way.” The point is that classical rationality does not stem from a rational process. Great designers make tractable worlds and tractable worlds comport with classical rationalism. They play language games, naming things and framing them as they go. The languages they create are structured and generative.

As language game players, designers are also world makers. The worlds they make are akin to scientific theories, theories that can be tested much like Goodman suggests. One can ask questions of a designer’s ontology: Is it expressive enough to satisfy users? Does it scale well? Can its elements be built?

I started with a case of name dropping and I’ll end with another. Fred Brooks who got much about software wrong, got one thing right. He wrote that conceptual integrity is the most important software quality. Conceptual integrity is the notion that a system does the same thing the same way everywhere: presenting all search results the same way for example. At scale, conceptual integrity is the sine qua non of software system quality. The system designer sits at the head of the train. Quality resides in the language game he decides to play.

-Michael Rissman

Facebooktwitterredditpinterestlinkedinmailby feather

Filed Under: Misc. Philosophical Musings Tagged With: language games, philosophy blog, quality without a name, software design, world making

Comments

  1. dmf says

    November 10, 2012 at 9:30 pm

    Schön is a lost deweyean gem but the leader of the pack in terms of software design philosophy is likely:
    http://www.bogost.com/blog/

    Reply
  2. Parrhesiastes says

    November 12, 2012 at 10:52 pm

    Two quick points, first, to view IS as “a processor of patterns of data” is way to simplistic and deterministic approach i.e. IS is not one single technological system; in fact, such views have been devastatingly criticized by Structuration (via Giddens) and Actor-Network (via Latour) theories for over two decades now – the latter themselves, nowadays, are under scrutiny from hermeneutics and phenomenological traditions within IS; second, the term Ontology, specifically within IS theory, does not have the same meaning that is familiar to students of philosophy or related disciplines.

    Unfortunately, there are not many, if any, “free” texts available since the philosophical tradition within IS is relatively new; Dreyfus’ On the Internet (http://www.amazon.com/Internet-Thinking-Action-Hubert-Dreyfus/dp/0415775167/) is somewhat sober summary of overall IS picture; to go deeper, check out introductory texts like Social Theory and Philosophy for Information Systems (http://www.amazon.com/Social-Theory-Philosophy-Information-Systems/dp/0470851171/) that summarizes various philosophical tradition within IS in detail – chapter 3,4 are related to the design and implementation of IS.

    Reply

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Citizenship has its Benefits

Become a PEL Citizen
Become a PEL Citizen, and get access to all paywalled episodes, early and ad-free, including exclusive Part 2's for episodes starting September 2020; our after-show Nightcap, where the guys respond to listener email and chat more causally; a community of fellow learners, and more.

Rate and Review

Nightcap

Listen to Nightcap
On Nightcap, listen to the guys respond to listener email and chat more casually about their lives, the making of the show, current events and politics, and anything else that happens to come up.

Subscribe to Email Updates

Check your inbox or spam folder to confirm your subscription.

Support PEL

Buy stuff through Amazon and send a few shekels our way at no extra cost to you.

Tweets by PartiallyExLife

Recent Comments

  • Jennifer Tejada on PEL Nightcap Early April 2021
  • Jennifer Tejada on PEL Nightcap Early April 2021
  • Mark Linsenmayer on PEL Nightcap Early April 2021
  • Mark Linsenmayer on PEL Nightcap Early April 2021
  • Mark Linsenmayer on PEL Nightcap Early April 2021

About The Partially Examined Life

The Partially Examined Life is a philosophy podcast by some guys who were at one point set on doing philosophy for a living but then thought better of it. Each episode, we pick a text and chat about it with some balance between insight and flippancy. You don’t have to know any philosophy, or even to have read the text we’re talking about to (mostly) follow and (hopefully) enjoy the discussion

Become a PEL Citizen!

As a PEL Citizen, you’ll have access to a private social community of philosophers, thinkers, and other partial examiners where you can join or initiate discussion groups dedicated to particular readings, participate in lively forums, arrange online meet-ups for impromptu seminars, and more. PEL Citizens also have free access to podcast transcripts, guided readings, episode guides, PEL music, and other citizen-exclusive material. Click here to join.

Blog Post Categories

  • (sub)Text
  • Aftershow
  • Announcements
  • Audiobook
  • Book Excerpts
  • Citizen Content
  • Citizen Document
  • Citizen News
  • Close Reading
  • Combat and Classics
  • Constellary Tales
  • Featured Article
  • General Announcements
  • Interview
  • Letter to the Editor
  • Misc. Philosophical Musings
  • Nakedly Examined Music Podcast
  • Nakedly Self-Examined Music
  • NEM Bonus
  • Not School Recording
  • Not School Report
  • Other (i.e. Lesser) Podcasts
  • PEL Music
  • PEL Nightcap
  • PEL's Notes
  • Personal Philosophies
  • Phi Fic Podcast
  • Podcast Episode (Citizen)
  • Podcast Episodes
  • Pretty Much Pop
  • Reviewage
  • Song Self-Exam
  • Things to Watch
  • Vintage Episode (Citizen)
  • Web Detritus

Follow:

Twitter | Facebook | Google+ | Apple Podcasts

Copyright © 2009 - 2021 · The Partially Examined Life, LLC. All rights reserved. Privacy Policy · Terms of Use · Copyright Policy

Copyright © 2021 · Magazine Pro Theme on Genesis Framework · WordPress · Log in