Ayende @ Rahien

It's a girl

Macto: Let’s CREATE an Inmate

After spending so much time talking about the application, I think that you can understand why this isn’t going to work:

image

For a start, we don’t create an Inmate. A prison just doesn’t have this concept.  Second, the process of accepting a new Inmate into the prison is a pretty complex one. An Inmate can come from one of several sources. It can be a guy just brought in from the streets or it can be an Inmate from another prison (and then it depends on where he came from), etc.

Each scenario requires different workflow for processing the new Inmate. And what about errors in the process? For example, let us say that your prison is rated for 14 years old and up, and suddenly you have at the gate an officer with three 13 years old that were just arrested with suicide belts. Legally, you aren’t allowed to hold them. Practically, you can’t really let them go. (For the record, that was a real scenario that happened, I had to get a judge to approve this.)

Here is another true story. I sent an Inmate to another prison, and along the way, the escort manage to forget the documents (those are the oh so important that the sky fall down and smacks you in the head if you don’t have them) in my prison. They got to the other prison around 2 AM, and only then discovered what happened. I was able to convince that prison’s commander to hold the guy until morning in his prison until I can send the documents.

Validation? You make me laugh. This is the real world, and if your system reject an Inmate that the prison commander has decided that he is going to accept… well, that Inmate still has to be tracked, but now it is offline and probably done on the back of some envelope somewhere. The system may alert and warn, but it cannot deny people.

Welcome to the real world.

Overall, the process for accepting a new inmate is quite simple, at its core. You need to be able to identify the Inmate, and you need to have a valid chain of lawful incarceration. The first might be a problem (the guy might have been just picked up, have no idea and refuse to identify himself). The second might also be a problem, as we have seen above.

But eventually, we have the Dossier for an Inmate, which contains name, id, picture and the chain of lawful incarceration. The next step is to place the Inmate in the prison, and that is a whole different key of gunpowder. I’ll discuss that in my next post.

Tags:

Posted By: Ayende Rahien

Published at

Originally posted at

Comments

tobi
07/19/2011 10:58 AM by
tobi

This is going to be interesting. A process oriented app, instead of a plain-data oriented one.

KingsDad
07/19/2011 11:01 AM by
KingsDad

Feed me more....I can't wait 3 MORE days.

Adrian
07/19/2011 12:14 PM by
Adrian

So it sounds like you have two categories for a valid chain of lawful incarceration.

-an inmate who's route to the prison who has followed a lawful process and meets criteria for the specific prison.

-an inmate who has arrived at the prison without meeting following a lawful process or does not meet specific criteria for the prison.

Are there accepted words used to describe the two categories ?

peter
07/19/2011 05:38 PM by
peter

@KingsDad Agreed, I read this with great interest; nothing kills inspiration more than "Northwind and Pubs".

BTW for those who aren't in on the joke, "Ani Ashem" means "I am guilty".

A friend of mine spent time as a prison chaplain in Israel. Inmates used to whine to him "Ani (I am) chaf(innocent) mipesha(of crime)" i.e innocent. Their fellow inmates would laugh and say "Ata (you) chai (live) mipesha (from crime)".

Thomas
07/19/2011 11:07 PM by
Thomas

What program did you use to create the ui mock?

Bogdan Marian
07/19/2011 11:42 PM by
Bogdan Marian

@Thomas It looks like Balsamiq (http://balsamiq.com/)

Paul Hatcher
07/20/2011 12:31 AM by
Paul Hatcher

This reminds me of a discussion with a previous boss about structured vs unstructured work. Lots of computer systems assume that they are about structured work, i.e. hard and fast rules that can be applied at the point of data entry, but most of the interesting stuff is around unstructured work, i.e. data arrives as and when and you have to capture it.

Eventually, you move onto a structured workflow, but it's important not to put arbitrary barriers in the way of data capture, otherwise it just ends up on post it notes attached to the monitor until the (inflexible) system can accept it.

The one I remember this from was a freight forwarding system where you had to have the ability to raise a new job based on just an airway bill number or a shipping container, didn't even know the client yet, but then as more information arrives the job gets filled in. The barrier in this case was invoicing - there's certain requirements to invoice and it wouldn't let you progress the job until all these were met

Hubu
07/20/2011 12:26 PM by
Hubu

Paul that feeds into the discussion on codebetter on task based UIs - be interesting to hear your thoughts there

http://codebetter.com/iancooper/2011/07/15/why-crud-might-be-what-they-want-but-may-not-be-what-they-need/#comments

Ayende Rahien
07/20/2011 08:15 PM by
Ayende Rahien

Adrian, Yes, the first is an Inmate. The second is not an Inmate :-)

Ayende Rahien
07/20/2011 08:16 PM by
Ayende Rahien

Thomas, The mockups were created by Balsamiq

Adrian
07/21/2011 02:41 AM by
Adrian

Ayende - it sounds like we are developing a good customer - developer relationship :|

I don't understand... it sounds like you are talking about 3 categories.

  • Inmate - 'happy path' if there is such a thing
  • Inmate - the dude who we can't reject as the prison commandant has decided to accept , but still needs to be processed to turn him into an lawfully incarcerated prisoner or rejected (the guy the who meets @Paul Hatcher's status of waiting for additional info till he can be dealt with as an inmate)
  • Not an inmate - the dude who the police\army just have to deal with and put into a lock-up for 24hrs until he sobers up (not sure if this is a common thing, but as I have just been out for drinks it seems like a reasonable scenario).

Or is this just the random tangent that developers seem to get attached to... if so why ?

Ayende Rahien
07/21/2011 02:50 AM by
Ayende Rahien

Adrian, The first two are Inmates. We don't currently hold the full authorization for the second case, but that authorization exists, just out of the system (typically, we hold someone and get an Arrest Warrant from one of the Captains in the prison itself, or the paperwork is on its way, etc). The last case doesn't happen for our prison, but if it would, he would also be an Inmate.

Comments have been closed on this topic.