What if developers were hired like football players?
— Juho Vepsäläinen (@bebraw) July 23, 2017
Juho Vepsäläinen asked this great question on Twitter a couple of months ago and I’ve been intrigued to answer it since.
If we want to answer this questions, we must first understand the dynamics how teams (represented by NFL) and players (NFL Players Association, NFLPA) work. First of all the rules by which teams and players work is defined by a HUGE 300 page Collective Bargaining Agreement, or CBA, which is re-negotiated every 5-10 years. The CBA defines all the rules related to recruiting new people, transferring or trading players, length of a season and holidays, minimum and maximum salaries et cetera.
National Software Development League
So let’s imagine all the IT companies in Finland belong to National Software Development League, or NSDL and all the players are represented by NSDL Developer Association, and they have forked the NFL CBA, which obscures our local IT CBA, and put their respective commits in.
The story of every developer starts from college, where flashy code and great results might get you a scholarship to university, where the developer has an opportunity to show his skills for the company scouts, who occasionally come to spectate university’s developer teams and their projects.
If young developer shows enough promise he could be drafted at Software Development Entry Draft, which would be held at the end of June each year. 100 most promising prospects would be invited to Draft Combine, where they would face different tasks such as reversing a binary tree on a white board and implementing a fizzbuzz algorithm. Companies can also interview junior developers during the Draft Combine. Based on scouting and results companies rank the graduating developers and form an ordered list of the developers.
And talking about the companies. There would be a fixed amount of them in Finland, and each of them would be located in a different city. Maybe largest cities could host couple of them, much like in ice hockey. Every time a new company would like to join the Developer League, they would need to pay a hefty sum for the other companies. They would come to share the same revenues after all.
When a developer is good enough to be drafted by an IT company, his career starts with a 3-year long entry level contract with the company that drafted him and is followed by 4-5 years of Restricted Free Agency period, during which the company owns rights of the developer and developer can not sign a deal with another IT company unless his rights are traded elsewhere. Developer also cannot do software development professionally without a contract, and for the first 7-8 years after university he is basically property of a company without much leverage against the employer.
The whole draft and RFA system is to protect the companies so that the amount of education and resources poured into junior developers does not go to waste when they would leave the company after learning all the skills the company has to offer. Entry level contracts usually have fixed salary and in some cases they include bonuses based on the developer’s performance. RFA deals also have lower salary than contracts signed as Unrestricted Free Agent, which is when developers can finally cash in.
If developer manages to stay in software development until he reaches UFA age, only then he is able to choose the company he wants to work at if they can agree on the terms. Sometimes the companies might not have room in their roster (let’s say every company can have 53 active developers + unlimited number of managers) or in their cap hit. Oh yeah, let’s talk about cap hit!
Cap hit is the ultimate amount of money a company can pay its developers during a programming season. Cap hit is determined each year based on the collective revenue of all the companies belonging to NSDL and the percentage agreed in the IT CBA. In our case developers as a group can have a maximum of 50 % of software development related revenue, but it can change when the CBA is renegotiated. That creates an interesting dilemma for the companies, since they cannot just sign 40 Super Programmers and pay them according to their value, since that would get them over the cap hit and thus unable to follow the rules. That’s why companies need to handle their cap hit and payroll wisely and have a proper mix of Super Programmers with high salary, upcoming star developers with entry level deals and cheaper support guys who do the grunt work.
Unless developer manages to negotiate No Trade or No Move Clause into his contract, he could be traded to any other company without further notice. I bet most of you readers would not be ready to tell your kids that daddy is moving again to a different city because some manager decided so. The reason could be so simple that your CEO thinks that you take too much cap space compared to the tickets you managed to resolve last week.
Let’s Do Some Math
15 IT companies in NSDL
53 Developers per company
120 000 € revenue per developer on average
6 360 000 € average revenue of a company
3 180 000 € cap hit for a company
60 000 € salary per developer if divided equally
In our example companies could allocate 60 000 € a year for one developer, which seems reasonable and in line what an actual software developer makes in Finland. One must take into account that those super starts probably make a lot more than that, and entry level deals would be in the range of 10 000 – 20 000 € per year. Also take these numbers with a grain of salt, since revenue would probably go way up with the demand, if there were only ~800 professional software developers in Finland.
I’m pretty sure Juho meant soccer and not American football in his question and that completely changes the situation. But nevertheless this is a fun thought experiment and only scratched the surface of the complex situation between employees and employers in one professional sport. We didn’t even get to the semi professional leagues and affiliation leagues, not to mention contract negotiation processes, performance bonuses and how to enter software development outside of entry draft. And what about women? Well, do you watch a lot of women’s football?
Yeah, I think we should be pretty happy about the current situation.