Category Archives: How do I computer?

Designing a tech meet-up for inclusiveness

A while ago, shortly after attending Nine Worlds, I found myself very impressed with their code of conduct and wondering why more software development meetups don’t have a similar thing – an increasing number (although I think still not a large percentage) of our conferences do so it’s not that we’re completely ignorant of the need, but none of the London tech meet-ups have one. Some recent conversations reminded me of this question, and I think it’s an idea that might have legs.

One tech meet-up in the USA (I’m afraid I don’t remember which one and can’t find the relevant tweet right now) told me they had adopted the Hacker School Code of Conduct, and that it had worked well for them, so we’ve at least got an existence proof that such a group can work.

So it seems like the answer to the question “Why isn’t there a tech meet-up in London with a code of conduct?” is simply “We haven’t created one  yet”. It seems like it might be worth fixing that.

So I set about sketching a meet-up group that would satisfy the criteria “Have a code of conduct”. Of course you can just do this by taking any meet-up group and slapping a code of conduct on it, so this is mostly some thoughts around a) designing an interesting meet-up group and b) supporting that code of conduct slightly better.

Initial design goals:

  1. A code of conduct. I don’t know exactly which one. I like the specific hacker school guidelines, so those should be stolen. The Geek Feminism sample anti-harassment policy is also good. Some hybrid of these two should be made and continually refined as we figure out what works. (As a minor bugbear, and because much of the meet-up will probably happen in a bar because that’s how these things usually end up happening in London, one thing that should be explicitly on the CoC is that pressuring people to drink is not OK)
  2. This explicitly should not a “$SUBGROUP in tech” meet-up. Those are totally worthwhile and I’m glad they exist but, well, you may notice that I look rather a lot like the dominant group in tech. As a result it would be a bit problematic for me to organise such a group. I would hope to promote a diverse group, but I would hope to do that by talking about interesting things whilst not being arseholes. If there are other things we can do to promote it within our group we should do them, but fundamentally this should be a meet-up group who get together to talk about interesting tech things where everyone can be themselves rather than be singled out as a being a specific type of person in tech.
  3. It should be interesting for more than just being a room full of interesting people drinking
  4. People should come away from it improved in some capacity, even if it’s just “Hey I learned a thing”
  5. I like democracy. It’s a good thing. The group should evolve from its initial conception, and it should do so under the guidance of its membership rather than some benevolent dictator (though said dictator may be useful for getting the initial concept up and running).

So here is the design I settled on. Some or all of it may be terrible and liable to change if it hits reality, so consider these more a sketch of an idea than a concrete proposal:

The theme of the group is “Making software development better”. It’s a deliberately loose theme which can cover a multitude of topics. In particular it includes both “making better software” and “making it better to work in software”. Over time the group can decide what precisely we want this to mean – how much we want to focus on technologies, on process, etc. My assumption is that initially most of the talks will focus on “Here’s this thing we’re doing at work. It seems to work pretty well” or “Here’s a problem we’re having at work. Can you lot help me solve it?” – the point being that the focus is on software development rather than programming. This is true both in the sense that we’ll be talking more about “Here’s a neat debugging technique” than “Here let me teach you Haskell”, but also in the sense that non-coders who are part of the process are decidedly welcome. Indeed, while we definitely don’t want to be afraid of advanced technical content, we should try to make sure that a good chunk of what’s talked about is also about the larger process of development.

The rough structure would be:

  1. People arrive and mingle for about half an hour
  2. We have a half hour talk or discussion group, everyone sits
  3. Anyone who wants to get up and talk for < 5 minutes may. These can be lightning talks or they can just be “hey, this is my company, we’re hiring”.
  4. We have a 15 minute break
  5. We have another talk/discussion group
  6. Formalised fun ends. People can now hang around for as long as they like

One talk should be technical (here’s a tool we’re using and how it helps. Here’s a debugging technique. Let me teach you a bit more about security than you probably know), one should be non-technical (here’s a change we made to our sprint process that’s really helped. Here’s one weird trick to make meetings less painful. Here’s how we run our hiring process). Which one goes first will alternate.

The discussion groups are worth highlighting. In these the speaker would basically be acting as a moderator rather than talking for half an hour. Their goal would be to frame the discussion by asking questions and try and direct what’s on topic. The group would probably use something like Occupy movement hand signals (I used these recently, so they’re on my mind) to discuss these points without it just becoming a free-for-all. Basically the goal is to have a productive group discussion around a subject. This is also helpful for people who would like to speak but are nervous about it because they have to do an awful lot less speaking.

Speakers come from within the group rather than external. Everyone is encouraged but not required to speak. Initially I’d imagine that the process for talk selection would be “Whomever we can get to speak”. Eventually when there are enough people prepared to speak something else can probably be decided on – e.g. priority to people who haven’t previously talked, then randomly select a speaker amongst those left. A soft goal here is to provide an environment in which people who might otherwise be reluctant to speak feel comfortable doing so because they know a lot of the people around them and know that they’re in a supportive environment where people will behave decently.

Membership of the group would be closed, but with an aim of bringing ever more people into it: Ideally in any given session about a fifth (I made this number up and it might not be the right balance, but something in that region) of the group should be new. I’m not quite sure how that would work. My default here would be to have a list of people who are interested in joining and select from it by lot to fill a newness quota each session (though I expect that initially there will be trouble finding enough people rather than too many people joining at once). I’d also probably suggest that after someone has been to one session as a newbie there’s an option for a “this person was kinda a jerk and we’d rather they didn’t come back” vote amongst the existing group.

