Friday, December 21, 2012

Lisbon Treaty voting system: WIN^27 situation

I have recently become puzzled by a simple question. Does the Lisbon Treaty actually weaken the position of the Czech Republic in the Council of the European Union compared to the Treaty of Nice? I therefore went ahead and studied both, actually all three, basic variants of the voting system: the plain Nice voting system, the extended Nice voting system when a member state wants to bring the population share criterion in, and the Lisbon voting system. Besides some basic observations, I could not come to a general conclusion as I was able to find scenarios in which a member state both won and lost, depending on the treaty in use.

I clearly needed to consider all possibilities and evaluate them to be able to come with a clear judgement. Given there are currently 27 member states, there are exactly 2^27, or 134217728, different votes in which all member states participate and vote either for or against the proposal. This is still a small enough problem space for the modern computer equipment to exhaustively explore in a reasonable amount of time so I went ahead and constructed a small Python script which goes through all possible votes and evaluates them with respect to all three considered voting systems and the interest of the state from whose perspective the evaluation is made. I soon realized I can compute the results for all member states, not only for Czech Republic. Here are the results.

Member state Votes (Nice) Votes share (Nice) Population share Wins (Nice) Wins (Nice+) Wins (Lisbon) Lisbon improvement
Austria 10 2,90% 1,67% 67980524 67980509 70037478 1,53%
Belgium 12 3,48% 2,17% 68147346 68147331 70380860 1,66%
Bulgaria 10 2,90% 1,49% 67980524 67980509 69914262 1,44%
Cyprus 4 1,16% 0,16% 67461254 67461241 68996390 1,14%
Czech Republic 12 3,48% 2,10% 68147346 68147331 70332762 1,63%
Denmark 7 2,03% 1,11% 67723582 67723567 69653426 1,44%
Estonia 4 1,16% 0,27% 67461254 67461241 69071824 1,20%
Finland 7 2,03% 1,70% 67723582 67723567 69625576 1,42%
France 29 8,41% 12,95% 69302512 69302519 77686128 6,25%
Germany 29 8,41% 16,27% 69302512 69302527 80252488 8,16%
Greece 12 3,48% 2,25% 68147346 68147331 70436030 1,71%
Hungary 12 3,48% 1,99% 68147346 68147331 70257314 1,57%
Ireland 7 2,03% 1,70% 67723582 67723567 69625852 1,42%
Italy 29 8,41% 12,70% 69302512 69302505 77037338 5,76%
Latvia 4 1,16% 0,44% 67461254 67461243 69189842 1,29%
Lithuania 7 2,03% 0,65% 67723582 67723567 69335640 1,20%
Luxembourg 4 1,16% 0,10% 67461254 67461241 68955580 1,11%
Malta 3 0,87% 0,08% 67374448 67374441 68939830 1,17%
Netherlands 13 3,77% 3,31% 68228986 68228971 71165244 2,19%
Poland 27 7,83% 7,60% 69200228 69200213 73490170 3,20%
Portugal 12 3,48% 2,12% 68147346 68147331 70345358 1,64%
Romania 14 4,06% 4,26% 68309352 68309337 71839368 2,63%
Slovakia 7 2,03% 1,80% 67723582 67723567 69631656 1,42%
Slovenia 4 1,16% 0,41% 67461254 67461243 69168020 1,27%
Spain 27 7,83% 9,18% 69200228 69200231 74883076 4,23%
Sweden 10 2,90% 1,87% 67980524 67980509 70173958 1,63%
United Kingdom 29 8,41% 12,43% 69302512 69302509 77295044 5,95%

Note that there are also votes in which not all member states participate due to an opt-out from some policy area or in which some member states abstain from the vote. I did not consider this in my simulation as the problem space would significantly increase in size to 3^27, or 7625597484987, and thus make the simulation unacceptably long. Moreover, the voting systems tend to get complex when this situation occurs. Also note that for the sake of simulation, my script assumed rules that apply for Commission proposals. Proposals not initiated by the Commission need to meet stronger criteria than ordinary proposals.

