Culture & Community
I'm not a member of the old guard. I never went to WWDC in the days when Apple Developer Relations would call and ask if you were interested in attending and I never received a boxed set of books and DVDs with the API documentation in, months after the updates were announced. I've been coding for Cocoa/Obj-C platforms professionally for only 4 years.
However I was inducted into coding by people who experienced all of those things. Their stories about the dark times of being a developer on Apple platforms are full of hope and despair: The light of CoreData, Xcode and ARC are balanced by the shadows of Java, 64-bit Carbon deprecation and Garbage Collection. One feeling that always comes through is the camaraderie, the support of the community, the underdog feeling and the joy of making a connection, digitally or in person, with someone else who understood the joy of message passing.
I want to talk about this community spirit in terms of Apple's Worldwide Developer Conference and it's attendees.
WWDC involves a lot of waiting and standing. Queuing and patience are key. Often what makes these things bearable is the friendly nature of the people around you and the manners and empathy they display.
I've been fortunate enough to attend the last three WWDCs and I've noticed a disturbing trend in the makeup and behaviour of the audience: People just aren't as nice as they used to be.
Such a broad and bold statement demands some examples, and I'm happy to provide them:
- I've been barged out of the way for a seat and for a place in line.
- Drinks and food grabbed as I was reaching for them.
- People behind me in a queue *sprinting* to get ahead, even closing doors to block you.
- Requests to use a network connection or power socket ignored or refused.
- Attendees have been ignored and frozen out of conversations based on gender, ethnicity, appearance and culture.
- Witnessed unacceptable behaviour celebrated as 'manly' or 'cool'.
This isn't the community or culture I want to be part of. I feel there's a regrettable decline in the quality of behaviour and manners in our development population.
So why is this happening and what can we do it about it?**
Let's start with why.
My experiences and observations have led me to a theory. The community of developers around Apple platforms is larger than it's ever been. The average age, and therefore the experience, has dropped. The new generation of developers reflect the issues we see in larger society, lack of thought for others, selfish desire-driven behaviour and fear-based responses. The people who remember either directly or by association, the close knit nature of previous meet ups are being diluted by an influx of people.
But people haven't really changed that much, have they? There has always been people who are, to put it plainly, dicks and the problem seems to be more than just a linear percentage increase. So there must be another factor.
Look at the broader developer community, is this something observable in the macro case? Yes. There's ample examples of everything from rudeness to death threats; sexism, racism and ageism, to pick just three, are highlighted regularly. How are they dealt with? Well, sometimes not at all, and I'd hope that these always get exposed and the opprobrium of the community comes to bear on them. Sometimes they are dealt with very well and handled with minimal disruption to the victims experience. One of the hardest things to measure is intent, and the possibility for miscommunication inherent in misunderstanding that intent.
So it's not just us, it's everywhere. But that doesn't provide a reason(s) as to why behaviour standards have dropped so lamentably. Let's look at some circumstances that bring people together or divide them...
Adversity brings people together. Having a common cause often brings out the best in people; empathy, support and care. It's been a long time since we've had just cause to feel like the underdogs as developers for Apple's platforms. It's never been easier and more accessible to develop for them and make a living from that. Complain about bugs in Xcode or the lack of discoverability on the App Store all you like, but we're in a golden age compared to people building for Newton or Mac OS in the 90's.
The lack of adversity, of common cause, means we look inwards for our demons and start turning on each other...
... which leads to Tribalism. The size of the developer crowd, and the pace of change we're part of, means there's a plethora of camps to join and rally for. I've heard some truly thoughtless and misinformed comments from people regarding Objective-C vs Swift intended to do nothing more than assert the commenters cleverness not give insight into the question. Functional programming, Reactive programming, coding standards, Xcode vs AppCode, vim vs emacs, Blocks vs delegate callbacks... Just post your opinion on Twitter and brace for the flame war.
We've forgotten what side we're really on: shipping great products.
Tribalism can happen when the size of the community grows beyond a point where cohesion breaks down.
There's a number of studies around the point at which this breakdown can occur, the most famous example is that people have a limit of approx. 150 social connections that they are able to maintain without additional mechanisms. This number was arrived at, independently, by two sources, firstly by a process of scientific research by anthropologist Robin Dunbar who's work found a correlation between primate brain size and average social group size and who extrapolated these results to encompass human brain size. For this reason the figure of 150 is often called Dunbar's Number. The second was found by a process of trial and error by the company W. L. Gore and Associates, makers of Gore-Tex fabric, who discovered that groups of employees working together that numbered over 150 were prone to the formation of social problems and discontent, their solution was, once a building grew to 150 capacity, they'd build another one to accommodate another 150 employees, with 150 parking spaces often located adjacent to each other. The company was also notable for it's flat hierarchical structure.
Other numbers from studies have been published, most in the mid-to-high 200's though few have had the mindshare that Dunbar's has. Whatever the exact figure, it's revealing that there is a limit beyond which community and social rules can deteriorate. The tribalism we observe in our community and the clannish-ness is very likely a direct consequence of the sheer weight of numbers.
The limits imposed by Dunbar's Number et al. explain behaviour in people, from forming protective cliques to racism, sexism and xenophobia.
Two things to note: 1. maintaining social order beyond the theoretical limits is possible with more restrictive social norms, laws and enforced compliance, a point I'll return to later, and 2. from my experience of conferences, the vast majority are enjoyable and inclusive. However they also generally run to between 100 and 300 people, the 'sweet spot' of anthropological social research group size. Imagine maintaining social order and behaviour among the 5,000 attendees of WWDC.
Much has been made of the prevalence of Imposter Syndrome, in our industry. It's a lamentable, but all to common, situation to be stuck on a problem and get to the point of doubting your ability to get unstuck, to the point of panic that you'll be revealed as not capable. I would never make light of something I've experienced myself many times.
Insecurity comes with the territory of developing it seems; people statistically inclined toward introversion tackling hard problems, mostly alone.
(An aside: at times like that I try to remember the words printed in the forward to Aaron Hillegass seminal book on OS X development. I may have the exact phrasing wrong but the essence is: "You're not stupid. Programming is hard".)
It manifests in other ways too, more relevant too this discussion. People don't rise up screaming to defend the things they have faith in, few people run around trying to convince you the sun will come up tomorrow; they make the most noise defending those thing they have secret doubts about, that they're insecure about
Much of the most strident and ill-considered communication is from people lashing out over issues they dare not admit to being uncertain about but cling to as something written in stone.
This is often a result of youth and inexperience, both of which will, you would hope, diminish over time. The influx of new and 'green' developers into the community has made this much more visible.
Social norms, or the lack of them.
Which brings me to social norms. Social norms are important. A commonly understood set of standards for behaviour are more effective than the threat of 'the law'. This is a somewhat controversial statement as there's a dark side to social norms where they can camouflage abuse and harm. However they are an important part of a stable society.
I'm fortunate enough to live in London, England. People may look at the country and see a lot of dithering and not much positive action to solve problems but on the other hand we're quite a stable society, we haven't had (dare I say needed) a social revolt for nearly 400 years and in that time have mostly had a parliamentary democracy that, despite not being entirely worthy of that name, at least is structured to try to prevent the worst excesses of politicians. Yes, we may be orientally polite, but those social norms keep things ticking along and mostly people are pleasant to each other. I was brought up to offer my seat to anyone less able than me, open doors regardless of gender and throw down my cape so ladies need not step in puddles. Maybe not that last one.
But there's less and less communication and upholding of those social norms with each generation and it's starting to show. I don't think London is as nice a city to live in as it was 10 years ago, even if the coffee and food are immeasurably better than they were.
The same is true of the developer community, we're not holding doors open for each other.
What can we do about it?
Well, a number of things.
I mentioned before that maintaining social order can be safeguarded with stricter social norms and more enforcement of laws of behaviour.
What form might these take for a conference community?
Conference attendees should feel safe. It's the organisers responsibility to provide an environment that promotes that.
Organising and running a conference is very hard work. The closest I've come is volunteering at 360iDev this year and watched the organisers of that deal with a million tiny emergencies at once is enough to make me respect what they do and never want to try to do it myself.
Conferences organisers are often trusted and respected members of the community and there involvement in events is often found to be a source of reassurance for people that fair treatment and respect are on the cards.
But no-one is infallible and there's liability to consider so one solution to that is to have a Code of Conduct.
The Code of Conduct Conundrum
A code of conduct is a statement of expectation both for the behaviour of attendees and for the environment they can expect. It's presence is generally considered a requirement of any meet-up and it's absence will immediately cause questions to be asked.
I wholeheartedly support the use of a considered Code of Conduct. But I think it needs to be said that there is a danger inherent in relying on them too much. Publishing a statement of intent and expectation is worthless if they are toothless tigers.
If you're not prepared to back your code of conduct with action to protect your attendees then you may as well not have one at all.
The responsibility is not just with the organiser. Every attendee should be ready to question or at least report behaviour they feel is not appropriate. When you attend you don't just agree to abide by the CoC, you agree to uphold it.
To return to the starting point, let's consider WWDC. Does Apple provide a Code of Conduct? Yes they do. Scroll down that link till you hit Registration and Attendance Policy. Did you blink and miss it?
Kudos for having one, but I think it's a little sparse and not very reassuring. I tried to find someone to report a concern to at the last event and gave up. (In the spirit of openness, my issue was resolved later by a very nice person managing the labs queue).
So the Code of Conduct for WWDC could certainly be improved, but I think the real improvement needs to come from there being a much more visible enforcement and consequence for not abiding by it and a real effort to provide a sense of safety and care. From the perspective of our responsibility, we've perhaps grown so used to Apple being the gatekeeper for everything that when it comes to our turn, to play a part in ensuring the standards of behaviour are maintained, we've lost the muscle memory to do it.
In short: Codes of Conduct are good, but they need the active participation of organisers and attendees both agreeing to uphold the standards.
Just as important as committing to dealing with unexceptable behaviour when we see it, and key to returning to a community of care and support, is how you deal with the transgression.
Never put yourself in harms way. Seeking to address issues is very admirable but don't be a hero, if the situation is bigger than you, acknowledge that and seek help. THIS IS THE MOST IMPORTANT THING I CAN SAY: Do not put yourself at risk. Seek help. Allow yourself to be helped. Do not feel guilty when your transgressor is dealt with. You are not to blame. It's easy for me to get moralistic about positive intent from my position as standard-white-male, if you've been attacked then you're the victim and any consequences that come from you highlighting it are not your fault.
Beyond that, there's a whole gray scale of behaviour that depends on the context of the event. While all unacceptable behaviour should be dealt with, if you witness it, and move to deal with it, take a moment to establish the facts:
- Presume that the person was either trying to do the right thing or didn't know what the right thing is. Try to work out what they were trying to do or why they did it and suggest a more community-compatible way to achieve the same thing. Did they push to the front to make sure they got a chocolate Odwalla smoothie? Maybe they should have made sure everybody else who wanted one also got one by passing them out.
- Criticise the behaviour witnessed, not the person. Starting out with a presumption that they are a decent person who did a silly thing is a much easier thing to present and less likely to get a ill-considered reply.
If all of us can try to curb our frustration and anger, and reflect before we respond, then the likelihood of resolving the dearth of camaraderie between us is increased.
There's been a decrease is standards of behaviour at large developer conference events. WWDC is the poster child for massive meet-ups and the issues among the community are observable. They are also fixable.
- We need a fuller and more visible Code of Conduct.
- We need both Apple and ourselves to commit to enforcing it.
- We need to think before we react.
- We need presume that people meant well, but not at the expense of our safety.
- We need to remember that for us to be right doesn't mean everyone else is wrong.
- We need stop basing our behaviour on having more than the next person.
I'd like to thank all the people who offered to read this before I posted it and sent such sincere and considered feedback. I hope I've addressed your comments, please let me know.
*if you read that and thought: 'he worked in Apple retail', high five.
**I will admit that in the light of some of the larger social/economic issues facing the world this is a bit like rearranging the deckchairs on the Titanic. But people I know have been affected by these issues and every brick is important to a wall so it's down to us to affect what we can.