Login with github
Forum /

Hi everyone,

The first BEM hackathon took place in Moscow, on 14 - 16 November, 2014. It took us long to go from an idea to the actual realization, and we would now like to share our experience, achievements, and plans for the future with you.

A little background history

We had an idea that we needed some sort of event to encourage community building. An event to get our community together to discuss projects, difficulties that developers face, and think of some common solutions together.

A year and a half ago we started to move away from conferences towards the smaller scale format of BEMups — BEM meetups, six of which have since been held in Moscow, Saint Petersburg, and Minsk. Such meetups gave us a lot: informal communication, opportunities to meet real people that use our technology, the chance to get to know everyone in person and discuss real-life problems related to specific products — and we no longer had to deal with certain restrictions, such as limited time for Q&A sessions, inevitable in conferences due to the sheer size of the audience.

In meetings, we started to move away from just talking towards coding, inviting more experienced developers, helping newcomers via online chat, making sure everyone was getting somewhere. As time went by, we realized that we could go further. Now that the number of developers able to use the full BEM technology stack was high enough to run a hackathon, we could finally do it. So we prepared projects and tasks, picked a date, opened registration and braced ourselves. Even if it lead us nowhere, it would still be an experience we could use later on.

We were in for a pleasant surprise!

Teams are getting ready

How we did it

First, a few words about the format we chose for our hackathon based on the logic we followed and tasks we came up with, and also how we did it.

We'd planned the hackathon as a two-day event spanning a weekend, with two extra days before and after — one for all the introductions, one for goodbyes and departures. We welcomed the participants on the Friday, introductions were made, we discussed the programme, showed everybody around our Yandex office, had dinner together in the Yandex canteen and went home to get some rest before the event.

It was an early start for us on the Saturday morning, around 9 a.m., with breakfast in the venue, followed by project presentations (mentors here each presented their projects to the participants in order to recruit enough people into their teams, to try and complete the necessary tasks together in the timeframe available) and forming of the teams (each participant could join only one team).

We ended up with 8 teams out of 12 projects presented, which proceeded to work on their projects. They had just over 24 hours to code. Discussing tasks, deadlines, planning, interim results on an improvised kanban — we had it all. In every corner of our co-working space you would run into groups of people talking, drawing charts and diagrams on whiteboards, writing code, and occasionally popping out to take a nap in the hammock room :)

On the Sunday afternoon the teams presented their projects and results of the two-day hackathon. The goal was to get the maximum number of tasks up to production level. Many teams finished their job at 75-80% ”done“ level — we have scheduled the publication of the results on bem.info/blog.

Successfull teamwork was rewarded with some books published by Mann, Ivanov & Ferber, presents from Yandex, cheers and laughter, photo-taking to preserve the memory of the event, and a dinner for all.

The main idea and point of the hackathon were not to compete for some material trophies but to collaborate on something that would contribute to the BEM community development and help other projects. And it looks like we managed to achieve just that!

What counts

We announced our hackathon 2.5 months in advance — a significant period of time to keep registration open. However it was unavoidable. The selection process was labourious, applicants had to show their own BEM products or pass a test, we had to review their code, make sure nothing was missing and start to communicate with prospective participants. In other words, make all the necessary arrangements, cover travel expenses, sort out accommodation. Mentors of the projects had to think of tasks and goals, plan teamwork, try to foresee possible questions and think of the answers to them. We were not bored at all.

We received 34 applications in total. 23 invitations were sent out after the review, 15 participants attended the event. 5 of them were not from Moscow but came from Saint Petersburg, Orenburg, Voronezh, Ekaterinburg. Our colleagues at Yandex showed interest as well and came to code with us. The teams included 13 Yandex developers. We had 14 mentors (some larger teams had two mentors), 4 of them were not from Yandex.

All the work at our hackathon was based around projects. Originally we had 12 projects planned. 7 of them were created by the BEM team, 5 by developers from the BEM community.

After the introduction session we had 8 left to work on:

  • Blocks
  • Modular building of BEM projects
  • BEM forum
  • Dashboard
  • Documentation
  • A service that converts code into images with BEM syntax highlighted
  • MaximeOnline: content management system
  • BEM application for SmartTV

How everything went, what goals developers pursued and what they achieved in the end — all of that will be chronicled by our mentors and published in our blog in the nearest future!

Exit poll results

Once an event is over, we like to get the participants' feedback on it. We value your opinion and are constantly seeking to improve our events.

We have done our own exit poll on the hackathon and would like to share the results with you!

