This is a mobile version, full one is here.
24 October 2017
Software Quality Award, 2018
This is the forth year of the Software Quality Award. The prize is still the same—$4,096. The rules are still the same. Read on. Previous years are here: 2015, 2016, 2017.
One person can submit only one project.
Submissions are accepted until September 1, 2018.
I will check the commit history to make sure you’re the main contributor to the project.
I reserve the right to reject any submission without explanation.
All submissions will be published on this page (including rejected ones).
Results will be announced October 15, 2018 on this page and by email.
The best project will receive $4,096 (I may split this amount among a few projects).
Final decisions will be made by me and are not negotiable (although I may invite other people to help me make the right decision).
Winners that received any cash prizes in previous years can’t submit again.
Each project must be:
Open source (in GitHub).
At least 10,000 lines of code (
clocwithout any arguments).
At least one year old.
Object-oriented (that’s the only thing I understand).
The best project is selected using this criteria.
What doesn’t matter:
Popularity. Even if nobody is using your product, it is still eligible for this award. I don’t care about popularity; quality is the key.
Programming language. I believe that any language, used correctly, can be applied to design a high-quality product.
Buzz and trends. Even if your project is yet another parser of command line arguments, it’s still eligible for the award. I don’t care about your marketing position; quality is all.
By the way, if you want to sponsor this award and increase the bonus, email me.
There were 49 projects submitted (in alphabetic order):
These kind people helped me review them: Ziyavuddin Vakhobov (10), Filipe Freire (10), Vedran Vatavuk (9), Silas Reinagel (7), Paulo Lobo (6), Sergey Kapralov (3), Vytautas Žurauskas (3), Alexey Semenyuk (1).
This is the summary of everything they sent me: award-2018.txt. I will pick the winner in the next few days, stay tuned!
This time I paid a lot of attention to what reviewers were saying. Obvious show stoppers for me where:
- Absence of CI
- Absence of releases
- Absence of issues and pull requests
- Absence of static analysis
- Absence of unit tests and/or coverage control
- Presence of NULL
- Presence of static methods and/or utility classes
- Presence of global variables of functions
Because of that, many projects were ruled out (they are at the bottom of the text file). There are three sections in the text file. The first one is the hot list, which I reviewed myself. The second one contains those projects I liked, but decided not to put into the hot list. The last section contains repositories, which seem to happen in the competition by mistake.
I have to say that this year the projects I see are much more disciplined and organized, comparing to what I’ve seen in previous years. Is it the achievement of this competition? I’m not sure, but I’m glad to see what I see.
This is my short-list:
pmed/v8pp(C++, 5.6K LoC, 27K HoC): 6
shlinkio/shlink(PHP, 12K LoC, 42K HoC): 6
FindMyFriends/api(PHP, 19K LoC, 152K HoC): 6
sql-boot/sql-boot(Java, 4.3K LoC, 110K HoC): 6
driver733/VK-Uploader(Java, 10.5 LoC, 37K HoC): 8
dgroup/docker-unittests(Java, 5.7K LoC, 38K HoC): 8
HDouss/jeometry(Java, 9.7K LoC, 28K HoC): 7
onqtam/doctest(C++, 15K LoC, 113K HoC): 6
ribtoks/xpiks(C++, 430K LoC, 965K HoC): 6
Some projects in the list are indeed smaller than the required threshold of 10K lines of code. However, their hits-of-code metrics are rather high and the quality of code is high too, that’s why I decided to keep them in the list. Moreover, starting next year the threshold will be lowered down to 4K LoC and 16K HoC. So, we have ten finalists. A more detailed review of each of them you can find in the text file.
There are two winners this year. I decided to distribute $3K this year, unevenly
@driver733 gets $2K since
his project is obviously the best this year.
$1K since his project is smaller than the threshold, but it’s still a good repo.
You may ask why I excluded some other small projects from the competition, but left
those few in the hot list. The answer is simple: I liked them and didn’t like
the others. I do realize that the rules were supposed to be strict, but still.
Consider this $1K to
@dgroup—a cheering up bonus.
Thus, congratulations to
Here are your badges:
Put this code into GitHub
??? with your GitHub name in the URL):
<a href="https://www.yegor256.com/2017/10/24/award-2018.html"> <img src="//www.yegor256.com/images/award/2017/winner-???.png" style="height:45px;" alt='Winner Badge'/></a>
Please, email me to collect your money.
Thanks to everybody for your participation! See you next year.