As for the results, the chart above clearly shows that all member states will benefit from the transition to the Lisbon Treaty voting system in 2014/2017 as they will win the vote in more cases. Winning the vote in this case means that the proposal is accepted when the state votes in favor of it and rejected when it votes against the proposal. The table does not indicate whether the won votes for the proposal prevail over the won votes against the proposal or vice versa. The table also shows that the benefit is smaller for smaller states and bigger for bigger states.

There is one small trouble with the result. Even though the Lisbon Treaty comes out victorious from this comparison, we don't know which are the important votes so even though all member states win the majority of votes, the really important ones may fall into the lost minority. To solve this problem, we would need to know in advance what are the essential proposals and how will the member states vote on each of them. The possession of such knowledge would, however, be equivalent to having a magical crystal ball. For the time being, the purely statistical outlook will need to suffice.

Tuesday, December 4, 2012

HelenOS and getting a job

It has become an increasingly common pattern that a recruiter from a global software company keeps track of people who had previously worked on and contributed to some HelenOS project, and tries to hire them. I think we can even go as far as saying that some recruiters have a special weakness for the HelenOS team. I have figured this out only recently from the various anecdotes people tell during the project meetings and, frankly, I am glad that work on HelenOS can be at the beginning of the process of getting a new job for somebody.

It doesn't take a recruiter who is already familiar with HelenOS and your work on it to get a job in our industry. You can use your HelenOS experience and track record from your own initiative. The purpose of this blog post is to encourage you - our contemporary and former contributors - to use your HelenOS achievements as a leverage during your interviews.

I have obviously done the same thing in the past during my own interviews. My overall impression then was that perhaps I had not been stressing the value of my HelenOS experience strongly enough or that the interviewer had tendencies to dismiss it as some sort of a school project. In a hindsight, I wish I had been advocating with greater confidence. Anyway, I have good reasons to believe that HelenOS has already helped me to get two nice jobs (yeah, the interviewers who didn't get it were from some of the companies for which I did not end up working, naturally).

Here are some things to consider when being in the position of the interviewee (and, as it reportedly already happened, also the interviewer):

  • HelenOS has long since outgrown the status of a school project; Ohloh estimates that it would take roughly 131 person-years to recreate HelenOS. Despite some slight duplicities in this figure resulting from the repository switch in the middle of 2009, and given that the vast majority of its code was written from scratch directly by us, this is a heck of an achievement. Do not hesitate to claim your part.
  • HelenOS is evolving rapidly as more and more developers continue to improve it. The HelenOS of yesterday is not the HelenOS of today and certainly not of tomorrow. Do not shoot yourself in the foot by dismissing your or someone else's contribution to it, or, even the project as a whole.
  • As a base operating system, HelenOS has the inherent problem with the visibility of its qualities. If a system, no matter how sophisticated and complex it may internally be, does not produce lots of noise and visual effects, it may be difficult to explain to someone that there is something interesting going on under the hood. This effect is reinforced by the fact that we are not composing the system from existing parts, but basically redesigning it from scratch. Be prepared to present your contribution to HelenOS and HelenOS itself in an appropriate way.
  • When your interviewer appears to be a dismissive one, try to use some of the argumentation from above. Also remember that interviewers are mere human beings with limited professional experience. It may happen that your interviewer will be Linus Torvalds or Jeff Bonwick himself, but chances for this are rather low. Even if, despite the odds, that turns out to be the case, you should still boldly go on with your HelenOS story. Which is more probable, your interviewer will have some experience with a couple of software components of some greater whole and thus will have a comparable set of experience as you (depending on the number of HelenOS projects standing behind you). There will also be cases when your interviewer will not be a match  for you and your HelenOS experience. The bottom line of this is not to let the interviewer dismiss your experience only because his company makes or contributes to some high profile software project, has some customers and earns lot of money.
  • Have you made your HelenOS contributions when you were a student? So what, this fact should not disqualify neither you nor your experience. To the contrary, participation in the development of HelenOS should have taught you to work in a loosely knit team of other developers and obey certain rules. Let's make this an advantage.
In closing, let me say that standing firmly behind your HelenOS achievements during an interview can have a positive effect on your employment and also on the general awareness about HelenOS. Why not use the leverage as efficiently as possible when it is available?