[Scummvm-devel] Why I left ScummVM

Colin Snover scummvm-devel at zetafleet.com
Thu Sep 20 22:22:39 CEST 2018


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].


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.


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 
* 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

More information about the Scummvm-devel mailing list