A question has been raised whether or not Ruby Challenge for Newbies should exist or not. The main concern is:
…today, probably due to lack of time or other commitments, not many experienced Rubyists are willing to set a Ruby challenge for the newbies
I guess many Rubysts DO want to set the challenges, but unfortunately very few people these days have enough time.
Another problem with such challenges is that they are somewhat “detached” from the real life. Though I am not saying they are not interesting or educating. Don’t get me wrong, definitely they ARE. But still, I guess, many people would love to see how Ruby should be used correctly (the Rubyish way) in real-world applications. Especially in web apps.
So if there is the problem trying to find new challenges, then either WE need to set up new challenges and recommend people who can do that or, if that is not possible, the challenge itself might need to be "converted" to something different.
It seems the latter is the better choice at this moment.
Having said that, I believe that a good challenge should have attributes:
- driven by people;
- not dependent on one person (though may be controlled by one or a group);
- winner(s) appointed by the people (though influenced by the owner/controller);
- collaborative;
- “shareable”;
- role-playing;
These are the ideas from the top of my head, but it is possible to play around those…
I personally feel like it brings us to the following idea of a challenge: Ruby Project Development challenge.
Somebody suggests an idea to implement (interesting web application, some kind of useful tool, etc). Then the challenge becomes a project that people have to deliver. There are main two roles in this challenge:
- product owners;
- development team.
The product owners group consists of number of people who do like the idea but may not have time, ability to develop that. This group decides where the development team is heading to, and negotiates the requirements.
The development team is a group of self-organised people who do the actual development. Multiple development teams may exist to develop the same application.
The duration for the challenge may vary from weeks to couple of months. The winner of the challenge is the person who gets most number of votes from either product owners/development team or both (not sure yet). If there are multiple teams – then the winning team may also be chosen.
So the process of the challenge would be something like this:
- Somebody comes up with a project idea.
- People join this project either as product owner or as development team.
- People get organised in couple of development teams and a couple of product owners if too many guys have joined.
- The countdown begins: product owners and development teams start working together (not necessarily at the same time).
- During the work people should be able to see what others do, and help each other to deliver the product.
- At the end of the challenge winners in following categories may be selected:
- best developer;
- best team;
- best team-mate;
- incredible inventor;
- etc
This of course is the basic idea, but it has sooo many variations.
So I propose the first challenge of this kind: Web applications supporting the challenge itself.