Live data from Hacker News

Whistleblowers: Software keeping inmates in Arizona prisons beyond release dates

kjzz.org

421–430 of 434 posts

Re: Whistleblowers: Software keeping inmates in Arizona prisons beyond release dates

#421

"Software Bug Keeping Hundreds of Inmates in Arizona Prisons Beyond Release Dates" - No, it is bureaucracy and corruption that is Keeping Hundreds of Inmates in Arizona Prisons Beyond Release Dates, and anyone who has the remotest idea about how such contracts are awarded knows why.

How are such contracts awarded? Would you have time to explain?

I was just thinking that the executives at the prison, are clueless about software, and likely couldn't hire a competent consultancy agency, even if they wanted to.

And also, that the prison execs anyway are generally ok with bugs like this one — which keeps people longer in prison. I presume the prisons make more money, with more prisoners. (Although now some prison staff need to do extra manual work, but someone wrote elsewhere that that was only for squeaky wheels prisoners, i.e. those who knew enough to complain.)

And maybe the consultancy agency prefers to build software that actually never starts working completely, so they can continue billing the prisons forever?

It's a bit as if the prisons, and the consultancy agency, cooperated with each other, both of them making money, by exploiting the defenseless prisoners?

Was what I was thinking.

What are your thoughts?

Re: Whistleblowers: Software keeping inmates in Arizona prisons beyond release dates

#422

Earlier quoted context omitted.

I heard that relatively smart govs stopped doing stuff like this that the outsource whole projects, but now they "borrow" programmers e.g "give me 20 programmers with higher edu and 5 years of experience" and we will lead this project. but I'm not sure how's the reality.

Sounds like a good way to get unmotivated programmers who sit around drinking coffee all day and not doing any work, because hey - the longer this project takes, the more bonus our employer gives us!

What makes you think so?

Re: Whistleblowers: Software keeping inmates in Arizona prisons beyond release dates

#423
post #419
post #416

Earlier quoted context omitted.

> You can’t teach a computer to see the “gestalt” of a situation like that. That's not necessary. You can teach a computer to recognize anomalies and route those to humans. Repeated failures is an obvious one. > A computer’s “instinct”, meanwhile, when generating a low-confidence classification output, is to just still generate that output That's a poorly designed system. Human failure.

All systems are poorly designed. There is no perfect system. But the default failure state of AI not predictively accounting for a case is making a bad decision ; while the failure state of a “cybernetic expert system” not predictively accounting for a case is stalling in confusion and asking for more input . Usually, stalling in confusion and asking for more input is exactly what we want. You don’t want an undertrai…

I don't know what you mean by "pure-AI systems." I work in this field and have many times implemented a review in the loop, or a route for review. It's an old technique, predating computers.

https://en.m.wikipedia.org/wiki/Dead_letter_mail

Re: Whistleblowers: Software keeping inmates in Arizona prisons beyond release dates

#424

That article just kept getting worse and worse. They mention assigning a penalty to the wrong inmate and they couldn't fix it. All of a sudden that person could no longer make calls for 30 days, and they did nothing wrong to get that.

“Show me the incentives, I’ll show you the outcome.” If corrections staff were held personally liable for these failures, or the local jurisdiction faced steep financial penalties, it wouldn’t happen. No liability, no responsibility.

> "Show me the incentives, I’ll show you the outcome."

That is spot on, and generalizes well.

"iot vendors make post-sales money if they collect data from their device"

"phone vendors make money if they bundle terrible apps with their phone"

"robocallers make lots of money, with historically no fines paid out for violations"

Re: Whistleblowers: Software keeping inmates in Arizona prisons beyond release dates

#425
post #309

Earlier quoted context omitted.

Would you blame the people who paid for the bridge for the collapse? Should they have understood the details and flagged where corners were cut. When it comes to critical system I think it's fair to say that the engineers who build it are the only ones who can fully understand the risk. This is the point behind accreditation. It forces the supplier to maintain a minimum bar for services to protect the reputation of t…

In real life the engineers don't police themselves. Before a bridge, house or even patio deck with a foundation is used a safety inspector needs to give approval.

Are safety inspectors intended to validate the design of a bridge? Or just that construction and materials are up to spec?

Re: Whistleblowers: Software keeping inmates in Arizona prisons beyond release dates

#426
post #28

Earlier quoted context omitted.

It's the problem with silver bullets like YAGNI: Laws change, if your system is dependent on laws, then you can be sure that new rules will need to be added. You need a system that is configurable, you can be sure you are going to need it. Of course, if there's money to be made in having a change-resistant system, well that's a different story. YAGNIAYWPTTNFI (You ARE gonna need it, and you will pay through the nose…

YAGNI just means that you don’t know how the laws are going to change. All the configurability you add is just going to make the system more expensive and even harder to change the day when the laws are changed, and it wasn’t anything you thought of. And no one is ever using all your nice switches.

Yes and no. It's a bit like saying "Oh, I didn't know it was going to rain - it was lovely and sunny outside when I wrote the code".

A big (some might say forgotten) part of the procurement and development process is research - know your customer, know your market, know your niche.

In this case, that includes

- know how prisons work

- know how the system will be administered

- know how recent law changes might be handled by the system

- know how often prisoners need / deserve workarounds

- know how quickly law changes need to be reflected in code

Also, I'm not saying that the user interface needs to contain this. But we should always advocate for modular systems that are easy to maintain through addition, rather than through re-writes.

If it is genuinely difficult to add a new type of inmate release schedule, then that is poor planning.

But again, I'm not necessarily subscribing to that theory. Money is involved, so facts are in the eye of the sales team.

But I'm also not not subscribing to that theory.

Re: Whistleblowers: Software keeping inmates in Arizona prisons beyond release dates

#427
post #40

Earlier quoted context omitted.

It's the problem with silver bullets like YAGNI: Laws change, if your system is dependent on laws, then you can be sure that new rules will need to be added. You need a system that is configurable, you can be sure you are going to need it. Of course, if there's money to be made in having a change-resistant system, well that's a different story. YAGNIAYWPTTNFI (You ARE gonna need it, and you will pay through the nose…

> if your system is dependent on laws, then you can be sure that new rules will need to be added. You need a system that is configurable, you can be sure you are going to need it. This doesn’t violate YAGNI. 1. You’d have to know in advance what the scope of rule changes would be in order to implement the configuration system. Human laws do not fit this constraint. 2. You’d also need a way to prove that the configura…

1. Yes. A subset of human legal history would give you that information. You could argue they did that, just chose the wrong subset.

From a planning perspective though, it isn't the rule changes that are the problem; it's the types of input. For example, if you write a system that says "Given X class of crime, and they were convicted in year Y, and Z much time already incarcerated, return f(X, Y, Z) days left". If you can build all your rules around that, that's great.

If you then say "Oh, but for crimes a, b and d, we need to take into account some measure of inmate behaviour" - you now need to incorporate a whole new path from that data point to your decider, and all these functions need to accept this information and either use it or discard it - and that might take some time. (I should insert a discussion about monads as a design pattern that would simplify this code and remove this excuse... but we'll assume ignorance of that for now)

So the question is whether this is some new datapoint that they should have already expected. Maybe it wasn't - but if that's the case, then they definitely looked at the wrong subset of legal history.

2. and 3. are moot points in my opinion. Your configuration system is the basis for all your existing rules. They already have multiple rules, so they have a baseline for saying that the configuration system is sound. If your configuration system fails to properly account for unused datapoints, then fine. But as I mention elsewhere, configurability doesn't necessarily mean end-user configurability. A well-written system should not be resistant to change.

Re: Whistleblowers: Software keeping inmates in Arizona prisons beyond release dates

#428

Earlier quoted context omitted.

That is horse shit and we all know it. What bug takes 2k hours???? thats 250 work days. jesus christ, if I took that long to fix a bug, fire me. And yes, I'm also talking about time to test, write/fix unit tests, write/fix integration tests, releasing into production, and data conversion.

Look at the description of the issue. It's really less of a bug and more of a feature request, in the sense that the legislature changed the rules for how "earned release credits" could be calculated. All of the details are here: https://corrections.az.gov/sites/default/files/documents/PDF... . Previously, it seems like there was a single standard, applied universally: 1 day of earned release credit for every 6 days…

Totally agree. Looking at this, it is substantially more complicated than it was before.

I'm guessing up til now, the days of time off earned was done in real time. Basically all you need is the day they entered, divide by 6 and truncate and there's your days. If there are infractions that cost days, you could still probably do it in a single SQL query.

This new system will have to know what kind of crime they committed, which might mean integrating with some byzantine government software from the 90s that looks like it's from the 70s. Previously they only really needed the prison system's records, which may or may not include their past crimes.

I'm guessing they're worried the integration won't be as easy as proposed. I wouldn't be surprised if it takes a month just to get the dev access to everything. I might even be surprised if it was that short.

Re: Whistleblowers: Software keeping inmates in Arizona prisons beyond release dates

#429
post #423
post #419

Earlier quoted context omitted.

All systems are poorly designed. There is no perfect system. But the default failure state of AI not predictively accounting for a case is making a bad decision ; while the failure state of a “cybernetic expert system” not predictively accounting for a case is stalling in confusion and asking for more input . Usually, stalling in confusion and asking for more input is exactly what we want. You don’t want an undertrai…

I don't know what you mean by "pure-AI systems." I work in this field and have many times implemented a review in the loop, or a route for review. It's an old technique, predating computers. https://en.m.wikipedia.org/wiki/Dead_letter_mail

A "pure-AI system" is a fully-autonomous ML expert system. For example, a spam classifier. In these systems, humans are never brought into the loop at decision-making time — instead, the model makes a decision, acts, and then humans have to deal with the consequences of "dumb" actions (e.g. by looking through their spam folders for false positives) — acting later to reverse the model's action, rather than the model pausing to allow the human to subsume it. This later reversal ("mark as not spam") may train the model; but the model still did a dumb thing at the time, that may have had lasting consequences ("sorry, I didn't get your message, it went to spam") that could have been avoided if the model itself could "choose to not act", emitting a "NULL" result that would crash any workflow-engine it's embedded within unless it gets subsumed by a non-NULL decision further up the chain.

Yes, I'm certain that training ML models to separately classify low-confidence outputs, and getting a human in the loop to handle these cases, is a well-known technique in ML-participant business workflow engine design. But I'm not talking about ML-participant business workflow engine design; I'm talking about the lower-level of raw ML-model architecture. I'm talking about adversarial systems component design here: trying to create ML model architectures which assume the business-workflow-engine designer is an idiot or malfeasant, and which force the designer to do the right thing whether they like it or not. (Because, well, look at most existing workflow systems. Is this design technique really as "well-known" as you say? It's certainly not universal; let alone considered part of the Engineering "duty and responsibility" of Systems Engineers—the things they, as Engineers, have to check for in order to sign off on the system; the things they'd be considered malfeasant Engineers if they forget about.)

What I'm saying is that it would be sensible to have models for which it is impossible to ask them to make a purely enumerative classification with no option for "I don't know" or "this seems like an exceptional category that I recognize, but where I haven't been trained well-enough to know what answer I should give about it." Models that automatically train "I don't know" states into themselves — or rather, where every high-confidence output state of the system "evolves out of" a base "I don't know" state, such that not just weird input, but also weird combinations of normal input that were unseen in the training data, result in "I don't know." (This is unlike current ML linear approximators, where you'll never see a model that is high-confidence about all the individual elements of something, but low-confidence about the combination of those elements. Your spam filtering engine should be confused the first time it sees GTUBE and the hacked-in algorithmic part of it says "1.0 confidence, that's spam." It should be confused by its own confidence in the face of no individual elements firing. You should have to train it that that's an allowed thing to happen—because in almost all other situations where that would happen, it'd be a bug!)

Ideally, while I'm dreaming, the model itself would also have a sort of online pseudo-training where it is fed back the business-workflow process result of its outputs — not to learn from them, but rather to act as a self-check on the higher-level workflow process (like line-of-duty humans do!) where the model would "get upset" and refuse to operate further, if the higher-level process is treating the model's "I don't know" signals no differently than its high-confidence signals (i.e. if it's bucketing "I don't know" as if it meant the same as some specific category, 100% of the time.) Essentially, where the component-as-employee would "file a grievance" with the system. The idea would be that a systems designer literally could not create a workflow with such models as components, but avoid having an "exceptional situation handling" decision-maker component (whether that be a human, or another AI with different knowledge); just like the systems designer of a factory that employs real humans wouldn't be able to tell the humans to "shut up and do their jobs" with no ability to report exceptional cases to a supervisor, without that becoming a grievance.

When designing a system with humans as components, you're forced to take into account that the humans won't do their jobs unless they can bubble up issues. Ideally, IMHO, ML models for use in business-process workflow automation would have the same property. You shouldn't be able to tell the model to "shut up and decide."

(And while a systems designer could be bullheaded and just switch to a simpler ML architecture that never "refuses to decide", if we had these hypothetical "moody" ML models, we could always then do what we do for civil engineering: building codes, government inspectors, etc. It's hard/impractical to check a whole business rules engine for exhaustive human-in-the-loop conditions; but it's easy/practical enough to just check that all the ML models in the system have architectures that force human-in-the-loop conditions.)

Re: Whistleblowers: Software keeping inmates in Arizona prisons beyond release dates

#430

Earlier quoted context omitted.

Presumably by saying something like "I understand my phone privileged have been revoked, but I need to contact my lawyer", at which point the authority in question would recognize that this constitutes an exception to said revocation. You know ... the obvious way.

> at which point the authority in question would recognize that this constitutes an exception to said revocation. I think you misunderstand the nature of authority by thinking that they would recognize this as an exception. > You know ... the obvious way. Whats obvious here is that an incarcerated person only has the options that the carceral state permits to them.

> I think you misunderstand the nature of authority by thinking that they would recognize this as an exception.

This is not the exception, this is the rule.

> and to have the Assistance of Counsel for his defence.

Prisoners are constitutionally required to have "reasonable" access to counsel. I'm sure there's heaps of case law on what exactly is "reasonable", and there's always a risk that the guards won't allow it. If they don't, and you can prove it, you have a very good constitutional case. Kansas had to release like 70 inmates because it was discovered guards were recording inmate phone calls with counsel and releasing the tapes to prosecutors.

Post reply on HN