I read this insightful, funny blog post by Jeff Atwood of Coding Horror – How to Motivate Programmers. Jeff says, and it’s so true –
Don’t race sheep, don’t herd race horses.
Best way to motivate best programmers is to ignite a little friendly competition. It immediately got me thinking.
It would be so cool to have a programming competition in my dream organization. I would like to call it Code Fight competition. Let me dream up an invitation to enter this competition.
— Code Fight competition 2011 —
Are you bored by day to day job and want to develop a cool, exciting application all on your own? Well, here is your chance to unleash the beast and win 1000$. We are hosting a company wide Code Fight competition. We invite all developers to enter this competition.
Competition deadline is ABC date. You have 2 months (till ABC date) to conceptualize, design and develop your application. On ABC date, all the entries will be made available for company wide evaluation. Winner will be decided by public voting/scoring. Entry with maximum score will be the Winner. Anyone can download, evaluate and give scores for all the projects for following evaluation criteria –
- Concept – how simple, useful, innovative the application concept is?
- Usability – Is the user interface simple to use, intuitive, uncluttered?
- Code design – how good do you think the architecture is? Is code modular enough? OOP concepts followed? Coding best practices used?
- Code clarity – One year down the line, if you are asked to maintain this project, how comfortable do you think would you be? Does the code look clean, properly commented? how easy is the code to understand?
Each criteria can be given score against 10, so each evaluator is giving score out of 40.
We will host a Code Fight competition event on deadline ABC date. Each competitor will get a chance to do 5 minute presentation about their project. Goal of the presentation is to excite the crowd about your application and entice them to download and evaluate your project.
Competition rules –
- To enter the competition, you are required to submit your entry within 8 days by XYZ date. All entries after XYZ date will be rejected.
- You can enter individually or as a team. In case of team, prize will be equally distributed among team members.
- You can choose any idea of your choice and implement it. Generally you want to be useful (to someone), because that is one of the factors you will be evaluated against. If it is useful for use inside our company, all the more better.
- You can devote 20% of your weekly time to the project, for the duration of this competition. Of course, you are all the welcome to use your personal time.
- Required base database should be included with the downloadable code base. Try to organize project files, resources in a way that makes it easy for anyone to quickly setup application on their machine. Provide installation instructions text file. Remember, the easier you make it to install your app code base, the more you increase your chances to get good marks.
- etc. etc.
— End —
Occasionally, late/last minute entries can also be permitted on case by case basis, but this point will not be publicly declared. I’m still not sure if cash prize is a good idea, or some cool geeky device such as i-phone or few days of PTO, etc.
I know there are a lot of rough edges around this idea. It needs lot of improvements on competition rules, evaluation criteria, possible prizes, etc.
What do you think about this idea? Do you have any comments, suggestions? You are free to use this idea (I know it’s not all original any way) in your organization/company. But please let me know how did the event go, will you?