Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

EDIT: Want to clearly state that I think it's horrible that people are being held past when they should be. The below is more of devil's advocate view of the problem. /EDIT

To add a slightly contrarian perspective, this reminds me of what I think was an old HN discussion about payroll systems.

One of the comments was along the lines of:

BEGIN QUOTE

You think it's "just payroll"? What about the following:

- The person who gets paid at 6/11ths of wage because there is a split contract

- Or the guy who gets three pay checks because he retired so gets a pension, is a contractor and is working for two different departments?

- etc

END QUOTE

The point being, these things sometimes seem simple but can get astoundingly complex very quickly.

Case in point: the system is designed to track gang affiliation, personal property and health issues.

What about the guy who is in a gang now but was in a different gang last year? And his stuff is in another block because his block's storage area is full? And he can't take the top bunk because he has gout(or diabetes etc) and can't climb anything?

And what if even with a perfect gang tracking system, you don't have enough "bins" to actually separate everyone who should be separated? How do you account for that in the system? Where do you track the "gang pairing priority list"?

And I know what some folks will say: "Yeah, that's just a rules engine that you keep separate from the code. Easy!" Ok. So how do you version control the rules engine? Do you build a dryrun option to see what a small tweak to the rules do? In my experience, probably not.

Long story short, jails are incredibly complex environments with a multitude of complex dimensions to account for. If you are curious about this, I highly recommend reading "Jailhouse Doc" [0]. It's an incredibly insightful look into JUST the medical side of prisons.

[0] - https://amzn.to/2ZJnVZG



> What about the guy who is in a gang now but was in a different gang last year? And his stuff is in another block because his block's storage area is full? And he can't take the top bunk because he has gout(or diabetes etc) and can't climb anything?

Having a lot of unique edge cases is not really an excuse to not even attempt an adequate solution. Everything is manageable if you have a high enough view of everything.

> Do you build a dryrun option to see what a small tweak to the rules do? In my experience, probably not.

In MRP systems this is done regularly. I'm sure it's done regularly with most logistics software as well. Scheduling is an inherently difficult problem in computer science not unlike the traveling salesmen problem. There are algorithms you can employ to reduce your workload in solving the problem, but in high stakes systems even the best algorithms are going to employ at least one validation run if not several brute force attempts. In MRP systems most software has features to enable multiple schedules. So you have a production schedule, and a playground environment for finding your best opportunity cost.

> Long story short, jails are incredibly complex environments with a multitude of complex dimensions to account for. If you are curious about this, I highly recommend reading "Jailhouse Doc" [0]. It's an incredibly insightful look into JUST the medical side of prisons.

Bill Gates once said he liked to find lazy engineers to solve complex problems because they usually find a simple solution. In my experience, if the solution to a problem isn't programmatically obvious, you need to stop thinking in tangible items (or in this case, people) and start thinking in object oriented terms. For example, it is usually possible to turn a one-and-done conditional statement into a loop. There is a way to scale just about any program, you just need to view the problem from a higher altitude.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: