[HN Gopher] An algorithm that blew up Italy's school system
___________________________________________________________________
An algorithm that blew up Italy's school system
Author : throwaway751
Score : 48 points
Date : 2023-09-01 14:59 UTC (8 hours ago)
(HTM) web link (algorithmwatch.org)
(TXT) w3m dump (algorithmwatch.org)
| st-keller wrote:
| Why do i read such stories at all? Now i can't tell, if it's the
| algorithm or the implementation or both and i'm left with more
| questions than before!
|
| Edit: typo
| jaclaz wrote:
| Seemingly it is implementation:
|
| >Why did such errors occur?
|
| >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.
| satellite2 wrote:
| 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.
| duskwuff wrote:
| > 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.
| basseq wrote:
| 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.)
| mistrial9 wrote:
| 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)
| morkalork wrote:
| 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.
| ghaff wrote:
| >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.
| gopher_space wrote:
| 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.
| ip26 wrote:
| 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
| pipes wrote:
| Deleted, risk of being identified by work mates!
| rileymat2 wrote:
| "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?
| b800h wrote:
| 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.
| lordnacho wrote:
| 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?
| bezout wrote:
| 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
| sam_lowry_ wrote:
| Smals to Belgium is pretty much what Sogei is to Italy. A
| government-controlled IT sweatshop.
| b800h wrote:
| It's a lot easier to clear capital expenditure than revenue
| expense.
| ip26 wrote:
| 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.
| rapsey wrote:
| Nah this is a government contract. It was definitely done by a
| consultancy for big money and zero effort and no
| accountability.
| [deleted]
| ghaff wrote:
| I suspect that anything which jiggers school times is going to
| attract a fairly large constituency that vocally hates the
| change. Boston went through this about 5 years ago.
| https://www.media.mit.edu/articles/what-the-boston-school-bu...
|
| 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.]
| duskwuff wrote:
| > I suspect that anything which jiggers school times
|
| That isn't what the article is about.
| escanor wrote:
| Who does that algorithm really serve?
| duskwuff wrote:
| 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.
| game_the0ry wrote:
| 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.
|
| [1] https://news.ycombinator.com/item?id=37121138
| mavamaarten wrote:
| You see it everywhere indeed.
|
| 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.
| SenAnder wrote:
| Find the _individuals_ who signed that contract, organize
| parent protests at their private homes.
| b800h wrote:
| 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.
| abracadaniel wrote:
| 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.
| bezout wrote:
| 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.
|
| [1]: https://www.wired.it/article/algoritmo-scuola-supplenze-
| mini...
| ip26 wrote:
| 5 million, at 100,000 euro comp per engineer and a 2x
| multiplier for total cost per head, that's only a team of 8 for
| three years.
|
| Not that more money would have fixed it, but good software is
| not some $200k affair.
|
| This program really could have used a small software
| verification team.
| layer8 wrote:
| I don't see what "Java 8 or an even older version of C#" has to
| to with the correctness of the algorithm or its implementation.
| bezout wrote:
| 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.
| layer8 wrote:
| 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.
___________________________________________________________________
(page generated 2023-09-01 23:01 UTC)