It was dark and cold that night I stomped down Broadway, talking to my then-boyfriend-now-husband about my feelings. I am always talking about my feelings, and he is always listening. He “mhm”s at the right places and doesn’t interrupt and sometimes says good things at the end. Sometimes he says wrong things, and then I have to explain why those things are wrong, taking us down an emotional tangent that is frustrating and exhausting, but he’s trying to be helpful, I tell myself and breathe. Bless his little heart.
But tonight, he lets me talk. And I do, filling the minutes with long, twisting sentences that make sense to me, but as they tumble out, I’m not sure that they do, so I pause and I blurt, “I’m just not a white man!” Or something like that. This was years ago, so who knows what really happened. I may not have been on Broadway at all. But that’s where the anger ended, in not being white or a man or coding since I was two or some combination of the three. This wasn’t going to work. Coding wasn’t going to work. I didn’t belong.
Fast-forward three years. I’d choked down my feelings and learned to code and built things and knew stuff that even my then-boyfriend-now-husband didn’t know. We sat on our couch one evening while I explained how AJAX worked. He leaned back and I leaned in, excited and trembling at the edge of my seat. I heard the words coming out of my mouth, watched them float in the air between us, blooming with buzzwords and jargon and pride and I burst into tears. I covered my face with my hands, hunched over and shook. I couldn’t believe I understood the words I was saying. This was going to work. Coding was going to work. Maybe I did belong.
The cracks in that newly laid confidence would soon come, but not for reasons I may have lead you to believe. I apologize if you assumed this was a story about a difference rooted in race and gender, because it is not. That’s not where we are going. This is about a difference of values, beliefs, perspectives.
I wanted so badly to think like a programmer, which implies that the way I think is wrong
I wanted so badly to think like a programmer, which implies that the way I think is wrong. It needed fixing in many ways. This observation is frustratingly fuzzy, cloudy, unfocused, but I’ve squeezed it hard enough to make raindrops, something I can taste and feel, and I shall give you three.
I am not solution-oriented. I don’t see a problem and get giddy at the idea of solving it, patching it up and sending it on its merry way. I want to poke it and ask it questions. Where did it come from, what is it doing, what’s its story? I want to take it to tea and hear about its life and understand it to its core. And if, at that point, I’ve come to a wholistic understanding and am able to solve the problem, by all means, let the problem-solving commence! But my instinct is never to solve, but to understand.
This is the part where you tell me that this is a great asset in a programmer! That all programmers would be much better off if they took the time to understand before diving in! My thinking isn’t broken at all, you say, it’s super awesome!
That’s cute. And truly, I appreciate your defense of my broken brain. But no matter what Medium blog posts tell you how crucial it is to understand the problem before coding its solution, this is, at best, an annoying part of an average developer’s job, and, more likely, a distant idea that is happily ignored. Developers solve problems. It is the problem-solving, not the problem-understanding, that gets you high.
Hm. Maybe this isn’t going to work.
I am not comfortable making half-ass shit. Once in a while I look up the famous quote by Reid Hoffman, co-founder of LinkedIn, who said, “If you aren’t embarrassed by the first version of your product, you shipped too late.” I say it to myself. I say it again. I let it sit and turn it over and convince myself this isn’t insane. I understand this concept at an intellectual level. I get the value of the MVP (minimum viable product) and was excited to learn the pseudo-scientific process of the lean methodology. The quote is a punchy way of encouraging product creators to start small and test an idea before investing loads of money and time in an expensive mistake.
And this advice is great! You should start small and test and learn. But the way this advice manifests itself is often in writing shitty shit that makes shitty shit products, and leaving it in its shitty shit way. It’s the shrug that accompanies the mindless defense, “But it works.” It produces a mentality of doing the absolute bare minimum, not because it’s what’s best for the product or your team, but because, why bother to do more? It works! It condemns everything I’ve learned and loved about craftsmanship and quality and just plain giving a fuck. There are no As here, there is only pass and fail. Maybe coding wasn’t going to work.
This is the part where you tell me that there is such a thing as beautiful code! There are talks that preach the value of well written code, books filled with advice on how to hone your craft, podcast interviews of developers raging against poorly written programs. My value of quality is wonderful, you say, do not fix it, you shout, keep going, you plead!
But perhaps the biggest way that my brain is broken is less about code, and more about the tech industry as a whole.
That’s cute. But no matter how many conference talks you’ve tweeted about praising code as craft, open up your company’s production-level app right now and tell me how much of that has made its way to your product. Don’t worry, I’ll wait. Because in the real world of death marches, limited runway, and just plain old pressure from the higher ups, quality and care are a dream: sweet, distant, and rarely realized.
But perhaps the biggest way that my brain is broken is less about code, and more about the tech industry as a whole. If you’re thinking to yourself, “But everyone uses tech so everything is the tech industry,” please sit tight while I take a moment to roll my eyes. … Ok, I’m back. For our purposes, let’s define “tech industry” as companies and professionals who view code as a core part of their business and their self-understanding, both internally and externally.
When I was at NPR years ago, I did a story on public education in California. I don’t remember the angle, but I remember looking up a stat to use in the script. I used that stat in a few places, and after fact-checking, I realized there was an updated number available. I went back and changed the references to the new number, relieved that I’d caught this mistake before handing over my script to the host. But I missed one. I heard it over the speakers when Michelle Martin, the host, read it out loud during the interview, and my heart stopped. I knew it was my duty to report it, so I went up to my editor and told her. She didn’t say anything, but I could feel her disappointment in me. I melted into a pool of shame.
But here’s the thing. No one will ever remember that number. No one remembers it now, and I’m sure no one noticed it when it happened. But I knew it happened, that it was an easily preventable mistake, and, in journalism, being wrong in that way is absolutely unacceptable. So imagine my surprise when I first heard of “fail fast and break things,” one of the famous tech mantras for product creation. Imagine my shock to find out that being wrong is not reprimanded, but, at times, encouraged. Imagine my confusion stepping into a world where people are told to “just try it and see.” I tell myself over and over that this is different, that this is good, that public experimentation is not a holy sin. I’ve managed to convince myself, when I’m not busy quieting a nauseous tummy tormented by public broken attempts and shameful failures. But here, I will admit defeat. Being wrong in software is fundamentally different from being wrong in reporting. Except when it’s not.
When I use your product, I’m trusting you. I believe you when you tell me that clicking that button will create my profile, that I am indeed submitting an email by hitting enter, that I will see my mom’s message when I click on her little, round face. My belief in you is delicate and deep. Do not take my trust for granted. Do not take advantage of me.
We are in a relationship, you and I. Distant and faceless, yes, but a relationship nonetheless. I give and you take and you give and I take, and I believe your words, your lines, your interfaces. It should be precious. It should be handled with care, but the carelessness I see in tech is unsettling. The willful ignorance, the rejection of our relationship, hurts.
It might come big, like playing with my emotions by purposefully filling my feed with sad or happy content, just to see how I respond.
It might come small, like your claim of being the number one this-and-that in your this-and-that field, according to … no one. You are so proud of your accomplishments and so comfortable in your grandeur that you forget to be honest with me.
Sometimes it comes deep, like spending months together trying to solve a problem you promised me you could solve to later find out that you got it all wrong, you made it all up, you have no idea what you’re doing. You brag about this in your interviews and inevitable autobiography. For some strange reason, you wear this ignorance as a badge of honor. You failed fast and broke my heart.
But you will never see it that way. You’re too excited. I feel you whisper make the world a better place as you drift to sleep, so obsessed with changing it that you forget that the world is made up of little people like me.
You are experimenting, trying new things, and for this, you are great and lean. But sometimes, you forget that I’m at the center of your experiments. Sometimes, you forget me.
I take these relationships seriously. So seriously that often I’m immobilized and overwhelmed. And in those moments, you push products I’m too uncomfortable to push and you win. You get there first, making waves while I sit in last place and watch. So I choke down my values and discomfort and attempt a push of my own, amid the internal screams that this is wrong and irresponsible and how dare I. I don’t get very far. My feeble, half-hearted steps cannot compete with your bold, proud strides. So I cower back to my corner with my broken brain and peep at your success through the leaves.
I do not belong. My values are not valued. My thinking is strange and foreign. My world view has no place here. It is not that I am better, it is that I am different, and my difference feels incompatible with yours, dear tech. So I will mark my corner, a small plot of land and stand firmly here, trying to understand you and reconcile these conflicting differences.
Maybe I will change. Maybe you’ll surprise me. Maybe, one day, I’ll belong