--- title: "A Model for Identity in Software" date: 2021-01-31 tags: - philosophy - pluralgang --- # A Model for Identity in Software Most software on the market has a very boring relationship with identity. Most assume that one user has one "real" name and one "username". Some software associates identifiers like phone numbers with people. Some software allows you to have multiple entirely different accounts and then share nothing between them. Some software makes this easier. Some software (such as forum engines) have the concept of sub-accounts that allow you to compartmentalize parts of your identity and switch between them at will. However, there is very little out there in terms of software that gets this _right_. There's always limitations, difficulties, red tape and caveats. I would like to discuss a proposal for how to handle this in a way that is flexible enough to cover the widest possible expressions of human identity so that software can be as inclusive as it can be from the ground up. This is a very serious thing and I am treating this very seriously, however it can get kind of boring reading everything in a serious tone so I am attempting to liven it up with some more creative scenarios. ## The Existing Clusterfuck of Identity So, let's start out with describing some assumptions that programmers have about identity so that this proposal can address them. I'm going to be borrowing from a few sources: - [Falsehoods Programmers Believe About Names](https://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/) - [The Plurality Playbook](https://www.pluralpride.com/playbook) Here's some big assumptions that can cause the most practical issues: - Each user has at most one name - Each user has at most one username they prefer - Each user has at least one phone number or email address they'd prefer to use - Users have no reason to create multiple logically separate identites If you have never encountered the kind of situation where people have multiple names that they actively go by before, this will likely sound very confusing to you at first glance. People just have given names right? They're given to you by your Mom and Dad and then you're just stuck with them for the rest of your life, right? Wrong. Your "Mom" and "Dad" in fact have names of their own beyond "Mom" and "Dad". They could have names like "Karen Smith" or "David Carmicheal". But to you they could be "Mom" or "Dad". You could be "son" or "daughter" to your "Mom" and "Dad". You could be something else entirely to someone else. Yet those are all separate logical parts of someone's social identities. If you are called "Mom" in a context by someone, it can have a very different connotation than if you were called by a username, nickname or legal name. [As a contrast, think about cartoons like The Fairly Oddparents where Timmy's Mom only ever has the name "Timmy's Mom". You'd normally expect her to have another name, but Timmy's Mom is only ever referred to as "Timmy's Mom" or "Mom".](conversation://Mara/hacker) As an example, let's consider the various ways that I, the author of this document experience identity that defy most of the identity systems that I have to deal with. I am publishing this post under the name Christine Dodrill. That name is my legal name that I use for dealing with the government and in formal situations like that. One of the places that this post gets published is [my GitHub account Xe](https://github.com/Xe). I also tend to use that name in some places, I see it as a lot less formal than my legal name. Generally contexts that I use it in are places that I feel safer in, however it's still detached from my more personal relationships. Then there's my handle Cadey. I consider this one to be the "real me" (for some definition of "real" and "me" that makes sense in context). I don't use it everywhere because Cadey is a lot less formal/a lot more personal, shitposty and friendly than the other names are. If you see me using it or I am in a space with others using that to refer to myself, this is actually a fairly significant sign of trust in the situation or the people involved. [Cadey A. Ratio the name is a shitposty reference to a term in online gaming called the Kill/Death/Assist ratio. K/D/A Ratio, Cadey A. Ratio.](conversation://Mara/hacker) Also, as an aside I am going to be talking about some things in the rest of this article that really do mix the name-based compartmentalization that I do together, if you really want to ask clarifying questions or whatever I suggest doing it over somewhere my name is listed as Cadey. There are some questions that I am hesitant to answer in professional contexts. Please respect this. I have not seen any system on the internet that allows me to properly map the differences between these logical facets of my identity. Not without having to make multiple accounts, keep track of god knows how many email addresses and use ungodly hacks such as [Rambox](https://rambox.pro/#home). Seriously, I've tried. People wonder why I would need a tower with more than 32 GB of ram and having to keep so many webmail clients and instances of Discord open is basically the entire reason why. So, one common thread between my escapades with identity and someone that wants to keep their kids, knitting buddies, DnD group and gaming buddies separate is that they are the same _person_ wanting logical separation between different _facets_ of their identity. They may not want their kids to know that they play Grognar the Destroyer on saturday nights, but they might also not want their very religious knitting buddies to easily be able to find out that they roleplay as a succubus in an MMORPG. People that are transgender, nonbinary or a political activist may also want to separate out parts of their identity for fear of rumors or persecution. Coming out as transgender is one of those 50/50 splits between "nothing bad will happen" and "that person will never see you the same way again and disown you". That incurs a _huge_ amount of social risk. This is a very strong case for having a way to logically separate out part of one's identity. This could mean the difference from someone being accepted by their family or shunned by them. This could mean the difference between an activist being able to continue to advocate for universal healthcare coverage and that activist being thrown in jail for a very long time with trumped up charges for speaking out against the actions of Big Toothpaste. However, what about _entirely separate people_ that need to share computers or accounts? This could range from a married couple sharing a computer for financial reasons to one case that I can think of that completely annihilates most assumptions programmers make about identity: [Plural systems](https://www.pluralpride.com/playbook#introduction).