Tuesday, November 13, 2012

Maybe Treating Computers Like People Isn't Bad

Here's an interesting take on the notion of treating computers like people. I think it has been well established that it is a bad thing to treat individual machines like individuals (pets, works of art, etc...). But I just came to a realization that it may not be bad to treat systems of machines like communities of people. After listening to the Devops Cafe podcasts with Mark Burgess and Adam Jacob and hearing their thoughts on orchestrating activities in the datacenter and while I'm reading the excellent "Lean IT" these thoughts started to gel. Now I'm sure others have thought this and probably written about it, but it's a new idea for me and I haven't heard it put this way.

The basic idea is that the techniques used to manage teams of people may be analogous to the ways to effectively orchestrate systems. Adam is working hard on how to make the individual actors (machines) take a strong role in decision making. This is like the Lean philosophy of the "Gemba" where the people on the floor are most effective at solving problems, and the all-knowing manager is not as effective. The manager's job is to set The Standard and to keep tabs that The Standard is met, but ideally to dictate as little day-to-day action as possible.

The good/bad thing in this is that each actor is a computer with it's own set of outside influences. Just like people and a factory floor there are subject to random events. But these actors are also code where we can specify how they behave to certain stimuli. They aren't subject to moods like people, but they are limited by our ability to code their behaviors and responses. Here is where Mark Burgess's AI experience can make cfengine4 leapfrog the competition by making the best code-representation of an actor with the best decision-making capabilities.

What are your thoughts?