How To Host A Coding Slackathon

(I'm not claiming to be any particular authority at doing this, but since I've done it once, I ought to record and share what I've learnt so that it can be reused and improved upon by myself or others.)

The idea for a stupid-ideas slackathon occurred to me while walking home from the bus. It appeared as an already fully formed plan. I tweeted it as I walked and by the time I got home there had been 2 or 3 likes or retweets, which is a fairly healthy response. I didn't think about it again for a few days when suddenly the idea reoccurred, again fully formed, and I decided to go ahead with it. The portmanteau 'slackathon' contained, within its frankenform, all of the necessary details.

The first thing to do was to choose a date. I picked the soonest weekend that wasn't already filled up with plans. I'm glad I didn't try to put it off any longer than that, because I would have definitely lost all of my drive and moved onto other stupid ideas.

I wrote an outline in this wiki, and went to email a friend about it. As part of emailing him I thought I should create a slack team, to host the site. That was done in a few moments, and I was fully committed from then onward.

I didn't realise there was an existing powershell slack site until after that. When I did find it I was gobsmacked: it was so active, so full of interesting discussion and had so many members who were frequent and very knowledgeable bloggers in the world of PowerShell.

Would've been genuinely happy even if there were zero attendees other than myself. Disappointed yes, but the event would've still gone ahead. I was basically committed to spending some time tinkering with PowerShell by myself, so that was a sufficient quorum for the event to continue. Being confident in this knowledge was the secret behind the whole thing.

Marita Cheng, the founder of RoboGals, gave a keynote at DDD Brisbane in 2015, and she said that at the first ever meeting for RoboGals no-one else showed up. She handled it like the champion she is: she went ahead and created minutes from the meeting, including a few key decisions, and circulated it within anyone who had shown an interest. And that's how I expected to proceed with the Slackathon. Be a bad-ass like Marita Cheng.

How to participate

I didn't offer any real guidance on what to do until it was already time to begin (which was a mistake). Here's what I recommend posting in future:

  1. You can work alone or in groups.
  2. For any/each idea you wish to work on, create a folder in floobits, containing a readme.md file. (see note below on 'How to create a folder in floobits')
  3. In that file say something about what you're planning to do, and your name.
  4. If the work itself will occur in a github repo, then provide a link to the github repo inside the readme.md file.
  5. If you prefer you can upload the work as files inside that folder in floobits.
  6. Any Powershell problems, ask for help in the Help channel (inside slack).
  7. Any organisational questions, ask me (my email address)

Promotion

Promoted it directly to the target audience at Reddit Powershell on Twitter using #powershell and asked daily bloggers to mention it.

Collected emails via Google forms. Note I didn't have any automation in place to turn a signup into a slack invitation. Hence I just copy pasted items from google drive into slack one at a time. This wasn't too strenuous. Did it once or twice per day.

Google forms were great for this. So easy. I could've very easily spent 10 hours plus, making a website where people sign up and so forth. But in a few minutes, a simple google form did all of the work for me.

Use Floobits to Host Coding Contributions

Floobits is an OK place to allow people to contribute. There are a few confusing things about floobits that we had to explain over and over, now listed here:

How to create a folder in floobits

To create a folder, you need to know the name of the first file you want to add to that folder.

Got a name in mind (example readme.md) ? -- then here is what you do.

Click on 'slackathon' in the sidebar, then click the plus next to it (to create a file) and call the file "{YourFolderName}/readme.md" -- and doing this will create the file, but will also implicitly create the folder as a side effect. Magic!

NOTE that it must be a forward slash, not a backslash. If you tried to create "Fred\Smith.md" then it would create a file, in the root folder, literally named "Fred\Smith.md" ... so don't do that.

(If you think creating folders is bad, wait till you try renaming a file. (You need to create a new file and delete the old file))

Backups...

If anyone and everyone is free to edit it you need a way to backup your Floobits site!

At some point I realised that all the work that people were contributing was completed free to be deleted by anyone, and there was no backup. This was a sudden and terrifying thought to experience.

Here's what I eventually came up with:

Get an editor that has a floobits plugin, for example sublime text. Use the floobits plugin to connect to your online workspace. Download it locally. Commit it to a repo.

Also, once the event was over, I locked down the site so that no one could edit it any longer. I call this putting it in cryogenic storage.

Diversity

On most measures of diversity the event was a failure. On gender diversity for example the event was a complete failure.

The best thing you can do to increase diversity is to have a diverse group of organizers. The best way you can get a diverse group of organizers is by paying them for their time! Too many people expect they can request free help with increasing diversity. (Thus the slogan, "Say no to unpaid emotional labor" etc) Or they believe they can think their way to a diverse event, without asking anyone else for help. Both of those are examples of privilege.

A better name (e.g. workshop instead of hackathon) may have also helped. And having a clear code of conduct up front might've helped encourage participants with more diverse backgrounds.

Obviously this is too big a topic for me to have anything of great value to add. I failed it. You don't have to.

Slack

Slack worked really well. Avoid the temptation to play with the configuration and plugins in slack too much... you could lose days doing that if you're not careful.

I avoided tinkering with slack. It's easy if you try.

Time Zones

Cross time-zone issues were terrible, for me in Australia at least. I basically acquired jet lag.

External Links