Last week ¾ of the family Wirfs-Brock present the talk, “Discovering Your Software Umwelt”, at the Onward! Essay track of the SPLASH 2024 conference. You can find the essay on which we based our talk here or in a more easy-to-read format, here.
The back story on how we wrote our essay: Initially, we had no idea what we could write about together… but the idea of a Wirfs-Brock, Wirfs-Brock, and Wirfs-Brock publication in the ACM digital library? How cool was that.
The concept of umwelt was something I had been exploring for a bit. In 2022 I wrote a PLoP essay about observations on my software design umwelt. Finding out what other software developers think the way they do and why they do is key to effective collaboration. And misunderstanding other’s motives, design goals, and values can be a source of frustration.
And so, as we discussed what we might write about, the idea of exploring our unique software developer umwelts seemed intriguing. It might also be a way for us to come to know more about each other.
We started by first writing about software umwelts using the following words to guide us:
The concept of umwelt was introduced by the German zoologist, Jakob von Uexküll. According to von Uexküll, we—as do all organisms—experience life in terms of species-specific, spatio-temporal, “self-in-world” subjective reference frames or umwelt. (from Wikipedia) Our umwelt filters our perceptions. Subsequently, how we act is based on those perceptions and the significance we assign to them.
When we encounter an unfamiliar environment, only our “untuned” perceptive capabilities are available to us. We don’t know what’s significant nor are we skilled at determining what actions may be appropriate. It is through repeated interactions with our environment, that we learn, fine tune our perceptions, and grow our skills at producing desired effects.
So, what do we know about software developers’ umwelts? How do personal experiences affect the formation of our software development unwelts? How do they subsequently impact and shape software development careers?
Write 1500 words or so about your software development umwelt and its formation. Potential points to discuss:
- How do you perceive software development?
- How do you interpret a programming problem?
- What values do you assign to those perceptions?
- How do you approach a programming problem?
- How did you learn to develop software the way you do?
- Why do you act the way you do and not in other ways?
- Were there formative experiences that imprinted on your umwelt?
My umwelt story was ~ 2000 words; Allen’s a succinct 1300; Jordan’s eventually grew 2400 words (she expanded on her initial riff, filling in more details, added later experiences, and reflections). And yet, we still didn’t know how our individual umwelt observations would mesh into a coherent essay.
(None of the essays I’ve written to date have followed a prescriptive pattern. I’ve never been able to sit down and write in a linear, ordered, structured fashion. As I explore a topic, I restructure my ideas, write, rewrite, rethink and refine them. And then I revise some more…and repeat. It’s even a messier process when you collaborate with others. And then, after critical reading and review, I often totally turn an essay around and reorganize it—again and again. I’ve found that an essay only reveals its structure and meaning through revision and reflection.)
We felt we learned a lot about ourselves in writing these narratives. But boring autobiographies was not our goal! So next, we examined the narratives and asked each other questions (tell me more, wow!, why?…) – leaving annotations in each other’s documents. After responding to those questions, we collectively looked at our narratives and pulled out what seemed to be common threads that occurred in the development of our software umwelt development to write about. Aha! Now we had a potential structure to our essay—it could follow the arc of our stories.
We introduced the general concept of umwelt and motivated why we believed it could be helpful to examine that part of our umwelt that was about software development.
We identified five common threads in our umwelt stories and decided to structure our essay into sections that discussed five different aspects of our software umwelts’ development:
- Origins—our first exposure to learning programming
- Nurturing—some positive experiences
- Going to work—our first professional experiences
- Finding proficiency—how we found our groove
- Pivots—major changes in direction or career goals and interests
Jordan suggested we add prompts at the beginning of each section so that readers might use them to reflect on their own software umwelts. Adding these prompts resulted in us iterating on the contents of each section and adding some concluding observations. Eventually, we added advice on reflective writing and summaries of our software umwelts.
Writing was a bumpy, uneven process. But I now know more about myself and what makes me tick. Better yet, I know more about what motivates and inspires my fellow Wirfs-Brocks.
The process we undertook as we wrote this essay convinces me that writing and reflecting is a powerful tool for developing mutual understanding. We hope you are inspired to try to discover your software umwelt story. We’re interested in your reactions to our essay or any insights that you might wish to share about the development of your software umwelt.
Contact us at umwelt@wirfs-brock.com if you want to keep the conversation going.