A few days ago, the Agile Cup took place. This contest was the second try before the big event, on the last weekend of June. I’m not going back the contest itself or giving the full results. They are available on http://agilecup.org.
So, what can we learn from the two programming sessions of 2-3hrs each?
When I started to work in a XP team in 2001, replace the human interaction in the center of the projet, was for me the most innovative. During the two Agile Cup sessions, I found those concepts.
In one hand: Competitors
At the end of both sessions, most of developers told us they had fun during the competition.
Topics are for something: a word cloud or a solver for a ASCII maze are interesting problems and we do not have it in professional life.
But from my point of view, this satisfaction also comes from:
- Freedom to organize their team, developers could choice their languages and tools;
- A clear definition of the problem, and easily testable;
- The opportunity to deal with the organizers that answer as soon as possible;
- And the availability to know new developers during the Agile Cup
At Extreme Forge we believe that developers should take pleasure in their work. We call it the hedonist development, and we think it is help to improve skills and productivity of teams.
On the other hand: Organizers
Another strange thing took place during Agile Cup beta. Gyms were created in /ut7 and af83. A gym is a place where developers can go to share space with others.
You’re probably wondering why these gyms may interest the organizers. Remember it is one of the XP practices: The client on site.
Indeed, half an hour after the start of the cup, I want to be with some competitors.
Being in a gym would have allowed me to see the work of developers, as craftsmen in their studios. It is an idealized image, but I can watch for hours the craftsmen at work.
The user experience of the first 2 sessions is satisfactory. But we can improvement the communication facilities between everybody.
The initial idea of Agile Cup was a contest which should benefit the teams that are use agile development. After two sessions, we can begin to compare technical practices implemented by different teams.
There are 2 categories. The one which take advantage of the competition to practice a new language, and others who use well-known tools.
My tips to win
Here are the strategy of the winning teams:
Both teams used a revision control system. According to them, they use it out of habit and not by need. These two teams have also added that the presence of a revision control system.
Both did not really make TDD or even implemented unit tests for development. They use tests to understand the specifications and have confidence in their code. In fact the contest conditions, 3 hours to provide a code whose purpose is to go to the garbage, does not motivate to make any test. Even Kent Beck could approve : To Test or Not to Test? That’s a Good Question
Another XP practice, the pair programming was used by the team winning the Cup Agile beta and also a bit by the other one.
The choice of tools is also important for a so short contest. Both teams use tools they already knew. They knew that these tools will meet their need. And they have used two very similar languages Python and Ruby, which are well-known for their productivity.
I hope these tips, help you to win the next time.
The discovery contest
Some teams took advantage of Agile Cup to do spike on new techs. These teams are saying they are a bit disappointed by their session because they spent more time to implement the API communication with the test server instead of implementing the algorithm for the problem.
But when we asked how the organizers could help:
- Some respond that the organizers are not responsible of this shipwreck. Some say:“the good workers have good tools and ready for use”. The organizers do not have to address these issues, and there is nothing to change;
- Others asked the organizers to provide some advice before the start.
The spike practice is an XP practice. For this reason, I think the organizers should facilitate this practice in future Cups.
Up to you
As Agile Cup is also an Agile project, new features will be available in the next version.
So I tell you: “See you next time, We will be back !”