Code, Angular, iOS and more by Aviv Ben-Yosef

How To Pull an All-Nighter

| Comments

Our team has recently received a brand new 50’ plasma display. After some brainstorming we’ve decided we want to display on it a live dashboard that will be used for all sorts of stuff – an information radiator about current projects, displaying online information from production systems, pulling snapshots from different web-cams in our organization etc. Basically, we wanted to make it look Hot!

We wrote down a lot of cool stuff that we would like to see there. One problem though – no one was going to let us spend a bunch of time working on it. So, we thought the best thing to do was to pull an all-nighter. This post summaries the preparation we have done in order to make it a successful one.

Step 1: Decide what you want to do

As I’ve already mentioned, we created a detailed lists of the different widgets we’d like to see on screen. We sketched the looks and the behaviour.

Step 2: POC

Because my team usually works on client-server systems and doesn’t do a lot of web programming and/or UI applications, we thought it would be best to do a Proof-of-Concept to everything that might prove to be harder to do than it seems.

Over the course of a week I wrote down simpler POCs that used the different APIs we wanted to use and that sort of stuff. I think that in general it took me less than 5 hours to create all of those.

Step 3: Organize your environment

A colleague and I created a simple installation of the required development environment in order to allow people to start coding as fast as possible.

Step 4: Spread the knowledge

At the beginning of the all-nighter I gave a 90 mins presentation of the technology involved. It was a simple walk-through of the basic kind of stuff that we were going to do. Later I sat down with each time and gave them a walk-through of the POC code that is relevant to their work.

Step 5: Divide

Before hand I sat down and divided all the work to tasks. Then I assigned pairs to the tasks keeping in mind that the pairing should be as good as possible (when you’ve got only one night you need to choose a pair that already works, as against to the usual where you can allow the pair some time to learn how to work together).

Step 6: Conquer!

Right after that we started coding like hell. I’ve set up a board full of Post-It notes of the different tasks at hand. The board was then divided into 3 parts: Backlog, In Progress and DONE. Moving a task to DONE was celebrated with a round of applause and everyone was able to see how we were doing by simply glancing at the board.

Step 7: Enjoy the result

At 6 AM we were finished. We had most of the dashboard ready and thought it was time to call it a night.

Some general tips:

  • We collected some money and bought snacks and drinks for the whole night (not including the obligatory pizza, of course).
  • A colleague and I were responsible for integration – we spent the night between the working couples, seeing how they were doing, sharing information and tips that were being learned and made sure that people integrated their code as soon as possible. This was a good thing as gradually during the night the plasma screen became closer and closer to the result.
  • Make sure you’ve got good music.
  • Force everyone to take some breaks. We chatted a lot and some people played cards.
  • We set up a web cam that videoed the post-its board and the plasma display during the whole night. I haven’t had the chance to watch it yet, but I bet it’s going to be pretty cool watching it in fast-forward.

I hope your all-nighter will be as fun as ours was!