perfection as a dicey prospect contributing to software projects because you wish to see perfection in the world is a dicey proposition Perhaps I should say "contributing to software as a perfectionist". I guess I could inaccurately describe myself as a perfectionist. I guess I wouldn't describe myself as a perfectionist because perfectionism seems to denote for people other mental problems than whatever the one I have is. (Special and perfect lad, self-dx.) Someone once told me that, apparently, master salesmen will say of sales: convincing people of things is like building a palace out of ice: you'd better be getting paid for it, because it's hard as heck and it comes to nothing in the end. The same is also generally true of programming. And so, typically, one is programming for money, or at least for utility, or at the very least to accomplish something in particular that you are highly invested in achieving. however, sometimes this is not true. sometimes, if you're like me, at any rate, you come across some programming project, probably on GitHub, and you notice something is slightly wrong about it and so you decide to contribute, driven only by fellow-feeling and the beauty of perfection in the universe. usually, this goes well. whether it's a typo, or a more-substantial pull request, people are usually happy to receive your contribution, or at least appreciate the suggestion and deliberately make a conflicting choice due to how they want to run the projects and close your pull request. these are both good outcomes, as they satisfy my innate desire for perfection. sidebar: I suspect this perfectionism may be genetic. both genetic and created by the environment of software. before I got into software, and indeed in some non-software domains, I thought ah whatever who gives a heck things are all akimbo in the world but I'm just going to leave them there. however, at some point in my vast career of using digital information systems, well, I think first I got used to editing typos on Wikipedia, and then when I came across a web page that had a typo but wouldn't let me edit it like a wiki, I was like "What the heck, man!". Not because the typo was terrible or unrecoverable from or anything, But just because I thought hey, this thing might as well be perfect, why don't I just go in and perfect it—— only then to notice that there was no way to contribute and finding my hopes dashed! But that's not really the interesting point of this sidebar. The interesting point, to me, is that one fine day on a recent morning, I was musing to my father about how I was a little bit worried that my continued exposure to software systems, where everything could be made perfect, would contribute to some kind of personality disorder in me where I demanded perfection even from the real world (which, to be honest, I already probably do). and, taking my comments as a springboard for his own, as one does in a conversation, my father mentioned that in college he was once interviewing for a "co-op job" (apparently what they used to call internships) at IBM, and the recruiter asked what he liked about software, and my father responded that he liked how if you found a mistake, you got just fix it, and make it perfect, and leave no trace of the error, as though the flaw had never been. "This is before I was familiar with source control systems", he quipped. Anyway, he didn't get that job, so maybe the interviewer didn't like his answer, or more likely the co-op job was supposed to groom the jobee for further employment at IBM and the interviewer knew my dad was in ROTC and so would have to leave to do that, instead. Or perhaps he didn't get an offer for other reasons, like there being a better candidate, or due to random chance (this is my editorializing). So, like father like son, I suppose. Why was the github web text editor indenting like that? Well, as a token of imperfection I will leave this post all screwed up. I'm not even going to capitalize things. (By the way, I correct typos if I see them, because why not just make things perfect, but I don't hold them against people; they're unimportant. Everyone makes typos, even the smartest and most correct people in the world. And you have better things to spend your time on than combing through things for typos. In fact, I should publish more typos on this blog. If you're uh, if you don,t, if you r bglo doesn't have if it has no ytpos then you're sepnding too much time correcting typos that's the Umeshism baby! In fact I often do publish typos on this blog and other correct them later when I listen back to the blogposts as a treat. Unless the typos make it hard to understand something, like removing the "not" from a sentence, it's probably fine. The communiications of most CEOs bears this out, I think. They write like a dog learned to type. And maybe many of them are just stupid; but if they aren't stupid, their time is still probably too valuable to spend punctuating their clauses correctly, I suppose.) So anyway, here's what this post is actually about: When you make a PR, say, on someone's repo and they don't review it or anything. To be clear, I don't hold it against them; they literally don't owe me anything. They literally gave me the right to use their software for free (assuming it's free software — although I also feel free to contribute to non-free software if I feel like it. But at the very least they gave me the right to see it for free. Or maybe I paid them. But, ok, I didn't pay them to review my PR, probably, or else by stipulation this blogpost doesn't apply), and it would be ungrateful to also demand their time to review PRs and so forth. If they want to do that, great, it's cool that we both have the same (possibly remunerated) hobby and interests. It would also probably help their users (other random people, usually) to accept my PR if it's good. So, they don't have to even look at my PR, strictly speaking (I'm not one of the unhinged people who believe they are entitled otherwise). They don't know me from Adam. Neither of us employ the other. But this does leave me in a bit of a pickle. Now I have a whole repo I'm not using floating around my github. A whole patch that's basically useless to me (remember: I'm not actually using this software, probably; I'm just contributing because I like it when things are better rather than worse). In principle, this is maybe not a problem? Storage is cheap. In fact, often I'm using Github's storage, which is I think a fair trade if they're going to make me do a fork for every patch. In principle, also, you could be cloning every software project you ever look at or touch, in case you need it later. In which case this wouldn't be a huge difference from that. But, in practice, it really does make a difference that I'm lugging all these projects around I don't care about. There are some github-specific problems, like:— • how it makes every patch you make show up as a repo in your repo collection (when actually I want my repos to just be only my personal (or at least significant) repos — maybe there's some kind of setting to hide it from the main page) • and how I don't want to make a second account just for my contributions because I think it's neat when the little github graph of contribution frequency turns green (via my legitimate efforts) • and how (recently, this has gotten better) it was very hard to search through forks of a project on github to filter out ones that weren't improvements, so you don't want to contribute to that problem. ; but even if those were fixed it's still better for someone to accept my PR than not. After all, that makes it Not My Problem, at the cost of merely making it Their Problem; and it was already Their Problem, to at least some extent. I thought about including some little case-studies here but eventually decided against it. I mean they are a little interesting, at least to me, but you already get the gist. The fact that I have an instinct to make things perfect, but people can make up arbitrary systems of arbitrary complexity that I will feel should be perfected if possible is disturbingly similar to being dutch-booked. It feels like I'm not valuing my own time highly enough. Although usually I only do them because it seems like it will be a tractable little effort.