2009-06-28

Lessons learned: Quality of developed software & Programming challenges

Recently, I arranged a programming challenge that attracted some attention. Since I made an announcement on comp.lang.c++ on Usenet, most of the entries so far came from there. I also made an entry on Hacker News. The challenge was about counting frequencies of letters in a large text file, timing the execution time and then I compared the times between the entrants.

It was the first challenge that I arranged like this and of course there are lessons to be learned about how to arrange such a thing. There are noticeable similarities between arranging such a programming challenge and assuring quality of developed software that I would like to write in this post.

So, what follows is simply a list that compares the similarities that I found. All comments and suggestions for improvements are of course welcome. Make your voice heard in a comment!

Arranging Challenges Ensuring Quality
How is an entry judged, i.e. what is benchmarked in the challenge? (E.g. CPU time?, I/O? Startup time?) What are the functional and non-functional requirements from the stakeholders on the developed software?
What compiler, what version and what compiler options should be used when compiling an entry to the contest? What environment is the developed software supposed to work in?
Are there any special circumstances that have an impact on judging the challenge? E.g. Should the computer be freshly rebooted before starting a contest entry? Are there any requirements (from the stakeholders to the developed software) on the state of the machine to contain the developed software?
Be sure to completely and ambiguously specify input and output from an entry to the programming challenge. Specific requirements on the input/output to/from the software to develop are important to specify, together with all stakeholders.

0 kommentarer:

Post a Comment