> 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.
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.