We had both mentors and participants taking part in the survey at a ratio of 40 to 60. 100 percent of respondents felt satisfied with their teams, mentors, participants. Almost 100 percent were also satisfied with the level of preparation in the area of technology. Admittedly, we did follow a rather rigourous selection process at the registration stage, making sure that participants had the required level of BEM and JS knowledge given that the hackathon was about coding, not learning JS.

Despite our worries, it didn't take long for most of the teams to do task planning and allocation. Task planning was done together, as a group effort in most of the teams. According to our survey, 80 percent of the developers believe they were able to ”achieve all of the planned goals“.

The format of the hackathon was generally found to be a very comfortable and optimal one. Although, some developers wish they'd been able to start a bit later, sleep in the venue, work for longer than two days or not have to leave at all. All of these suggestions will be taken into account in the future!

This time most of the projects were prepared by our team. Therefore we wanted to find out whether participants found our ideas useful and interesting to implement. 90 percent of the respondents found them to be so. We are happy to know that and we also think it would be great if developers brought their own projects and their own ideas to help enrich the BEM world!

As to the factors that prevented teams from achieving their intended project goals (bringing their projects to a desired level), respondents cite a lack of technical skills in one or more team players, lack of time, risks of launching services on different platforms, insufficient architecture planning, wrong estimates of task complexity vs. team expertise.

What could improve future events:

  • Work on your skills beforehand so as not to slow down the team's progress.
  • Configure the environment beforehand so as not to slow down the team's progress.
  • Think the architecture through beforehand to save time.
  • Estimate the complexity of the tasks, team effort, timelines; plan and break tasks down into subtasks if necessary to improve efficiency.
  • Prepare projects with varying levels of difficulty — for beginners, to create really cool and useful stuff.
  • Create projects that make use of the full BEM stack.
  • If there is an excess of ideas, have a vote on all the projects proposed to narrow the list down so that we can have about 5 devs per team, which should lead to better results.
  • Aim for more community-driven projects.

Let us also quote some of your comments:

”The main idea of any hackathon is to have this atmosphere of creativity and healthy competition. So it would be great to have more original projects from the community“.

”I must say that prescreening of developers' skills was done well enough, so there was no need to explain BEM anymore. The Blocks team had the ideal situation: every block is a separate task, the project is already configured, there are examples of other blocks and a format. As a result, everyone picked a task that matched his skills and completed it so that it could be presented. Of course one solid task is way more interesting than a number of small ones but with 8-10 hours at your disposal that was ideal“.

”We should send at least one BEM-friend to every project we have. There were teams lacking in people from the BEM team/Yandex. And it was hard enough to code and to answer questions at the same time“.

”We need to have more independent projects in the future. Something like what developers from the Pictures team did“.

