Wikimedia Hackathon 2016/Lessons Learned

This page is a combination of feedback from a survey sent to participants and ideas from the organizers.

This page will focus heavily on improvements for next time and things that went poorly. However remember that 100% of the participants that responded to the feedback survey stated that their overall experience with the hackathon was either "Positive" or "Very Positive."

Suggested changes for the next Wikimedia Hackathon

(Main suggestions for next time, more coming soon)
 * If possible: Get an a/v switcher for showcase so that the people up next can plug in and check on a test monitor while the person in front is talking.
 * Open ports next time! Be sure about that.
 * A better strategy for helping people find projects and understand what other projects are being worked on
 * Better coffee, made from coffee beans, not instant. Both hot and cold water available 24 hours.

The best!:
 * The very helpful WMIL volunteer (they went above and beyond expectations)
 * Keep the Newcomers / Long term Wikimedian buttons
 * The location, venue, history & garden working space
 * Good feeling and productivity at the event

The worst!:
 * Shuttles schedule and timing was difficult
 * The distance between the venue and the hostel was too far

Feedback survey background

 * rfarrand created the feedback survey using google forms based on feedback survey questions from past events.
 * The Feedback Survey was sent out to participants on April 4th, 2016
 * A reminder was sent to participants on April 24th, 2016
 * The Feedback Survey closed on May 11th, 2016
 * The survey received 82/118 responses (69.4% response rate)

Considerations for next year
This section is based on the fill-in-the-blank/comment sections of the feedback form. Some of these comments will be contradictory. We are mostly trying to include common themes and issues that were felt by groups of people. This section is a bit more subjective than the  section below and suggestions may be paraphrased and combined with each other.

Suggestions from Newcomers
(only answered by people who had attended 0 or 1 hackathons in the past) example: To make things easier for newcomers, maybe we should have a wikipage or somewhere which should list down attendees according to their area, and their tables. Like:
 * Have a vagrant installation party in advance of the hackathon, and make sure people who don't need it don't waste time installing it at the event.
 * Better signs for working groups & create a system to make it easier to find people and projects (physically where are they?). Maybe even develope an app for this or at least a wiki-table.

Design:

Person X | Table 3

Operations:

Person Y | Outside!
 * Session about the general vision of the future of Wikimedia
 * More info online about tasks, projects and what skills (languages, etc) are needed for each task.
 * Intro session where newcomers meet expierenced developers
 * Screen with updating schedule and another screen with IRC channel
 * Felt unweclomed by long term developers, encourage them to make more of an effort to be inclusive

Changes for opening and closing sessions
Suggestions for opening Suggestions for closing / showcase
 * 5 people liked the opening and closing sessions exactly as they are
 * Publicize months in advance the timing of the opening the closing sessions will be so people can plan travel schedules accordingly and don't change.
 * The project pitches should be less improvised, give people a heads up that they will have the opportunity to talk about their project (this was done for Esino Lario)
 * Community wishlist facilitator during opening who initiates discussion about the wishes and helps form groups to make progress.
 * After the opening direct people to a physical board where others can go to find people and projects.
 * Use a power point with photos for venue maps and schedules and locations.
 * Record (video or etherpad) opening sessions and project pitches and post it so that people can remember what was said. (this was done in Esino Lario)
 * Avoid people switching laptops as much as possible
 * More time for the closing event, or less rushed presentations
 * Less time for closing event, only completed projects and not reports on small and incomplete things.
 * Get an a/v switcher for showcase so that the people up next can plug in and check on a test monitor while the person in front is talking.
 * Don't read people's shuttle times during the closing, put it on a wiki or post it somewhere
 * Have ALL of the video adapters

Changes for Sessions and the Schedule

 * Display the schedule on screens that update, if not possible manually update a whiteboard.
 * It was hard for people to find groups even with table signs
 * There should be more sessions AND there should be fewer sessions at the same time
 * Keep the unconference AND don't do the unconference
 * Session ideas: How to make a good extension, structure of code, good practices, what are the new features, ways of coding, advanced tutorial sessions (caching contexthandler, etc), guided exercises
 * Announce sessions by mic just before they start
 * Brainstorm room where people can go to exchange ideas / express fields of interest, connect with other developers.
 * Email updates to hackathon participants. New projects. Schedule changes.
 * Etherpad/website where people can find who wants to work on what (with photo and short text?)

