Wednesday, March 23, 2011

Programmathon

As I said in my interview, during my University studies, one of the most remarkable experiences I had was with ACM's International Collegiate Programming Contest (ICPC). It made me learn a lot about teamwork and programming, and I am a very different person because of that.


My team in the 2009 South American finals of the ACM ICPC


In a nutshell, the contest has many teams of three persons each, that must study in the same university, and represent it, and each team has got a single computer. The sessions usually last five hours, and, in the beginning, the competition staff gives a booklet with difficult programming tasks in a number that can usually vary between 8 and 14. So, each team has to solve as many as possible and submit solutions to the judges. The winner is the team with the most problems solved, and ties are resolved by considering how fast you submitted your first correct solution (incorrect ones are penalized).


Team logo of my university.

One of the highlights is that whenever a team gets a problem solved, not only the score is updated, but also, a colored balloon is given to the team, with the color being unique for each problem. Usually, the color that appears the most is the one of the easiest problem. Each team has an unique way of celebrating the arrival of the balloon. In my university the tradition was to make noises imitating turkeys. The logo of the team also reflects this behavior.


Competitors watching the ceremony for the final result in Campinas, Brazil, in 2009

In the final hour of the competition, the score would be frozen but balloons would still come, and it was a very big emotion when a balloon came. Also, the staff was very mean and would come close to the teams with balloons of the color of the problem being tried the most, just to tease us. In the final 15 minutes, even balloons wouldn't come anymore, and then the final result would be announced in a ceremony in which the final submissions to the judges would be judged one by one, and finally, the winner would be announced. This has been source of great moments in my university course, and one of the things I will miss the most. Nevertheless, the model can be also applied as a source of motivation to get huge programming tasks done, and this is actually what we are doing right now in the bBox! Ladies and gentlemen, I am proud to introduce the PROGRAMMATHON!
The contestants in the Programmathon: Me, Aldo, Pipe and Delly

We have been programming with all our energies for some time now, and the concepts are really huge (Nair is very creative and gives us a lot of work!), so we have to split the tasks (as explained here, in the SCRUM meetings) and get them done. So in the meetings, the programmers estimate the amount of work that a given feature will take, and Stan then assigns a number of "Thumbs up" to each of them, and, after that, each programmer chooses which tasks to take that day (or couple of days). After accomplishing the task and presenting the result, we eagerly wait for the following meeting, during which Stan then moves the thumbs up that were posted on the white board with the tasks to the score wall.
White board with the tasks and their owners, and the thumbs up waiting to be transported to the score wall
The score wall. The thumbs up have the task they're about written on them

There is no freezing score, but there is the overcoming of yourself to try to make the most in a shorter time frame, to get more and more thumbs up, and this brings more thrill to our work, that approaches the end really quick!
The technical team seeking some more thumbs up!

No comments:

Post a Comment