On Coding and Anarchy [July 21 2017]
As I start writing this, I’ve just received an email from corporate HR announcing results of a survey that “clearly indicate” that employees feel like the most important thing to improve is career development.
As this happens, I think back how, just a few days ago, I was clumsily requesting from my management to opt-out from being managed. The request came after a long and unstructured reflection culminated by pressure build-up that just had to be released.
I write code for a living. Oficially, that makes me a Software Engineer. I’d prefer just saying that I’m a coder. Even better, I want to say I write code for a good chunk of my day but I also do plenty of other things with my life and I’d like to not define myself as a coder. I draw, I photograph, I write, I make the occasional basket or spoon, I go camping with my kids.
A few years ago, I was made the tech lead of the team I was on. I didn’t like it and said I didn’t want to do it. My repulsion came from my allergy to meetings but I also didn’t like the idea of being distracted from what I do best to include tasks that I didn’t think I was terribly good at. In the spirit of making this liveable for me given my feelings of apprehension, I was spared some of the most boring aspects of the job. I still didn’t feel comfortable with the situation. After some time and a pretty dramatic series of events and discussions, I finally got out of being assigned the title of tech lead.
For the next 2 years, things were better. I had enough reputation to be given the autonomy to decide what I should be working on. I knew what needed to be done and how to do it so I just did. It felt pretty good. However, I still had to deal with discussions about the future of my career or what I should do to get to my next promotion. Every time, I made it clear that I didn’t care about getting promoted. In fact, I requested to not be considered for a promotion. In doing so, I really wanted to avoid changes in how people saw me and my responsibilities.
Alas, I recently got asked what’s the next thing I wanted to work on. The motivation wasn’t a bad one. Managers want to help their employees remain satisfied and interested in their work. Talking about their future is one way they think they can achieve that. However, for reasons I won’t get into, I didn’t really want to discuss “big initiatives” and my “future at the company”. Really, I just wanted to live day to day and continue picking up the next piece of work that I thought I could help with.
Which led me to this request to opt-out of being managed. After trying to just dodge the big questions, I eventually gave up on trying and just asked to skip regularly scheduled one on one manager/employee meetings. I requested specifically to be allowed to do what I’m best at and not be stressed out or pressured to think about bigger career evolution.
What this Means
For several years, I had been fighting with everything that represented formal rules/hierarchy/management and was naturally doing work, collaborating with peers and having a good time when feeling free to do so. I still often felt trapped by some processes and even more by the context of my employment but I still had the mild good fortune of being tolerated in this self-attributed freedom to self-organize. And only after I formulated this request to “opt-out of being managed” did I realize that what I was really longing for was anarchy.
To me, anarchy is simply that freedom to self-organize. You might be a lone anarchist but, as I’ve described previously, it works really well when collaborating with peers/friends/family/community or even random strangers.
One of the reasons I didn’t like the label “Software Engineer” is that it seems to be a discipline encompassing many different facets of building software (architecture, design, mentoring, etc). For me, “software engineering” feels like we’re trying to pack-in a career progression and, as a result, a hierarchy. You can only be in charge of “architecture” if you’ve done a few years of being a Senior Software Engineer. While coding involves the same things (design, architecture, teaching peers), it also sounds more action-driven and holistic. To code something, you have to do those other things as well. However, all of it would be done naturally without as much formality around it. In fact, it might often feel so natural that is just seems like one big flow of necessary actions. Granted, my interpretation of the words is very subjective but I think that I might not be alone in this interpretation.
While the definitions of the labels I just mentionned are very subjective and informed by personal experience (rather than literal definitions), I realized at some point that my understanding of coder (or my definition of it) goes hand in hand with anarchism.
Anarchy and Software
Interestingly enough, my friend Peter Michael Bauer used coders as an example of natural anarchists during one of his Rewilding 201 classes: promoting freedom of information, open-source projects with decentralized control, collaboration with peers with no ultimate ownership. At the time, I thought that this was true on some level but I downplayed this based on my experience in the software industry which doesn’t, like all industries, follow the same ideology. Some companies like github have tried to do this with some success but not always with a lot of intention.
This makes me think that, if given the chance, anarchism could work really well. Accidental anarchism success stories (like github seem to exist because groups of people naturally worked this way, it gave great results and it was enjoyable. Of course, pressures from the capitalist market and desire for growth (rather than quality or sustainability) might have resulted in this system falling appart after some time or when reaching a size too big for self-organization. However, it seems telling that this is how a lot of people enjoy and get excited about working this way.
I’m not a fan of using labels. It creates a division that is often a blocker to empathy. However, I think it can be useful in expressing a set of ideas more quickly to move the conversation to the next level. I also realize that labels can oversimplify those ideas and even erode some of their original meaning which then becomes a recipe for misunderstandings. Additionally, appropriating the label “arnarchist” to describe myself in the context of a capitalist tech industry might be a disservice to real anarchists trying to push real change and I’d like to limit my use only to open up a discussion about general anarchy amongst peers who feel like they naturally tend towards this way of working or living.
You might be one of those coders. You might have just realized that you might be an anarchist in the context of how you work. If so, you should consider what this means in other facets of life. It’s easy to compartmentalize and go back to your routine accepting the rules and hierarchy built-in all that surrounds us.
Maybe stop and ask yourself what this could mean if you were to imagine a different world. Maybe a world where the civilized “normality” is gone and we’re free to live in collaboration with our friends and neighbors.
If you’d like to continue exploring further down that path, you might enjoy reading this somewhat dense but interesting Anarchist Critique of Democracy. And then, if you’re wondering what a world free of the rules and oppressive system could look like, go read A Paradise Built in Hell.
If paradise now arises in hell, it’s because in the suspension of the usual order and the failure of most systems, we are free to live and act another way.
I’ll see you around the campfire on the other side of the fall.