Logistics

 * Better coffee, cold water at all times
 * Power strips should be on the tables not under them (don't make people crawl to plug things in), more power outlets especially in the garden area.
 * More communication about shuttles and announce it if there is going to be a change.
 * Give participants a map to help them find the venue before the first day
 * WMIL volunteers solved all the problems
 * Some people like one big hacking space, other people prefer the multiple smaller hacking spaces.
 * Issues at hostel: wifi, water pressure, locking doors
 * Wanted more trash cans around the venue
 * It would be better to have exclusive access to hostel and venue
 * Better communication about location and timing of dinner
 * More local food and specialties
 * The outdoor garden area was great! The central courtyard made it easy to run into people and chat. The venue was really cool. The history of the venue was interesting.
 * Vegetarian food was improved, but have even more protean options for vegetarians
 * More clarity in registration about process for booking rooms at hostel

What participants liked most:
(Listed in order by most mentioned) (mentioned by one person)
 * Meeting people in real life that I interact with online, easier to solve problems, work together in the future, find out what other people are working on, making cool software together.
 * The venue (Hansen House) and location (Jerusalem)
 * Good vibes / atmosphere / informal / relaxed / constructive / forward-looking / flexibility of the space
 * The food (& there were always snacks, I never went hungry)
 * The overall organization
 * The volunteers
 * Productivity, getting a lot done
 * Good balance of work and social
 * Seeing my WMF team in person
 * The weather
 * The social events
 * Community Tech Wishlist focus
 * The sessions
 * New project ideas for next year
 * The city tour
 * Learned more about coding
 * Option to stay in the hostel, not just automatically put in a hotel
 * Better to have different smaller rooms not just one big hacking room
 * Meeting newcomers

What participants liked the least:
(Listed in order by most mentioned) (mentioned by one person)
 * Distance between hostel and venue / shuttle busses
 * Problems with hostel
 * The event was too short
 * Food lines were confusing
 * No computer charging in the garden
 * Hard to find out what other people were working on
 * Sun burn
 * Name badges, not double sided, names scratched up, printed the wrong thing
 * Schedule announced more clearly
 * Jet lag
 * There was no fruit for breakfast
 * Traveling far from home
 * Inconvenient travel times
 * More info further in advance of hackathon
 * Getting sick
 * People I wanted to work with were not there (but I met new people so it was OK)
 * Too much using Phabricator
 * Too many projects not finished after hackathon with no future progress
 * Bands were not necessary / Bands too loud while trying to sleep
 * Wanted to go out more during the evenings
 * Not enough beer at the hacking venue
 * Wanted more diversity from other parts of the world
 * The desks were too low

Anything else?

 * Please make sure to always have accessible spaces. Also, future hackathons could be improved by looking more at the ecological footprint of the event and trying to minimize it.
 * IRC as pre-party for newcomers to connect with Wikimedians
 * Earlier communication to people with scholarships
 * Please provide sun screen, hard for people traveling internationally to pack and it would help
 * More coordination from the WMF tech department in advance of event
 * Please have a closing event on the last night
 * People speaking at the Gala were completely irrelevant to the event

Hackathon Accomplishments
This section is copy / past with some people's answers removed if they did not add anything.

Projects Finished:

 * Translating MediaWiki through Telegram chat.
 * * prototyped iframe widget security isolation infrastructure * restored demo of an older widget system * with other senior devs we hammered out some longstanding questions on Daniel's dependency injection patch
 * Ingested a dataset of nli into mix n match.
 * - Implement a first version of a VisualEditor editing widget for the tag used by Wikisource https://gerrit.wikimedia.org/r/#/c/152028/
 * 1. orphan-groups - finding orphan pages that are missing from regular reports 2. refactor MessagesXX ( https://phabricator.wikimedia.org/T116020 ) for improving parsoid
 * Fix WLM bot for Russian Wikivoyage: https://phabricator.wikimedia.org/T131344 Fix some statements in Wikidata
 * Citation Hunt - Hebrew (soon to be fully available)
 * Worked on https://phabricator.wikimedia.org/T120733 - date ranges for Special:Contributions thats nearly complete.
 * Numerous tasks and new features for Huggle and some other tools
 * Add to Kiwix app 3 features Undo snackbar when closing tabs Rate app dialog Improved bookmarks
 * By finish, do you mean production-ready? If yes, nothing I have done could be pushed right now, without major improvements to the code.
 * fixed several wikibits bugs https://lists.wikimedia.org/pipermail/wikitech-l/2016-March/085113.html
 * Kiwix application. Firstly, I learnt how Android apps work, how to start, and immediately started coding. I helped with better UX and UI for the application.
 * Fixed T126427
 * Initial prototype of the UX of the revision slider.
 * https://phabricator.wikimedia.org/T131480 - not directly coding, but still
 * Librarybase update and redeploy. Prototype for displaying text mining output on librarybase Discussions about the current state of citations and future direction. Wrote code to identify invalid ISBNs present on wikidata.
 * Evaluation/Analytics project
 * Submitted a patch for https://phabricator.wikimedia.org/T100645 Did major improvement to https://github.com/proveit-js/proveit
 * https://phabricator.wikimedia.org/T119887
 * Well, we worked on several bugs and patchsets to complete the security review of the Newsletter extension. Let me pull out something: https://gerrit.wikimedia.org/r/#/q/project:mediawiki/extensions/Newsletter,n,z lists that almost 35 patchsets were produced and reviewed + merged from April 1 to April 3. This is kinda great, and we could get the extension to beta by the end. I could create and review most of them.  Phab projects task : https://phabricator.wikimedia.org/project/view/888/  My other goal was to sort out the 'Implement HTML email for Mediaiwiki' task, which I am co-mentoring with Tyler Romeo. We discussed on selections, and the implementation strategy with Siebrand, and now we have a plan for GSoC'16 and selection too.
 * Work. (Yes, I suck. Was really behind schedule and blocking other people.) A documentation generation experiment related to the dependency injection session. https://gerrit.wikimedia.org/r/#/c/281213
 * MediaWiki-Vagrant install party Labs/Tools/MediaWiki-Vagrant support desk
 * Deploying the newsletter extension to the beta cluster.
 * Fixed bugs: https://phabricator.wikimedia.org/T131658 https://phabricator.wikimedia.org/T62627  https://phabricator.wikimedia.org/T123999  https://phabricator.wikimedia.org/T123845  Fixed an unreported VisualEditor bug: https://gerrit.wikimedia.org/r/#/c/280844/  Cleaned up 2.5-year-old tech debt in VisualEditor: https://gerrit.wikimedia.org/r/#/c/281312/
 * Fixed some broken WikiProject reports "Citation Hunt" on a per-WikiProject basis (made possible by me making my WikiProject–article pair database readable to all, which was a surprisingly difficult project)
 * JS-Visualizing Wikipedia/wikidata, in English and Arabic
 * Watchlist-related stuff
 * structured data store on wiki
 * MWStew - a form to download MW extension boilerplates
 * Various improvements and bug fixes for ops/puppet and mediawiki-vagrant
 * Added WikiProjects to the categories in Citation Hunt Helped a volunteer port Citation Hunt to Hebrew (tools.wmflabs.org/citationhunt/he)
 * Fixing various longstanding bugs in AutoWikiBrowser Removing deprecated code from MediaWiki and related extensions
 * On phone. There were many. Not sure how if remain anonymous if I were to list them out anyway.
 * Moved some tools to toollabs. Finished the code for several data imports and started them. Agree on the future of the monuments database.
 * Created prototype for lead image selection
 * Deployed VE on Wikisource

Projects begun:

 * I gave presentations of ContentTranslation to three people.
 * * got in touch with authors of related projects, agreed on intent to work togetherand merge some tools * agreed on prototype plan for template styling withjonr and coren
 * Wiki Loves Monuments database Pywikibot Wikidata data importer Glamorous 2
 * Safely embeddable JavaScript plugins https://phabricator.wikimedia.org/T131436 Proof of concept completed, API needs expansion
 * Convert marcxml to wikidata.
 * - Work on VisualEditor support for the Wikisource Page: namespace https://phabricator.wikimedia.org/T48580
 * 1. importing MARC xml from national library of Israel to wikidata 2. Improving copy&paste detection bot - https://phabricator.wikimedia.org/T131481
 * KML support for MW: https://phabricator.wikimedia.org/T28059 ORES for Russian Wikipedia: https://phabricator.wikimedia.org/T130270 https://phabricator.wikimedia.org/T131635 MARC data from libraries: https://phabricator.wikimedia.org/T131417
 * National Library of Israel.
 * Worked on revision scoring for support for the hindi wikipedia.
 * documentation learning how to ingest data into wikidata learning Git
 * Sadly, some other tickets I just didn't finish (and close) yet...
 * The most interesting one is the SERG I guess (presenting images results with a grid layout).
 * helped design the next prototype: https://phabricator.wikimedia.org/tag/revslider/
 * Revision slider
 * https://phabricator.wikimedia.org/T131582
 * https://phabricator.wikimedia.org/T131585
 * Provide a user watch list : https://phabricator.wikimedia.org/T2470
 * https://phabricator.wikimedia.org/T3790
 * Librarybase import all pubmed central articles on enwiki in progress.
 * Started discussion on merging https://commons.wikimedia.org/wiki/Commons:WikiProject_WikiWidgets with a wider project for sandboxing JavaScript from users and third parties.
 * A project of uploading A viaf xmls of library catalogs to Wikidata
 * We have like 8 projects in https://phabricator.wikimedia.org/project/view/1325/ -- the Wikimedia Hackathon one from the Newsletter extension. Probably we will get it done soon, as most of them have a patch-for-review, thanks to Addshore, Tina, Qgil and Ori.
 * Wrote documentation for extension development, added docs for a missing Hook at https://www.mediawiki.org/wiki/Manual:Hooks/LanguageLinks
 * Setting up ORES for huwiki: https://phabricator.wikimedia.org/T131443 https://phabricator.wikimedia.org/T131446 Not really coding though.  Thumbnail generation on beta cluster: https://phabricator.wikimedia.org/T84950
 * Deploying the newsletter extension to the beta cluster. https://phabricator.wikimedia.org/T115095
 * Ed Sanders, Tpt, Coren and I worked on VisualEditor support for ProofreadPage (Wikisource). I wrote a small infrastructural patch for VisualEditor ( https://gerrit.wikimedia.org/r/#/c/280832/ ) and some code for splitting up pages (not published yet, but emailed to Coren and Ed so they can integrate it into their work). I also did an in-depth code review of Tpt's patch https://gerrit.wikimedia.org/r/#/c/152028/.
 * I was doing product manager work -- with Christoph and Jakob on the Revision Slider, Niharika and Eran on the Plagiarism tool, Jon on the improved diffs, and Bryan D on Tool Labs support.
 * Implementation of new article request workflow on Wikipedia
 * Started working on the next iteration of a bot to do data donations to Wikidata.
 * ArticlePlaceholder Cleanup deprecated functions in MediaWiki other tasks in phabricator
 * Improved UX for newsletter extension Looked for bugs on pagebanner template Discussed future plans for mobile microcontributions Began plans for wikidata in search results/article
 * https://phabricator.wikimedia.org/T123156 https://phabricator.wikimedia.org/T483  https://phabricator.wikimedia.org/T48580
 * First steps on a community wishlist project
 * discussing problems and changes in some wikisource projects

What was your biggest accomplishment during the hackathon

 * The Telegram thing!
 * Worked together with a small group of newbie devs to build wikidata entity graph demo using theiframe widget system I had hoped to prototype.
 * General: Getting to know the Wikimedia community in Israel and from around the world Hacking: Creating an example plugin based on the secure plugin API
 * Learningabout wikidata APIs
 * - The tag editing widget for the VisualEditor
 * I was able to get volunteers to developed on the extension I started.
 * my new tool, orphan-groups
 * Having very good communication with a lot of developers, with my roommate, and with the Citation Hunt. Getting help from the right people, which was easier to find.
 * Meeting and connecting with Wikimedians and learning from them.
 * I could help a few people with simple things
 * The number of tickets that I have closed :)
 * I got a thing mostly working based on code that took someone else all summer to do.
 * Sleeping only 3-ish hours a night?
 * could help with both, design improval and bugfixes
 * I learned Android Development. I am happy to join the open source community of Kiwix and help them on a weekly/monthly basis.
 * - meet WMF Community Tech Team and make a rough plan for the revision slider - meet lots of other people!
 * Establishing the optimal techical solution for https://phabricator.wikimedia.org/T131585
 * The working demo I showcased
 * Translating "How to become a MediaWiki hacker" into German
 * Breaking the 100k item barrier on librarybase
 * Be part of the network, help people to meet.
 * Discovering the achivements of the new model.
 * Providing a solution for https://phabricator.wikimedia.org/T100645 which has been open since 2008, and adding support for TemplateData to the ProveIt gadget ( https://github.com/proveit-js/proveit ).
 * Newsletter extension got into beta-- \o./ -- https://en.wikipedia.beta.wmflabs.org/wiki/Special:Newsletters -- this was blocked in security review for like 2 months, and we got Ori sitting on our desk running through code line by line, and by day 3, we got it in beta!
 * Personal contact with international developers of "Wiki loves monuments".
 * Helping people get MediaWiki-Vagrant installed and new Tool Labs tools created.
 * Deploying the newsletter extension to the beta cluster, meeting many incredible developers.
 * On the bus ride back from the Hansen House to the hostel on Sunday, I argued with Ed and Coren about the feasibility of splitting a page in three parts (needed for VE support in ProofreadPage). They said it would be hard, I said it would be easy. During the beer+pizza event I sat down and wrote the code, it ended up only being 50 lines.
 * Knowing what is really Wikipedia - wikimidia - wikidata, and the use of Wiktionary for my personal startup project
 * Agreeing on future architecture for the product
 * Having met lots of people and gathered a bunch of feedback on Citation Hunt. I know this is not a concrete accomplishment, but it will be very helpful going forward.
 * Recruiting and training several new volunteers to work on my projects.
 * I was able to help out quite a few people to jump start their projects.
 * Found two big bugs - one is a security bug (was fixed/deployed in 30 min); another one a translation bug - also was immediately addressed
 * Created prototype for lead image selection
 * Managing to herd enough cats to get VE out on a new project family!

What project impressed you most?

 * MediaWiki stew
 * I literally cannotchoose. Extension dev setup helper? 3d render in media viewer? Translate over chat? More!
 * Better diff views!
 * Translating MediaWiki through a mobile chat app
 * Translate by telegram.
 * 3D files support
 * The 3D Commons support.
 * Amir's idea of editing translatewiki using chat apps
 * Wikidata citoid integration by Katie
 * Support of 3D files
 * Citation Hunt!
 * Wikidata for Wikisource
 * 3d support for Media.
 * article placeholder MW Stew
 * New extension maker (Muriel's thing)
 * 3D models! 3D MODELS!
 * Wikipedia, always.
 * the development of the next prototype of the revision jumper: https://phabricator.wikimedia.org/T131676
 * Kiwix application
 * Android app editing improvements
 * 3D model support for MediaWiki
 * Article Placeholder: https://phabricator.wikimedia.org/tag/articleplaceholder/
 * "Edit here" in the Android app
 * The JavaScript Plugin system
 * Isolated iframes for secure JavaScript widgets.
 * Both VE on WS and Diffs
 * I didnt have enough time to learn about other projects.
 * I was very impressed by the graphing possibilities introduced by the Graph extension, which I hadn't heard about before this hackathon.
 * Progress on several Community Wishlist tasks. Yay!
 * To me, its still the newsletter extension :)
 * Graphs and maps in mediawiki.
 * Editing translate wiki via Telegram Messenger was pretty neat to see come together. Amir did the whole thing in last 2 days of the hackathon from re-learning Tool Labs to figuring out how to talk to both Telegram and the wiki using nodejs.
 * Newsletter extension :) and Support for some 3D file formats
 * VE for Wikisource and diffs.
 * As for the project itself: Katie's Citoid integration for Wikidata. But the best story is that of the ContentTranslation link in ArticlePlaceholder. On Saturday at noon, Lucie (WMDE) gave a presentation about her ArticlePlaceholder extension, and Moriel (WMF) commented that she should consider directing the user to translate the article using ContentTranslation. Florian (volunteer) implemented this feature and presented it during the showcase on Sunday.
 * Gilles' 3D file support was amazing.
 * Amir's project for translation via the Telegram app; a very novel idea that uses existing platforms to fulfill the Wikimedia mission. I want to see where this goes!
 * wiktionary and Wikipedia Bot building
 * Chat-based translation services (by Amire80)
 * 3d support
 * I didn't see any revolutionary new projects at the hackathon, I did see a lot of progress in existing projects that are really promising.
 * ORES
 * 3D models on Commons by Gilles!
 * Revision slider
 * Wikipedia by telnet!
 * discussions on Article place holder (for me as newcomer) some more experiences with phabricator

Participant Info
How would you describe your experience as a developer? (81 responses) Including this event, how many Wikimedia hackathons have you attended? (82 responses)

Supporting Newcomers (these questions were only filled out by newcomers who had attended 0 or 1 hackathons in the past)
How useful did you find the sessions for newcomers? (41 responses)

How useful did you find the "Hackathon Newcomer" and "Long Term Wikimedian" buttons (42 responses)

How was it to find people to work with? (39 responses)

How useful were each of the following sessions?

Sessions / Schedule
How satisfied were you with the selection of sessions offered? (78 responses)

Logistics
How would you rate:

Ratings of the Hackathon Logistics

Accomplishments
What different tasks did you accomplish during your hackathon time? (80 responses)

Anything Else?
Please tell us how much you agree or disagree with the following statements. Are you interested in childcare next year (In Vienna)? (79 responses)

Suggestions captured during the event
from https://etherpad.wikimedia.org/p/Hackathon_2016__To_Improve

Spreadsheet for next year : https://docs.google.com/spreadsheets/d/12xOMiNo8Wwl_lGEm7e7Dj5HgQdCwvbJV7KH6rY3maMY/edit#gid=0

Notes from the organizing team - what can be done better last year. These notes can be given to the 2016 organizing team so they can improve upon our plan

Please add your thoughts - it will be super helpful. What would you have done differently now that you know what it is like to orgnaize a bit hackathon? :)

