Why I left ScummVM
Colin Snover <[email protected]> Thu, 20 Sep 2018 15:22:39 -0500
| Newsgroups | gmane.games.devel.scummvm |
|---|---|
| Message-ID | <[email protected]> |
Team, I’d intended to write this email when I left but I was not able to do so at the time because of how emotionally difficult the situation was for me. I apologise for my abrupt disappearance; this was unfair to all of you, and it is not how I want to handle myself. To explain why I left, I must speak honestly and directly about some ugly experiences with sev. I know that some of this can come across as an attack, but it is not intended as such. My goals are to offer closure, and to stop a cycle of abuse so that others don’t experience what I did. I’ve tried to do my best to say only as much as I need to to feel like I am meeting these goals, since I genuinely don’t want to make anybody feel bad. It would also do me no good to burn bridges by being vindictive, since I’d enjoy working with you all again sometime. When I started working on ScummVM, I received support and encouragement from sev which was critical to my personal growth, and for the success of SCI32. Until late 2017, I was excited by the idea of working more directly with him on Director engine, since up to that point I’d had a generally positive experience, and I did not understand past contributors’ emails like this[1]. [1] http://lists.scummvm.org/pipermail/scummvm-devel/2015-December/011602.html During 2017, sev seemed to be less and less involved with ScummVM & more negative when he was. When I would reach out, I would increasingly often not get a response. Whenever I asked how things were, the answer was always “busy”. Eventually, our communication devolved to be mostly comments directed at me whenever one of my commits broke a Buildbot build. Since sev seemed overworked and disengaged, and I didn’t want to burden him any more, I started trying to pick up the slack as much as I could. This is how I ended up managing the ScummVM 2.0 release with criezy. This has been standard practice on other OSS teams I’ve worked on, so I didn’t see myself as doing anything unusual. However, it was clearly a mistake on my part to assume this was a correct action. While I did talk about what I was doing when I was doing it, I should have been more explicit in declaring my intent and rationale, and I take complete responsibility for how this created insecurity and confusion which contributed to these incidents. My first major incident with sev happened during 2.0 release preparation. There was a difficult crasher bug[2] where the only reproduction was UB that would cause UBSan to crash. sev copied code from the OP and committed it without reproduction and without comment. Between the time of comment 17 and comment 18, there was a fairly hostile PM exchange where I was told I was being contradictory and that the UB didn’t matter and any well-defined code would be worse. When I tried to clarify what I was saying, because it felt like I was not being heard, I was told I was just repeating myself. Eventually, I constructed an agreement which I summarised in comment 18. Per that agreement, I opened a ticket and then a PR[3], where sev wrote more dismissive and nonconstructive feedback. [2] https://bugs.scummvm.org/ticket/10116 [3] https://github.com/scummvm/scummvm/pull/1077 My second major incident with sev happened a little while later, around February. sev sent me a PM which quickly escalated into full-scale personal attacks and passive-aggressive sarcastic comments about me. I was yelled at for congratulating Joefish for merging Supernova[4], and for asking opinions of team members other than him on some preliminary ideas I had. I was accused of being a bad actor who was planning a coup, and that I was intentionally trying to split the team. He said I was “anonymous”, and hiding behind this anonymity to do these bad things. He threatened to delete things from the servers since I couldn’t be trusted with any privileged information. [4] http://lists.scummvm.org/pipermail/scummvm-devel/2018-January/012065.html While the overwhelming majority of the interactions I’ve had on this project have been wonderful and professional, I have also experienced a culture of silence which enables this sort of bad behaviour. I have been complicit in this as well, ignoring and minimising things which didn’t feel right because I was afraid of causing trouble or coming across as overly negative. These two incidents were the final catalysts for my departure, but they were just the end of a line of troublesome behaviour which I don’t expect to see from anyone I work with, let alone from a project lead. Most other OSS projects today[5][6][7][8] have a code of conduct. ScummVM does not. As a result, anyone who experiences abuse like this must suffer or leave because they don’t have any other recourse. There are no direct consequences for anyone who acts this way. At least one other major past contributor I’ve talked to received similar threats from sev, and this behaviour was a major factor in their leaving the project as well. These departures are preventable, and they are a tragedy for everybody who works on or uses ScummVM. [5] https://www.contributor-covenant.org/version/1/4/code-of-conduct [6] http://citizencodeofconduct.org/ [7] https://www.ubuntu.com/community/code-of-conduct [8] https://www.djangoproject.com/conduct/ I feel like I’ve made some mistakes of my own when interacting with team members from time to time, and wish that a code of conduct had existed so that there would have been a better conduit for resolution for anyone who felt like I was not being respectful and who felt that they could not communicate this directly to me. I apologise to anyone who may have experienced any gruff or inappropriate behaviour from me. I would like to do better and I hope I will have the opportunity to do so in the future. I don’t think that sev—or anyone else who’s volunteered their time to work on ScummVM—acts with malice. I genuinely don’t hate sev, and I would like things for him to go well, just as I hope the same for all of you. I don’t like not being part of the solution, but for my own wellness, I just can’t continue to work on a project where there isn’t an open, respectful, and professional environment. Here is a recap of all of the work in progress which I was not able to complete, as of the last time I looked at ScummVM: * The new Buildbot and Ansible playbooks for deployment were finished and ready to go. These were in my scummvm-buildbot and scummvm-infrastructure repositories. * Reverse engineering of the SCI MIDI engine was ~85% finished (only bug fixing remains), the GM and MT-32 drivers 100% finished, and ~80% of the AdLib driver finished (only bug fixing remains). This is on my working branch. * Reverse engineering of Shivers 2 system code (the main executable and S2SYS.dll) was ~85% finished, and room code (the numbered DLLs) was ~30% finished. This is on my shivers2 branch. Please feel free to reach out with any questions or requests about this work, or if you need to talk. I can’t make any promises on quick responses since this situation is still very difficult for me, but I will do my best to be available. I also have databases and documentation for most of this work if anyone is interested. I won’t see any replies on the mailing list, so please make sure to CC or email responses to me directly. I am still also on Freenode if you prefer to send a PM instead (just make sure you’re registered with NickServ, since due to the spam I’ve had to block PMs from unregistered users). Thank you for reading. Sorry about always writing long emails. At least this is the last one you’ll get from me for a while! :-) I hope that you all continue to be successful in your personal and professional lives and that something good will come out of all of this in the end. Warmest regards, -- Colin Snover https://zetafleet.com _______________________________________________ Scummvm-devel mailing list [email protected] http://lists.scummvm.org/listinfo/scummvm-devel