Recently, Kentucky had similar problems with algos and tech, but with bus routes. [1] And here I was thinking it was just an American problem.
Infuriating that children and education are being used as cash cows for the corrupt and incompetent - promise efficiency for the kids and system, deliver absolute shit for everyone, except the execs who got paid. Fucking evil.
Where I live, schools are starting to force everyone to buy or rent specific laptops from specific companies. The less financially-abled can't buy a good second hand laptop for cheap, the ones who can pay for them are scammed by high prices and shitty hardware. The company running the show is happy though, of course.
Please don’t encourage this. Last year, multiple Dutch politicians were threatened at their homes by protestors wielding torches, with some leaving politics out of fear for their families.
If you want to use your right to protest, do so without threatening people’s life and family.
I don’t think it’s a good thing to frighten people because you disagree with a policy they were a part of. There are other ways than harassing individuals for their role in public service.
If you change "peaceful protest" to "frighten people" and "corrupt giveaway to private company from parents' pockets" to "public service", then your position indeed sounds very reasonable.
Ask yourself - who should they protest? It was not "teachers" that failed them, or "the school", or "the school system" - it was the specific people who made the deal that parents can only purchase computers from a single private company.
Showing up at peoples houses is a direct threat to them as individuals and their family. Their place of work is elsewhere. Your perception of how they do their job is just that, but it is still public service - that’s the definition of working for a public entity. If it is corrupt, then sue them. We have laws covering corruption already that don’t require intimidation by mobs.
To your continued edits: they should protest the school administration at the school administration building, or the schools, sue them in court, etc. But leave them and their families alone.
Then showing up at their workplace is a direct threat to them as workers and their colleagues. And please stop conflating "peaceful protest of the contract signers" with "angry mob accosting children". Otherwise I will conflate "laptops from specific company" with "spyware-ridden laptops that pry into children's private lives and snoop on their conversations, selling that data to advertisers, future employers, and storing it indefinitely so it may be subpoena'd by the police".
I’m talking about how people feel where people protest outside their homes. When it’s at work they feel like they’re in some context where it’s appropriate and is related to their work, and they enjoy a certain amount of anonymity.
When people show at their homes and are protesting, it becomes deeply personal, and exposes their family who is not involved as targets.
Listen, I feel like you don’t get how people can feel intimidated by strangers protesting in front of their personal and individual home, their site of their sanctum and a private place of safety for them and their family. How in that context what would otherwise be protestors now feels like an angry mob. That’s ok you don’t, I guess, but I would suggest sitting back and thinking empathetically about the difference between our work milieu and our home milieu, and how you cross a line that divides these worlds when you protest their work at their home.
To your continued edits:
Please do conflate those. I am not in favor of the laptops or how they’re requisitioned. I’m saying don’t show up at peoples private homes to make your political points. It’s scary stuff that crosses a line. You might not see that, but I hope you can see how others might.
I’m happy to picket, which is generally done at the place of work. What does an angry mob yelling at their children and accosting them at home accomplish?
Interesting. My brother-in-law teaches in Bologna and has just been affected by this. He was literally just telling me about it 30 mins before I saw this here! The algo didn't match his first preference, then ditched him for subsequent matches.
The real kicker is that this article is from April and refers to the mess last year. Despite all the havoc, they proceeded to use it again, with predictable results.
That’s the outrageous part of it. They didn’t test it against historical data to find it performed worse. They deployed it at scale, rather than trial it in a small sample. They didn’t notice it leaving large numbers of teachers as “drop-outs” despite only being considered for one position. They didn’t move to correct it, when the problem was noticed. Then to top it all off, they did it again, knowing it does this. Absolutely absurd.
The way it works in Italy: the design and implementation of the algorithm in Java 8 or an even older version of C# was probably outsourced to one of the Big 4 consultancy companies.
A group of underpaid graduates was put together to crack the problem. All of them crammed for their algo & ds exam since that’s what the Italian university system incentivises so none of them did actually remember a thing about algorithm design. They googled a bunch of words and forked the first PoC they found on GitHub.
Everything was wrapped into a nice PowerPoint full of corporate BS and delivered to the government.
Edit: As expected, the algorithm was developed by a company owned by Dxc Technology [1] and Leonardo which is the Italian defence company. The contract was worth 5 million of euros.
Has everything to do with "we won't challenge the system and propose changing how we actually build software because doing so will lead to us losing the contract, so we'll build upon these antiquated frameworks that will become harder and harder to support and sweep the problem under the rug long enough for me to buy another $EXPENSIVE_THING"
From a technical perspective, this is a terrible approach.
From a "look, we all just want to make money here, right?" perspective, makes total sense.
It doesn’t. It’s not an attack on the programming languages. It’s just that they have a sweet spot for using old ass versions which might or might not have known vulnerabilities and they don’t care about updating it.
FYI, OpenJDK 8 still receives regular security updates and will continue to do so for at least three more years (Temurin, RedHat) (or, according to Oracle, until end of 2030). It’s still in production in a lot of places.
What is infuriating about this is that this should be a solved optimisation problem, but it has probably been outsourced on the cheap to some bog-standard web dev team who have tried to figure it out from first principles. It's a bit like trying to roll your own security.
What I don't get is why it would be outsourced at all. Run a team that manages the entire SDLC. If they mess it up, they are maintaining it and have a reason to solve the problem.
How did people manage to convince government that software is this one-time thing you just pay for and then it works forever?
To be fair some nations do have their software development teams. Italy has Sogei which is fully controlled by the Ministry of Economics. They had a reputation for developing crappy software but I heard they are getting better
PS: they were not involved in the development of this algorithm
Optimization is solved in the sense we have engines for it, but precisely defining the problem to be solved is not trivial, and the error described here could have been made within an established solver with the wrong specification.
>When the algorithm finds an ideal candidate for a position, it does not reset the list of remaining candidates before commencing the search to fill the next vacancy. Thus, those candidates who missed out on the first role that matched their preferences are definitively discarded from the pool of available teachers, with no possibility of employment. The algorithm classes those discarded teachers as “drop-outs”, ignoring the possibility of matching them with new vacancies.
And (possibly) also incorrect data:
>Often teachers input the wrong data on the system because of an interface that is not very transparent, complex and difficult to access. The scores can therefore already be distorted upstream, without taking into account human errors by the school offices.” Aspiring teachers often find themselves alone in facing complex procedures and error is often inevitable and sometimes irreparable.
That "drop out" concept just seems entirely wrong. Not only because its erroneously constricting the applicant pool, but because it strongly biases the earlier roles in the queue.
For example, consider two roles and two applicants, with fit scores as below:
Role 1 Role 2
----- ----- -----
Applicant A 96% 95%
Applicant B 95% 50%
Ignoring the "drop out" bug, under the algorithm described the system would evaluate all candidates for Role 1, determine Applicant A is the best, then move on. At that point, Applicant B is the best candidate for Role 2... even though they're not a very good one. Overall, not a great outcome (73% avg.).
You'd think the algorithm would want to maximize outcomes across all roles: the more optimal "best fit" solution would be Applicant B in Role 1 and Applicant A in Role 2 (95% avg).
(I'm assuming the reality here is that Role B isn't available at time of evaluation, so there's no way to evaluate the universe without waiting, which may be sub-optimal.)
at first glance the algorithm seems to reward compliance ("take whatever is offered") and severely penalize any teacher who insists on some placement (by refusing the first placement you are knocked out of the applicants, maybe for a long time)
Yes that's the explanation according to the article. But that seems sketchy. With such an algorithm the pool of potential candidates would quickly converge to 0. So I doubt the algorithm exactly does this.
> With such an algorithm the pool of potential candidates would quickly converge to 0.
From the sound of things, that may have been happening:
> Moreover, recruitment is not keeping pace with schools' need for teachers, thus leaving hundreds of classroom positions vacant which is affecting the educational progress of students all over Italy.
It could serve as a parable you'd tell a junior engineer interested writing algorithms that get applied to people's livelihood. Beware your own hubris, demonstrate or simulate results and show them to all stakeholders like the union, do controlled rollouts (why not start with 1 region in the country?), verify inputs that could be untrustworthy. Basically all the usual lessons one learns the first time they write an algo for people and it blows up in their face embarrassingly.
>demonstrate or simulate results and show them to all stakeholders
This is a very important point. Especially for any algorithm/policy change that affects people's pay, time off, scheduling, etc., it may seem like a reasonable change to you and to management but a lot of people will have a visceral reaction anyway. Not everyone may be happy at the end but it's important they're at least part of the process.
Define your expected optimization outcomes in plain human language, and verify them extensively in trials.
I can write some useful formal properties right here:
- there are n openings and m qualified applicants. At the end of assignment, there should be (m-n) applicants without a role.
- if (m>n), all roles should be filled
- if there are n identical average candidates and m identical ideal candidates, if there are p roles where (p>m), all ideal candidates should get a role
- every candidate not selected should be worse than every candidate selected
- every candidate not selected should have participated in n trials where n is the number of openings
- etc
But leetcode hiring implies we're looking for juniors to roll their own algos and call them recursively as part of the job. People hired this way could be walking time-bombs.
Which pretty much happens whenever you have self-perceived winners and losers with a policy change.
Not sure what the eventual outcome of that proposed change was.
[Oops. Meant to reply to another comment. But there are some similarities across algorithmic optimizations though it's not clear how much of the problem here was the algorithm vs. the implementation.]
Every business has to deal with the dilemma: Do we hire and support the people we need, or (if we are big enough) do we push down wages by abusing people and keeping them on edge?
In my experience, Texas Public Schools are more likely to hire the incompetent and compliant than the competent and hard-headed.
"Obviously the sales team told the customers that it provided the optimal seating arrangements, which is impossible to know."
At resturant sizes and constraints, I am surprised it grows prohibitive to generate a optimal or near optimal. Can you say more about the sizes or growth or problem?
From the sounds of it: no one, it's just bad. Teachers are passed over for jobs that they should be getting, schools are having difficulty filling teaching roles (and are probably paying extra for temporary teachers), and students are being instructed poorly by a revolving door of poorly qualified teachers. This isn't a zero-sum scenario; getting the right teachers into the right jobs makes everyone happier.
Infuriating that children and education are being used as cash cows for the corrupt and incompetent - promise efficiency for the kids and system, deliver absolute shit for everyone, except the execs who got paid. Fucking evil.
[1] https://news.ycombinator.com/item?id=37121138