We have seen the ChatRoulette, which is ... well ... kind of ... here around. My idea is completely different, but with the same portion of randomness. And it's for geeks.
Imagine the following process:
- you log into a platform
- you get connected to a random session to someone you don't know who's hiding behind a random alias - another geek
- you two get a task from a pool (more about it a little later) and 20 minutes to solve it. The task will be assigned based upon your skills (more about it a little later)
- If you solve the task, you two earn points. If you don't - you don't. In either case, the session is over and you can go on with another session or log out
Now, where would the tasks come from? I would suggest that the platform offers a feature to everybody to setup a task. Tasks could be:
- unit tested - immediate result - immediate points
- asynchronous - for complex questions or non-unit-testable languages or progs, so the author has to check the answers asynchronously
And so on. It's a game, but a technical one, and you can keep your brain busy and learn a lot - through solving problems in a short time, through team work and through asking precise questions so the corresponding problems can be solved within a short time.
That's the idea. And I would like to call it the DevRoulette. I would love to share this idea with the community, so comments, discussions, ideas etc. are very welcome. Interesting thing is the implementation aspect since it's not that trivial.
But by myself, I like the idea. Please forward it to your friends - maybe someone also likes it.
14 comments:
Well, seems a really competetive idea :) could be possible that we should use it as testplatform for our upcoming minos2 release to test its development capabilities...
Reminds me of http://vimeo.com/8630305
A good idea in principle. I knew a site with such challenges for single persons. Unfortunately I can't find the link right now...
@mknittig: if you mean "Stack Overflow", so it's no game, or at least it shouldn't be. It's a serious platform for people to get helped and to help. You also earn points there, but in the way you earn them on eBay. What I mean is a real gambling for professionals, a fun, a hunt.
Make people pay to play, and create a outsourcing company in India that adds tasks from real clients.. Double bonus!
No, I meant http://www.topcoder.com/ which is actually more like Odd Rune's idea...
Its a great idea - not entirely unlike StackOverflow. It would need a lot of thought around the edges and especially if it were to run users code in unit tests.
What's unique about this thing is the gambling pair factor - the random team. And I don't think it should be commercial or at least not for geeks - companies could pay for job offers if they like, but it's really just a game. It's fun to sit down in the evening and to hang out with a couple of guys you don't even know working on whatever weird programming tasks just training your brain and team skills. I really see it more like that.
Now about technology and scope: I think the first step could be the classic tasks or katas or whatever. Things like: write a prog which sorts this list in less than 100 ms and the prog must be max. 3 LOC or so (don't take this as a must - it's just an example). It should be possible to create a pool of such tasks out of gazilions of existing examples. Every task is backed by a unit test which checks all the required parameters: dynamic as well as static. This is not trivial, absolutely not, but hey, a game for geeks must even be quite a complex thing, right?
Next aspect is how the pair will communicate. I mean, either using their existing infrastructure (accounts and stuff) or fully anonymized. No idea here as yet :)
@Quamrana: great comment if you mean security aspects - a sandbox is needed to do that, or a 100% mocking of everything. As I mentioned, it's a discussion, yes, a *LOT* of thoughts is needed.
@Pavlo: The ultimate geekery / dogfooding / bootstrapping would be to build the site using itself!
@Quamrana: now that's a cool idea! The real challenge would be to define the first tasks, but why not?
Some thoughts on tasks: those, who setup tasks and corresponding unit tests, should also get rated. If a task cannot be solved in the given time or the unit test is wrong or whatever, the task owner gets downrated. For a good job the rating gets better. Voting is democratic - the geeks themself just vote for the task quality.
And a thought on sponsoring: wouldn't it be nice to read a job offer on the site saying: "we expect you to be good in Java, C# and to have a DevRoulette geek rating of 500"? :D
I like the idea... It would be amazing if you implement browser IDEs for "all" languages, so you can pair program without leaving the site... parallel editing will be very tricky too...
@Lucas: implement IDE... actually, in the first step it could be something like Google Docs where you just can type shared code in parallel. A real browser based IDE - maybe one day :)
Actually, a driver/co-driver mode could help avoid concurrency problems - a text area and a button to take over control like you would take over the keyboard...
Created a SourceForge project - just to have one :)
http://devroulette.sourceforge.net/
Post a Comment