Candidate | Votes | Status | ||
---|---|---|---|---|
Implementation Patterns by Kent Beck |
![]() |
3.0 | (23.1%) | |
Domain Modeling Made Functional by Scott Wlaschin |
![]() |
2.0 | (15.4%) | |
Growing Object-Oriented Software, Guided by Tests by Steve Freeman & Nat Pryce |
![]() |
2.0 | (15.4%) | |
Learning Domain-Driven Design by Vlad Khononov |
![]() |
2.0 | (15.4%) | |
Effective Software Testing by Maurício Aniche |
![]() |
1.0 | (7.7%) | Defeated |
Java OOP Done Right by Alan Mellor |
![]() |
1.0 | (7.7%) | |
Refactoring (1st or 2nd Edition) 1st=Java, 2nd=JavaScript by Martin Fowler |
![]() |
1.0 | (7.7%) | |
Sustainable Software Architecture: Analyze and Reduce Technical Debt by Carola Lilienthal |
![]() |
1.0 | (7.7%) |
No candidate has the number of votes needed to guarantee victory (33.3%), so the last-place candidate (Effective Software Testing by Maurício Aniche) is eliminated. Ballots for that candidate are counted toward their next highest ranking.
Go to the next round.
Candidate | Votes | Status | ||
---|---|---|---|---|
Implementation Patterns by Kent Beck |
![]() |
3.0 | (23.1%) | |
Domain Modeling Made Functional by Scott Wlaschin |
![]() |
2.0 | (15.4%) | |
Growing Object-Oriented Software, Guided by Tests by Steve Freeman & Nat Pryce |
![]() |
3.0 | (23.1%) | |
Learning Domain-Driven Design by Vlad Khononov |
![]() |
2.0 | (15.4%) | |
Java OOP Done Right by Alan Mellor |
![]() |
1.0 | (7.7%) | |
Refactoring (1st or 2nd Edition) 1st=Java, 2nd=JavaScript by Martin Fowler |
![]() |
1.0 | (7.7%) | |
Sustainable Software Architecture: Analyze and Reduce Technical Debt by Carola Lilienthal |
![]() |
1.0 | (7.7%) | Defeated |
No candidate has the number of votes needed to guarantee victory (33.3%), so the last-place candidate (Sustainable Software Architecture: Analyze and Reduce Technical Debt by Carola Lilienthal) is eliminated. Ballots for that candidate are counted toward their next highest ranking.
Go to the next round.
Candidate | Votes | Status | ||
---|---|---|---|---|
Implementation Patterns by Kent Beck |
![]() |
3.0 | (23.1%) | |
Domain Modeling Made Functional by Scott Wlaschin |
![]() |
2.0 | (15.4%) | |
Growing Object-Oriented Software, Guided by Tests by Steve Freeman & Nat Pryce |
![]() |
3.0 | (23.1%) | |
Learning Domain-Driven Design by Vlad Khononov |
![]() |
3.0 | (23.1%) | |
Java OOP Done Right by Alan Mellor |
![]() |
1.0 | (7.7%) | Defeated |
Refactoring (1st or 2nd Edition) 1st=Java, 2nd=JavaScript by Martin Fowler |
![]() |
1.0 | (7.7%) |
No candidate has the number of votes needed to guarantee victory (33.3%), so the last-place candidate (Java OOP Done Right by Alan Mellor) is eliminated. Ballots for that candidate are counted toward their next highest ranking.
Go to the next round.
Candidate | Votes | Status | ||
---|---|---|---|---|
Implementation Patterns by Kent Beck |
![]() |
4.0 | (30.8%) | |
Domain Modeling Made Functional by Scott Wlaschin |
![]() |
2.0 | (15.4%) | |
Growing Object-Oriented Software, Guided by Tests by Steve Freeman & Nat Pryce |
![]() |
3.0 | (23.1%) | |
Learning Domain-Driven Design by Vlad Khononov |
![]() |
3.0 | (23.1%) | |
Refactoring (1st or 2nd Edition) 1st=Java, 2nd=JavaScript by Martin Fowler |
![]() |
1.0 | (7.7%) | Defeated |
No candidate has the number of votes needed to guarantee victory (33.3%), so the last-place candidate (Refactoring (1st or 2nd Edition) 1st=Java, 2nd=JavaScript by Martin Fowler) is eliminated. Ballots for that candidate are counted toward their next highest ranking.
Go to the next round.
Candidate | Votes | Status | |||
---|---|---|---|---|---|
Implementation Patterns by Kent Beck |
![]() |
5.0 | (38.5%) | Elected | |
Domain Modeling Made Functional by Scott Wlaschin |
![]() |
2.0 | (15.4%) | ||
Growing Object-Oriented Software, Guided by Tests by Steve Freeman & Nat Pryce |
![]() |
3.0 | (23.1%) | ||
Learning Domain-Driven Design by Vlad Khononov |
![]() |
3.0 | (23.1%) |
Implementation Patterns by Kent Beck has enough votes to guarantee victory (33.3%) and is declared a winner.To ensure that everyone's vote counts equally, votes that exceed that threshold are counted toward their next highest ranking (this is actually done by counting a fraction of ballots cast for the winning candidate).
Go to the next round.
Candidate | Votes | Status | ||
---|---|---|---|---|
Implementation Patterns by Kent Beck |
![]() |
4.3 | (33.3%) | |
Domain Modeling Made Functional by Scott Wlaschin |
![]() |
2.0 | (15.4%) | Defeated |
Growing Object-Oriented Software, Guided by Tests by Steve Freeman & Nat Pryce |
![]() |
3.7 | (28.2%) | |
Learning Domain-Driven Design by Vlad Khononov |
![]() |
3.0 | (23.1%) |
No candidate has the number of votes needed to guarantee victory (33.3%), so the last-place candidate (Domain Modeling Made Functional by Scott Wlaschin) is eliminated. Ballots for that candidate are counted toward their next highest ranking.
Go to the next round.
Candidate | Votes | Status | ||
---|---|---|---|---|
Implementation Patterns by Kent Beck |
![]() |
4.3 | (33.3%) | |
Growing Object-Oriented Software, Guided by Tests by Steve Freeman & Nat Pryce |
![]() |
5.7 | (43.6%) | |
Learning Domain-Driven Design by Vlad Khononov |
![]() |
3.0 | (23.1%) | Defeated |
No candidate has the number of votes needed to guarantee victory (33.3%), so the last-place candidate (Learning Domain-Driven Design by Vlad Khononov) is eliminated. Ballots for that candidate are counted toward their next highest ranking.
Go to the next round.
Candidate | Votes | Status | |||
---|---|---|---|---|---|
Implementation Patterns by Kent Beck |
![]() |
6.3 | (48.7%) | ||
Growing Object-Oriented Software, Guided by Tests by Steve Freeman & Nat Pryce |
![]() |
6.7 | (51.3%) | Elected |
Growing Object-Oriented Software, Guided by Tests by Steve Freeman & Nat Pryce has enough votes to guarantee victory (33.3%) and is declared a winner.To ensure that everyone's vote counts equally, votes that exceed that threshold are counted toward their next highest ranking (this is actually done by counting a fraction of ballots cast for the winning candidate).
Go to the next round.
Candidate | Votes | Status | ||
---|---|---|---|---|
Implementation Patterns by Kent Beck |
![]() |
6.5 | (50.0%) | Elected |
Growing Object-Oriented Software, Guided by Tests by Steve Freeman & Nat Pryce |
![]() |
6.5 | (50.0%) | Elected |
At this point, the number of remaining candidates equals the number of remaining seats, so the remaining candidates are declared elected.
In the end, 100% of all cast ballots counted toward a winner. This compares to 38.5% if only the first-round votes were used. You should be able to see that the winners have a more equal mandate in the final round than in the first round.
Note that even the "highest first-round votes" method is more democratic than most methods used in US public elections: the "vote for 2" method, which allows the largest block of voters to dominate, and the district method, where choices are restricted to the one or two viable candidates within geographical boundaries drawn by the politicians in office.
Also, view the Ballot Depth info to see how much lower rankings contributed to the tally.
This shows how much the lower rankings on ballots contributed to the winning candidates.
Rank | Fraction of votes for winners | ||
---|---|---|---|
1st |
![]() |
38.5% | |
2nd |
![]() |
24.4% | |
3rd |
![]() |
9.0% | |
4th |
![]() |
12.8% | |
10th |
![]() |
7.7% | |
13th |
![]() |
7.7% |