It’s also possible to be expelled from the group. The main way to do this is code of conduct violations – except for extreme violations (sexual harassment, full-blown racist ranting, etc) this isn’t a zero tolerance policy, but people who violate it will be asked to moderate their behaviour and if they don’t then they will be expelled.

There probably needs to be another mechanism for removing people from the group for people who are technically not violating the code of conduct but are making the group a worse place. Best mechanism I can come up with right now is “quietly have a word with the organisers. They’ll quietly poll to get consensus as to whether this is a real problem. If they think it is, they’ll have a word with the person in question about their behaviour. If this continues to be a problem they’ll ask them to leave”.

Anyway, that’s most of my thoughts for now. I’m aware I’ve spent far more on the details of organising the group than on the actual content, but that’s mostly because those are the bits that are novel and because I have a reasonable amount of faith that if you put a bunch of interesting, intelligent and pleasant people in a room they’ll find good things to talk about. One thing developers aren’t short of is opinions, and giving people a non-prejudicial place to speak about those opinions seems like a great way to get a different set than normally dominate heard.

Right now this is just an idea. I do not have a good history of follow-through on ideas. If you want this to happen I recommend shouting excitedly at me until I do it, or stealing the idea for yourself. I’m mostly putting it out there to see if people are interested. Are you?

Update: OK. I’ve got some initial interest. I think I’d like to define acceptance criteria which will cause me to try to organise such a thing. I may adjust these later, these are just an initial attempt at it. I will run an initial attempt at this if I get interest from:

  1. At least 15 people able and interested to attend such an event in London. This number is arbitrarily chosen and I might relax it, but it doesn’t feel like an unreasonable amount.
  2. At least 5 of these people must not be personally known to me. For a concrete criterion lets say I haven’t met them in person. This is mainly to stop this turning into a David’s tech friends all get together event.
  3. At least 5 of these people must not be white cis men. I dislike quotas in general, but this shouldn’t be a hard condition to satisfy and if 2/3rds of the initial audience for this group are just like all the other tech meet-ups in London it feels a little pointless. TBH I’d hope to do a lot better than this, I just want to set a lower bound.
  4. Someone puts forth a technical talk they’d like to do (I’ll hijack the non-technical talk slot for the first one to do a “What do we want out of this?” discussion group). If the first three conditions are satisfied I’m sure I’ll be able to pester someone into doing this.

(I’m indifferent as to whether the 5 in those two conditions overlap or not)

If you’re interested, drop me a tweet or an email (@DRMacIver or [email protected] respectively) to let me know.

This entry was posted in Feminism, How do I computer? on by .

Yesterday Was Change Everything Day

Advance warning: This blog post is a bit rambly and pointless. It’s pretty much “Hey, here’s some stuff I changed about my computer” brain dump. You probably don’t care.

Yesterday I made massive invasive changes to the software I’m running as part of my day to day life.

What triggered it? Well, the initial triggering event was something I’m sure you’ve heard about by now: Google reader shutting down.

An appreciable proportion of the information I consume comes through RSS (or Atom), so shutting down google reader is kinda a big deal for me, so I spent some time playing with replacements. I’m currently trying Feedly, although the Android app is so bad I’m not sure I can stick with it.

This put me in the mood to start tinkering with my setup though (a mood which hits me about annually, and then I lose interest for another year, though in this case it’s only been six months).

So I was kinda in the mood to change my software around, and I was feeling fairly hacked off with Google and uncomfortable with how much of my life lived in their software.

Including my browser. Fortunately, there’s this quite nice alternative to Gogle Chrome. It’s a bit niche, but you may have heard of it. It’s called Firefox. Check it out. It’s not bad.

Actually, you know, it’s really not bad. It’s only been a day or so of using it, but honestly it’s dramatically better than I expected. I’ve not had any problems with it so far and it’s generally been a fairly pleasant experience. Previously when I’ve tried to switch back I had all the expected problems – slow, memory hungry, blah blah blah, but this is easily the equal of Chrome and hasn’t caused me any problems so far.

Discussions around this and google reader caused me to resurrect an old rant to a friend. What rant? This rant!

Tabs are fundamentally wrong.

Tabs are window management reinvented badly by each application. Your application should not be doing your window management. If applications do your window management then each one will reinvent it differently and probably badly. Further, if you actually need your applications to be doing window management that’s a sign that your window manager needs improving.

Of course… pretty much every window manager needs improving in this way.

Then it occurred to me: This is a problem I’ve solved before. I used to run wmii. For various reasons (a post for another day) I stopped. However, when I was using it I felt absolutely zero inclination to use tabs, and in my current xmonad setup I really did need to use them (this is a problem that I can and have fixed in xmonad before, but the fix was a bit clunky when I last used it).

So I decided to give wmii another try. There were some fraught moments when I accidentally broke everything doing it (wmii is not the most user friendly software in its failure modes), but I’ve now got it working and useful.

Honestly? wmii is fucking amazing. If you have the opportunity to try it out you should take it.

So, TLDR, beginning of yesterday I was running this:

  • Google reader
  • Google chrome
  • Mint desktop environment with an Xmonad window manager

Today I am running this:

  • Feedly
  • Firefox
  • wmii with no desktop environment

The only change I’m unhappy with is the one that prompted the whole thing: While Feedly nominally satisfies my requirements for a reader, it’s pretty grossly inadequate. So, still in the market for changing that one.

The resulting changes though? I’m way happier with this setup than with my previous one. So, thanks Google, I guess.

This entry was posted in How do I computer?, life on by .