Umwelt in Programming

by Oleg Sovetnik

We can draw parallels between the processes of conceptualization and operationalization in sociology and approaches to modeling the domain in programming. This allows us to highlight several analogies and transfer methodological approaches from sociology into software development.

Umwelt as Applied Conceptualization in Programming

The concept of Umwelt, borrowed from biosemiotics, serves as an applied conceptualization in programming. Umwelt can be viewed as a model of perception for a system or software component. It is a set of constraints, capabilities, and interactions through which each part of the program “sees” and processes data. Umwelt is based on a broader understanding of the system — a foundational theory — and defines how the software system will interact with the domain.

In traditional programming, a domain model is often created directly, bypassing deeper conceptual layers. However, by applying the concept of Umwelt, we understand that software agents (or system components) should have their specific “perceptions,” akin to how agents in sociological research perceive the world through certain schemas.

Fundamental Sociological Theories and Programming Primitives

Sociological theories, such as structural functionalism, action theory, structuralism, and post-structuralism, offer multi-level tools for analyzing social reality. These complex theories provide a deep understanding of interactions, processes, and changes within the social structure.

In programming, however, the primitives of paradigms (objects, functions, agents) are much simpler and limited in describing complex systems. Sociological theories can offer more intricate and sophisticated mechanisms for designing and analyzing multi-level interactions than standard programming frameworks.

New Approach: From Theory to Code through Umwelt

A new approach to software development is proposed, based on sociological theories. It involves creating a system grounded in the concept of Umwelt, following this logic:

  1. Choosing a Fundamental Theory: Define the basic concepts that will guide development. This could be action theory, structural functionalism, or any other foundational sociological theory that fits the task at hand.

  2. Creating the Umwelt: Define the applied conceptualization — the Umwelt, which describes how different system components will “perceive” and interact with data.

  3. Building a Semantic Framework: Based on the chosen theory and Umwelt concepts, create a semantic framework. Programming primitives (e.g., objects, agents, or processes) are combined with concepts from the foundational theory, creating a new system of interaction.

  4. Translating Facts into Specifications (Tests): The facts established in the process of creating the Umwelt are translated into tests using the semantic framework and applied concepts (entities and values) interconnected through a mediator (a function interpreting a concept).

  5. Translating Umwelt into Code: Based on the created semantic framework and written tests, functions are developed to match the tests.


This new approach suggests rethinking software development through the lens of sociology, leveraging the idea of Umwelt as a framework to better handle complexity and interaction within systems.

sociology umwelt programming


Buzzwords
strong-weak-ties programming social-group-dynamics mindmap platform-networks structural-functionalism rationalism structuration-theory cognitive-capital mediatisation-theory operationalization enterprise Babylon automation social-action marketplace AI actor-network ideas scrum discord cognition communication social-capital financial production semantic-gap aspect-oriented umwelt empiricism positivism gap actor-network-theory research complexity information imperative verification problem psychologism game-dev streaming systems-theory disciplinary-power multiple-worlds-theory teamwork theory systems elephant cloud knowledge-communication structure tools symbolic-interactionism babylon field-theory messengers element security network e-commerce mediation-market big-data fact information-society concept communities philosophy social-network elements development object service multimedia sociology paradigm distribution theories language lenses epistemology metaphor social-exchange functional deconstruction linguistics anthropology meaning apriorism institutionalization-theory analytics projects conceptualization concepts poststructuralism procedural knowledge hoare-triples domain semantics consumption-theory syntax capitalist-systems subject