Things to Improve

 * Email list with all participants in advance (maybe hackathon2016@WM??.??), people can use it to make announcements. I saw some announcements about the event going to wikitech-l.
 * Physical schedule that can be edited/changed easily. Whiteboard or big paper schedule.
 * More snacks / drinks in the afternoons, some people always want to be eating / drinking.
 * More communication between WMF organizers and WM-Chapter organizers about the timing/schedule in advance of the event. https://www.mediawiki.org/wiki/Wikimedia_Hackathon_2015/Program does not always match up with the actual programe.
 * Have a quiet room, where it's not allowed to speak (like in a Library)
 * A guide for best practices in events organization (may be used for other events than the Hackathon), with tips like use double face nametags ; different lanyard colors for organizers/attendees/attendees who do not want to be on photos... (+1)
 * Reduce the "single point of failure" by mixing more people involved in the organization (and improve - if possible - the proportion of Staff / Volunteer, who are not available at the same time)
 * Bring some "emergency computers" with basic programming tools if someone has a issue with their own computer
 * Color-coded tshirts or stuff to identify "ressources persons" beyond local organizer, (one color per main theme of the Hackathon)
 * Know in advance when people are going to leave so if they leave before the demo than can still record what they've done
 * Remember last day people will not be able to attend the full day: do the group picture on the central day (second one: late comers have arrived, and early flight are still here)
 * Have a Chromecast or equivalent system to allow people to display their presentation without having to rely on a faulty VGA/DVI/HDMI cable :)

Things to keep
Venue
 * Retrogaming party was really really good. Having activities where people can do lots of different things best party we have had
 * Important to always have ways to relax : ping pong, pétanque, walking, just resting on a chair
 * Lyon venue was perfect, lots of space, lots of rooms, nature nearby, etc.
 * "All inclusive" venue is definitely great.
 * Hacking room open 24/7 is great
 * Accomodation
 * Public roomate list: people like to know who they are living with in advance