I did not always have dreams of being a software engineer. For a very long time I dreamed only of being a surgeon. I was fascinated with medicine, and longed to be able to help people from the inside out. It was with this singular focus that I entered college as a forensic science pre-med major and started down a path that I thought for sure would end with me in the operating room.
But my fate was changed, at first very slowly and then with a quickness. The first couple of years in school 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 that the natural sciences taught through memorization. I was interested in discovery, and wanted the challenge of making something new, rather than learning how things already worked. All of these things were small nuisances at first, but they let to me deciding to drop my pre-med designation. I was now free to take classes that I found interesting. I found a better fit studying psychology, neuroscience and linguistics. Then I took my first anthropology class. This ushered in the quick change. I found the discipline that I would continue to study in graduate school, and a worldview that gave me the chance to discover. I loved the integration of natural science, philosophy with art and history. It allowed my mind to see the world from a new angle.
While working on my graduate degree, I also worked full time at a data company. It was at this company that I learned about technology and my love and affinity for it. I learned how to run queries, how to build databases, and how to manipulate data in ways I had never thought to before. It was a great compliment to my graduate studies as a medical anthropologist. It was also at this company that the seeds were planted that lead me to become a software engineer. It was that same sense of discovery combined with tools to build what I wanted into existence.
I found ways to apply anthropology to everything that I did, including software. Anthropology and software are not exactly peanut butter and jelly, but they do maintain a delicate balance to innovation.
Digging into Anthropology
Anthropology is a broad discipline concerned with techniques like 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 is a science unlike any other in that what you can study nearly knows no bounds. The vastness of the discipline trains you to see universal patterns. Everything is understood as belonging to a system. It is through understanding the system that you can find your footing in something unfamiliar, and find your way through it. It is no wonder that when I started working as a software engineer, I was drawn to DevOps and systems engineering. My anthropological training lead me straight to the framework for how technology works.
I know the value of holism, of seeing how one piece affects another. It is an obvious thing that often gets ignored when building technical systems. People often think of technology as machines talking to machines. And while that is true at some level in the technology stack, building software is more about people than anything else. There are people who are using the systems, there are people who are architecting the systems. There are people who are writing the software. The human footprint can be found everywhere you turn. So, it makes sense that humanistic thinking in software is revolutionary. It is the reason why Apple can change the world by taking their iPod and attaching it to a cell phone. 10 years ago smart phones were an extremely small part of the market. Now, in the western world, it is likely that there are more smart phones and tablets in a home than there are personal computers. It isn’t by accident, or only by great marketing. It is by using technology to tap into a holistic system. These systems exists around us all the time, and an anthropologist is trained to root them out, understand them, and predict how they will change.
Gearing up with Engineering
But like any balanced equation, being a software developer has changed my view as an anthropologist as well. My training, even as an applied practitioner was not nearly as project driven as my work as a software engineer. In order to break down the problems I am looking at, it is helpful to start doing something, in order to understand it. Even if that means sketching out the chain of events that I am trying to fix, action is a virtue. You are a software engineer because you write working programs. That’s it. No peer-reviewed work, no list of accolades to prove your value. That intentional execution has influenced the way that I think about problem solving. It forces me to get deep into the dirty work much sooner. It also means becoming expert at shrinking big problems down to size. The only way to eat the elephant is one bite at a time. No one knows that better than a software engineer. It is a huge part of the job to dissect what you are doing down to small chunks of solvable problems. Being in the thick of it is what I loved about being an anthropologist. Being a software engineer takes that to a whole new level.
The work is being co-created while you are thinking. You have the ability to solve problems with more than understanding and delicate comprehension. You can use sheer force of will to create a door where one did not exist. It is an interesting tacit to bring back to my anthropological toolkit. It makes me want to be more than just an observer. Now I have another option. I can build a virtual container. I can say to the world that I find value in something, and augment that value through software and the power of the internet. At the heart of the web, there are in fact, just people making connections in ways that we never have before.
The Tricks of The Trade
How am I a better software engineer because of anthropology? For starters, I am insanely curious. Software engineers are known for their egos. They like the be the best and brightest, they love to unwind complicated problems using really great code that executes in a single line. As an anthropologist, I am interested in every possible solution. Do we need to write code? Or do we need better documentation? How can we work on making the existing system easier to use so that it doesn’t need documentation? I think of code as a tool for solving the problem, not the only way to solve a problem.
Being an anthropologist forces me to be a good communicator. That includes writing effectively, visually being attentive and listening. It means that when I am talking with clients I make a point to look them in the eye, give them my full attention and listen. Understanding what a client really needs is half of the battle. Even the process of gathering requirements, which seems pretty straightforward, can be fraught with minefields if you don’t fully communicate with others. I take the time to learn about the people that I am building software for. It helps me to have empathy for their needs and to better understand when to reach out for guidance.
As an anthropologist, I think about representation and power. I am aware that there are systems of power at play that affect what people are willing to say and what they are not. Who is giving these requirements? Are they speaking on behalf of others? If so, can I get to the ground level and find out what the real needs are? I am also thinking about how new features affect the systems that are currently in place. My goal is to ensure 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 that may try to skew your project into technology that makes them look good. Seeing this early on gives me the opportunity to bring the project on track before it gets derailed.
Software engineering augments every aspect of my anthropological training. Learning how to write programs that process and analyze data make it possible for me to do analysis on a wide array of subjects. The tools of engineering deepen my discipline in anthropology. In the past, I could expect to do an anthropological project and have a few people read about it. Now, I can post it online and engage social media and bring it to the attention of thousands. Being a software engineer means that I can take that even further, and make sites dedicated to the subject, write programs to do large scale analysis and much more.
Being a software engineer has made me interested in being a data scientist, and combining my love of data with Big data. It has made me interested in data journalism, and finding new and interactive ways to present information online. Engineering gives my brand of anthropology wings. I have become so used to re-imagining how I can apply anthropology to new places that innovation and anthropology have become linked in the way that I work.
The Best of Both Worlds
Being trained as both an anthropologist and a software engineer means that I mix and match these two perspectives. I live by iteration. Small changes over time have a huge effect. But even when I am making those changes, I am always keeping the big picture in mind. I have observed patterns in the system that I am working in, and have become sensitive to how my iterative changes affect the whole. But I am always looking for the problem break down. What it is the simplest solution that I can put into action? Can I improve this a little bit more? Getting something up and running is more informative to my immediate problem than theorizing general solutions.
Anthropology and software engineering seem to be two sides of the same coin. The yin and yang of these disciplines bleed into one another and make the union stronger. The certainty of engineering is inspiring. There is less questioning of what should be done and more building and doing to prove a concept. It is liberating for me as an anthropologist. If I build it, I can show that it has value. Anthropology is rare in that it is a social science that incorporates objects, and not just people, into studying social phenomenon. Looking at computers and technology as aspects of material culture make it easy to use anthropological training in tandem with software. The “softness” of this science gives my work as an software engineer social meaning. The tools of our past allowed us to extend our physical selves, like a hammer allowing the extension of our arm’s ability to strike. Computers are tools that are extensions of our mental selves. They are 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 to reach billions and billions of people. That changes everything. In order to keep creating meaningful tools that raise the level of human existence, you have to have an understanding of the big picture. The liberal arts and social sciences are designed to ask the big questions. As we move forward with making technology that will influence the world, you will need to have technologists with social understanding. It is important to know not just how to create sound technology, but to create technology that will be used by people.
Like what you’re reading? Ethnography Matters is a volunteer run site with no advertising. We’re happy to keep it that way, but we need your help. We don’t need your donations, we just want you to spread the word: our reward for running this site is watching people spread our articles. Join us on twitter, tweet about articles you like, share them with your colleagues, or become a contributor. Also join our Slack to have deeper discussions about the readings and/or to connect with others who use applied ethnography; you don’t have to have any training in ethnography to join, we welcome all human-centric people from designers to engineers and architects.