”The BEM hackathon was supercool! However, I think we should stay away from non-block-based projects. I think projects like bem-ide or build tools are not that interesting unless you know all the ins and outs :(“

”I am a hackathon nymphomaniac. I just can't help it, I love to hack. ^_^“

However, not everyone was so upbeat. Two developers were sad about certain things, so we would like to respond to their complaints.

One respondent complains about a project the essence of which was unclear from the presentation, pointing out that the mentor had ”spent two days doing nothing and the end result showed nothing.“ He advises us to avoid such kind of projects in the future. That's a good point. We will watch out for that kind of attitude in the future. This time we allowed ourselves to rely on the participants' self-discipline, their own enthusiasm for comminity building, and the fact that the rules of the event applied to all attendees, including the rule that states that ”if no one joins your team and you are not likely to deliver the project in two days on your own, you should team up with another project to help others deliver on time“. After a few reminders, queries and recommendations to join other teams, we decided not to push too hard and just see what happens. Next time we shall be stricter.

Another participant points to the ”rather disappointing fact that the only two non-Yandex-based teams that were making some effort trying to code something got zero points in the voting.“ He suggests we show them some support. Their ideas were OK, in his view, the team was somewhat lacking in technical and marketing skills. He also finds blocks and the development of existing projects to be a strange idea for a hackathon.

Now, we couldn't disagree more with that view and here's why. Our hackathon was planned as a project for the community, where we can code together to create and opensource something that will be of use to many developers. Half of the eight projects presented at the event were exactly about that — Blocks (which everyone needs), Build (modules for third-party build tools that facilitate the building of BEM projects), Documentation (for the technologies used by everyone) and Forum (where people discuss BEM). These teams were staffed mainly by people from the community.

Next, there were four external projects - Dashboard, Pictures, Maxim and SmartTV. The results of the vote show that Dashboard won first place with 11 votes, Pictures shared fourth place with the Documentation team. Maxim and SmartTV both got zero points. That is indeed disappointing but it is hardly biased, since, as we all know, all the participants voted after all the projects were presented to them. The latter two teams showed poor results compared to the others.

All we can do is suggest these teams improve their task planning skills, prepare their presentations better, work harder on their projects during the hackathon or maybe join other teams — which can also make sense — you end up gaining some knowledge and experience, doing you bit for the community and helping a lot of developers.

Our hackathon did not involve prizes as such. While planning it, we thought we should be driven by the idea to make the BEM world better. Does everyone share that view? Your feedback certainly tells us so. Many share the view of ”no prizes are needed, I'm happy to contribute to the common cause“ or that ”having promotional prizes is enough“. However, we'll think of ways to encourage you more in the future.

Thank you so much for all the ideas and for taking part in the hackathon!

We were very happy to learn that the majority valued the following:

  • Knowledge and experience sharing.
  • The ability to write blocks correctly.
  • Acquiring skills on the go during the hackathon and from experienced developers.
  • Getting to know their colleagues.
  • Finding answers to their BEM questions and contributing to BEM development.
  • Finding necessary information about further development and plans.
  • Building ties with the BEM community and establishing contacts.
  • Taking part in real BEM projects.
  • Watching how others manage at the hackathon.
  • Learning how to manage the process.

Someone wrote to us saying that he'd ”learnt to find answers to questions about i-bem.js, tried his hand at writing tests, received some useful feedback on his coding style, learnt to notice things he'd treated as unimportant before“. The hackathon helped him ”identify the gaps in his knowledge as well as his professional development path for the next couple of years. So pluses all around really. Besides, I was able to complete my share of work, as straighforward as it was from an experienced developer perspective“.

Sounds cool.

Afterword

By way of afterword I would like to quote some more of your emotions — in the end, that was what really made our weekend!

”The atmosphere was fun and friendly. Thank you so much, colleagues from the BEM forum team! It's a pity I could not be with you on the second day. Please keep me posted, I'll gladly attend more BEM events. So look out for new pull requests! I'm looking forward to seeing the results in production! Good luck and all the best to you all!“, — Yura Malakhov.

”Thank you! :) It was cool to see so much cool stuff being done in just two days“, — Kolya Mendyaev.

”You are great! The achievements idea is really awesome!“, — Pasha Akhmetchanov.

”It was the best hackathon ever! Thank you“, — Zhenya Solovyev.

”Thank you for the hackathon! Let's make it a quarterly thing!“, — Lesha Yaroshevich.

”The most vivid memory for me is the warm friendly atmosphere. It was conducive to making new acquintances, networking and active experience sharing. The event was very well organized. You could feel the presence of BEM team spirit — everyone was committed to creating useful and original products. There were a lot of top-notch ideas and cool people. You could see a collaborative spirit at work in the teams, everyone supported each other and tried their best to get good results. There competition was high but healthy as well“, — Inna Belaya.

”Not every team managed to achieve their original goals and get their project to its intended state. But everyone got their reward in the end, i.e. experience, and that's what really matters! The main drawback of the BEM hackathon is that it was too short“, — Sasha Tikvach.

”An unexpectedly high number of people from the BEM community showed up for the hackathon, and in just two days they managed to do something that in normal circumstances would take weeks to complete. I liked the well-coordinated team work and the end results. Well done to you all! Let's keep going“, — Vitaly Harisov.

”The first BEM hackathon met my expectations by 120 percent. The organizers did their best to create an atmosphere that inspires you to code, achieve goals, share your experience with the BEM community and learn about others' experience in using the methodology, technology and tools. I was pleasantly surpised by the participants' level. The guys in the BEM Forum team clearly study BEM, use it in their projects and intend to keep on using it. They helped a lot, completed a number of important tasks while also improving their knowledge of the BEM platform with our help. I'm very much satisfied and I hope there'll be more hackathons in the future!“ — Kolya Ilchenko.

”I really liked the way the hackathon was organized — our dinner together the day before the event proper, food and beverages throughout, workstations with a good Internet connection - everything was sorted, so we could concentrate on the work at hand. The teamwork was well coordinated, people were helping each other. The prize for me were all the blocks that we wrote“, — Evgeny Konstantinov.

”Guys, help you so much for the hackathon! Thanks for the trust, for your interest, for the willingness to work on a weekend with no money of gift incentive, for understanding the goals and sharing our views! You're really doing a lot. Please keep it up!“ — Mursya.

A lot more posts on the hackathon results are coming soon. Our photostory is already published.

Do not switch off and Stay BEMed!