I didn’t always dream of being a software engineer. I only dreamed of being a game designer for a very long time. I was fascinated by video games and wanted to be able to keep people awake with stories they could be part of. It was with this unique focus that I entered university as a major in computer science and started a path that I thought would surely end up with me in creating the greatest story ever told.
But my destiny was altered, first very slowly and then quickly. The first couple of years in university had been rough on me. It made me question if I was doing the right thing since I wasn’t enjoying my major as much as I thought I would. I didn’t like the way engineering was taught through memorization. I could already write the most time and space efficint algorithm to do X, I had already mastered the art of breaking a complex problem down to atomic levels and building systems that came together to create a solution.
I was interested in discovery and wanted the challenge of making something new, rather than learning how things were already working. At first, all these things were small nuisances, but they led me down a one-way rabbit hole. I started looking for online wisdom and bunking classes at university, disinterested in studies. Now I was free to learn what I found interesting. I found a better fit to study philosophy, psychology, linguistics, and ethnography. I read books on philisophy and psychology, such as Martin Heidegger’s Being and Time and Marcus Aurelius’ Meditations. This led to the rapid change. I found the discipline I would continue to study in my later years, and a worldview that gave me the chance to discover. I loved integrating natural science, philosophy with art and history. It enabled my mind to see the world from a new angle.
Anthropology through the looking glass
Anthropology is a broad discipline concerned with techniques such as ethnography, often using grounded theory, where you go out into the field and allow a culture to tell you who they are and how they do things. It’s a science unlike any other in that what you can study almost knows no boundaries. The vastness of the discipline leads you to see universal patterns. Everything is understood to belong to a system. By understanding the system, you can find your footing in something unfamiliar and find your way through it. It’s no wonder that I was drawn to information systems and systems engineering when I started working as a software engineer. My anthropological training leads me straight to the framework for how technology works.
I know the value of holism, seeing how one piece affects another. It is an obvious thing that is often ignored when building technical systems. People often think of technology as machines that talk to machines. And while that’s true in the technology stack at some level, building software is more about people than anything else. There are people who use the systems, there are people who architect the systems. There are people who write the software. Everywhere you turn, the human footprint can be found. It makes sense that humanistic software thinking is revolutionary. This is why Allen Kay has changed the world by inventing the graphical user interface and mouse. It’s not just by accident, or by great marketing. It’s using technology to tap into a holistic system. These systems exist all the time around us, and an anthropologist is trained to root them out, understand them, and predict how they will change.
Scaling up with Engineering
But like any balanced equation, being a software developer has also changed my view as an anthropologist. My training, even as an applied practitioner, was not nearly as project-driven as my work as a software engineer. To break down the problems I’m looking at, it’s helpful to start doing something to understand it. Even if that means sketching out the chain of events that I’m trying to fix, action is a virtue. You’re a software engineer because you’re writing work programs. That’s it. No peer reviewed work, no list of accolades to prove your value. That intentional execution has influenced the way I think of problem solving. It forces me to get into the dirty work much sooner. It also means becoming an expert in shrinking big problems down to size. The only way to eat the elephant is, one bite at a time. Nobody knows that better than a software engineer. Dissecting what you are doing to small chunks of solvable problems is a huge part of the job. Being in the thick of it is what I loved being an anthropologist. Being a software engineer takes this to a whole new level.
The work is being co-created while you’re thinking. You have the ability to solve problems with more than understanding and delicate understanding. You can use sheer willpower to create a door where there was no one. Bringing back to my anthropological toolkit is an interesting tacit. It makes me want more than just an observer. I have another option now. I can create a virtual container. I can tell the world that I find value in something and increase that value through software and the power of the internet. In fact, there are only people making connections at the heart of the web in ways we never have before.
Betting on a long-term pay off
How am I a better anthropology software engineer? I have the scout mindset for starters. Software engineers are well known for their egos. They like being the best and brightest, they love to unwind complicated problems using really great code that runs in a single line. As an anthropologist, I’m interested in every possible solution. Must we write code? Or are we in need of better documentation? How can we work to make the existing system easier to use so that documentation is not needed? I think code is a tool to solve the problem, not the only way to solve the problem. There is always an alternative solution to every problem. My toolkit is vast, so not all problems look like a nail.
Being an anthropologist makes me a good communicator. That includes writing effectively, being attentive visually, and listening. It means that when I talk to customers or clients, I make a point of looking at them in the eye, giving them my full attention and listening. Understanding what a customer or client really needs is half the battle. Even the process of gathering requirements, which seems pretty straightforward, can be fraught with minefields if you don’t communicate fully with others. I’m taking the time to learn about the people I’m building software for. It helps me to have empathy for their needs and better understand when to reach out for guidance.
I think of representation and power as an anthropologist. I know there are power systems at play that affect what people are willing to say and what they are not. Who gives these requirements? Are they talking on behalf of others? If so, can I reach the ground level and find out what the real needs are? I am also thinking about how new features affect the systems currently in place. My goal is to make sure that my work has the best possible impact on the system without doing unnecessary work. Making technology should be about solving problems within a functioning system, but there are people in high positions who may try to skew your project into technology that makes them look good. Seeing this early on gives me the opportunity to get the project on track before it gets derailed.
Software engineering increases every aspect of my anthropological training. Learning how to write programs that process and analyze data makes it possible for me to analyze a wide range of subjects. The engineering tools deepen my anthropology discipline. I could expect to do an anthropological project in the past and have some people read about it. Now, I can post it online and engage with social media and bring it to the attention of thousands. Being a software engineer means I can take that further and make sites dedicated to the subject, write programs for large-scale analysis, and much more.
Being a software engineer has made me interested in being a data scientist and combining my data love with big data. It made me interested in data journalism and finding new and interactive ways to present information online. Engineering gives my anthropology wings brand. I have become so used to re-imagining how anthropology can be applied to new places where innovation and anthropology have become linked in the way I work.
To have the cake and eat it
Being trained as both an anthropologist and a software engineer means I mix and match these two perspectives. I live with iteration. Small changes over time have an enormous effect. But even when I make those changes, I always keep the big picture in mind and frame it to make recommendations beyond the context of the problem and business. I observed patterns in the system in which I work and became sensitive to how my iterative changes affect the whole. But I’m always looking to break down the problem. What is the simplest solution I can put into action? Can I improve that a little bit more? Getting something up and running is more informative for my immediate problem than theorizing general solutions.
Anthropology and software engineering appear to be two sides of the same coin. The duality of these disciplines bleed into each other and strengthen the union. Engineering certainty is inspiring. There is less questioning about what should be done and more building and doing to prove a concept. It liberates me as an anthropologist. If I build it, I can show it has value. Anthropology is rare in that it is a social science that incorporates objects, not just people, into the study of social phenomenon. Looking at computers and technology as aspects of material culture makes it easy to use anthropological training in tandem with software. The “softness” of this science gives social meaning to my work as a software engineer. Our past tools allowed us to extend our physical selves, like a hammer allowing the extension of the ability of our arm to strike. Computers are tools that are extensions of our mental self. They’re where we store our memories, how we connect with friends, how we arrange our thoughts, how we present ourselves to the world.
Technology has scaled up to reach billions of people. That’s changing everything. To keep creating meaningful tools that raise the level of human existence, you need to have an understanding of the big picture. The purpose of the liberal arts and social sciences is to ask the big questions. As we move forward with making technology that will influence the world, you will need socially understanding technologists. It is important to know not just how to create sound technology, but how to create technology that will be used by people.