A month ago, I closed the Scala World conference with some thoughts on the Scala community. I hadn’t planned to share them with anyone outside of the conference—in fact, I hadn’t even planned to say anything until that day—but our film crew captured the closing remarks, and several people present have asked me to share them, so you will find a video of what I said, below.
Here, I elaborate a little on those words of Tuesday 19 September.
It’s a challenge to put on any conference, and Scala World, set in the Lake District, one of the UK’s more remote locations, with a weekend of outdoor activities before the main event, has its own unique challenges. Two days before the conference, a group hike in the mountains ended with one participant needing help getting back by the local mountain rescue team, in an emergency callout.
Whilst everyone returned safely by the end of the day, one member of the group became fatigued and picked up an injury, making her progress on the most difficult part of the hike very slow, and she, along with the small group with her, found it difficult to climb down from the mountain before dark.
An incident like this could have been foreseen, though good weather conditions that day, and the experience of four successful hikes at previous events had made me a little complacent about communicating some of the safety hazards of hiking in the mountains, and I hadn’t set everyone’s expectations appropriately for the difficulty of this particular hike. I believe the emergency could have been avoided with just slightly better communication about the difficulty of the planned route, and the lunchtime break would have made a good opportunity for some weaker hikers to have turned back.
We relied upon the mountain rescue service that day, and the group directly involved in the incident and I were immensely grateful to them for coming out after dark, when we needed it. Without them the night might not have had such a happy ending.
So it was a disappointment to discover, a couple of days later, that the mountain rescue team had posted a report on social media about the incident which contained several factual errors, and very unfairly mischaracterized the person who raised the alarm, ostensibly as publicity to increase awareness around the dangers of hiking in the mountains.
Unfortunately, it was shared very widely and generated nothing but angry comments directed towards me (where some blame was rightly due) and towards the participant who made the emergency call, who had at no point done anything wrong. We became aware of this only when a TV crew came to the conference and requested an interview. I refused the interview as I felt that speaking to the news media did nothing to benefit anybody involved.
And so, I found myself in a situation where I was both extremely grateful for the help that mountain rescue had given us in an emergency, yet disappointed that they had then used us in a “shame story”, which had been embellished with details which were not true.
However, as I see it, there’s nothing inconsistent about being both grateful to the mountain rescue team, and critical of one particular aspect of their operation, and I have sent them a letter to thank them and to provide constructive criticism on their social media strategy.
And on that last day of the conference, it struck me that the scenario had some parallels with many of the debates the Scala community has faced over the last couple of years. And I can’t deny that it’s been sad for me to witness a common trend that we like to pick sides in our battles: were we with the mountain rescue team, or against them? And it’s easy to see that, as humans and as software developers, framing the question as a binary choice often simplifies the decision.
Yet many people—especially those who take the time to understand the inherent complexity of these situations—find themseves on a small, quiet patch of middle-ground, in fear of becoming isolated for holding a complex view that isn’t wholly on anyone’s “side”.
And unfortunately, the Scala community (and society at large) do appear to place a higher value on such simple models over complex alternatives. Our desire for simplicity, for those cognitive shortcuts which allow us to reason about things quickly and easily, to partition people and their opinions into simplistic categories, too often ignores or argues away differences which are significant; details which do make a difference.
This is not an appeal for anyone in this community to change any of their diverse opinions, ideas and beliefs; I don’t want you to stop talking about them just because other people disagree because we will never make progress without original and varied ideas. I know better than to expect that of anyone. I’m asking for something weaker, that demands much less of everyone, but which is perhaps more achievable: I ask everyone to understand that there are other people in this community with different backgrounds, different life-experiences, different jobs, different goals, different days lost to different bugs, and that all this complexity and diversity results in very different people who often believe different things, and take different approaches to expressing their beliefs.
But I deliberately leave scope here for people to be wrong, and I don’t discount that many of us are wrong a lot of the time: the mere existence of conflicting opinions is evidence of this. But, when confronted with a difference of opinion, I humbly ask everyone to apply Hanlon's Razor: Do not attribute to malice that which can be adequately explained by ignorance or misunderstanding. Ignorance can be corrected and misunderstanding can be forgiven, whereas assuming malice is more likely to lead to an escalation, and that benefits nobody.
Human behaviour is really difficult to make sense of. Not only are we interacting with an entire community of other people, each as complex as we are, but nature dictates that we view everything through a plethora of cognitive biases, all working against our objectivity. It’s undoubtably much harder than any of the technical challenges we face as software developers. So when judging any aspect of this vast, interconnected system we’re all in, I suggest that we moderate the authority with which we claim to speak as discussion shifts from the provable world of functional programming to barely-testable social concerns: our opinions should be no less valid when we speak them with a more realistic level of certainty.
And conversely, we should read others’ comments, messages and tweets charitably with the understanding that we are in a society that overvalues confidence, certitude and conviction, and we shouldn’t be too surprised to observe a little hubris along the way, as people fight hard for attention in the crowd.
Many people have written to me since Scala World, and I’m grateful for the huge support my closing remarks have received. (I haven’t had time to reply to everyone yet, but I certainly intend to.) I’ve been a part of the Scala community for over a decade, and I’ve come to care a lot about it. I have great memories of times spent with the many brilliant minds I’ve engaged with over the years, who have frequently taken opposing sides in arguments; I consider them friends regardless.
So if these words have any impact at all, or instigate any discussion, I neither hope nor expect them to resolve our problems overnight. But I’m trying to move the needle in the right direction, and will continue to do so.
I hope what I’ve said is a message people feel they can get behind. I’m here to talk to anyone who would like to discuss the issues with me, and I would be happy to hear from you even if—no, especially if!—you don’t agree.