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