Your project team has an amazing amount of knowledge and skill, all of which could be shared with other people to help them develop and learn. But how do you get the knowledge out of someone’s head and available to someone else? Social learning is the answer.
Unlocking the Secret of AgentsAn agent can be a person, a machine, a piece of software or a variety of other things.
The basic dictionary definition of agent is one who acts. However, for developing IT systems, such a definition is too general: IT-related agents need additional properties. Some of the properties that agents may possess in various combinations include:
- Autonomous - Capable of acting without direct external intervention. It has some degree of control over its internal state and actions based on its own experiences.
- Interactive - Communicates with the environment and other agents.
- Adaptive - Capable of responding to other agents and/or its environment to some degree. More advanced forms of adaptation permit an agent to modify its behavior based on its experience.
- Sociable - Interaction that is marked by friendliness or pleasant social relations, that is, where the agent is affable, companionable or friendly.
- Mobile - Able to transport itself from one environment to another.
- Proxy - May act on behalf of someone or something, that is, acting in the interest of, as a representative of or for the benefit of some entity.
- Proactive - Goal-oriented, purposeful. It does not simply react to the environment.
- Intelligent - State is formalized by knowledge (i.e., beliefs, goals, plans, assumptions) and interacts with other agents using symbolic language.
- Rational - Able to choose an action based on internal goals and the knowledge that a particular action will bring it closer to its goals.
- Unpredictable - Able to act in ways that are not fully predictable, even if all the initial conditions are known. It is capable of nondeterministic behavior.
- Temporally Continuous - Is a continuously running process.
- Credible - Believable personality and emotional state.
- Transparent and Accountable - Must be transparent when required, yet must provide a log of its activities upon demand.
- Coordinative - Able to perform some activity in a shared environment with other agents. Activities are often coordinated via a plan, workflow, or some other process management mechanism.
- Cooperative - Able to coordinate with other agents to achieve a common purpose; non-antagonistic agents that succeed or fail together. (Collaboration is another term used synonymously with cooperation.)
- Competitive - Able to coordinate with other agents except that the success of one agent implies the failure of others (the opposite of cooperative).
- Rugged - Able to deal with errors and incomplete data robustly.
- Trustworthy - Adheres to Laws of Robotics and is truthful.
An industry-standard definition of agent has not yet emerged. Most agree that agents bound for IT systems are not useful without at least the first three of the above properties. Others require IT agents to possess all of the properties listed above to varying degrees. At a minimum, an IT agent is generally regarded to be an autonomous entity that can interact with its environment. In other words, it must be able to perceive its environment through sensors and act upon its environment with effectors.
Agents and OO
An agent-based approach is employed when a particular situation requires that processing be decentralized and self-organized, instead of centrally organized. While a centrally organized program could have been written to handle the bird simulation (see Agents of Change), the system would have been far too cumbersome. It would have required a single set of top-level rules telling each bird precisely what to do in every conceivable situation. Not only would such an application be touchy and fragile, it would likely end up looking jerky and unnaturalmore like an animated cartoon than animated life. 
Yet, most developers tend to build centrally organized applications. They are also biased towards object-oriented notions, such as class, association and message. While these constructs are useful for a certain category of applications, they do not directly address the requirements of agents. As we have seen above, agents have such characteristics as autonomy, mobility, and adaptability. Furthermore, business users like to express other concepts, such as rules, constraints, goals and objectives, as well as roles and responsibilities. In short, the agent-oriented approach distinguishes between autonomous, interactive, mobile entities (agents) and the passive ones of conventional OO (objects). This does not mean that object orientation is dead or passT. A well-designed agent-based system uses both objects and agentsjust as real-life organizations employ a balance of both active and passive elements. Furthermore, object technology can be used to enable, rather than drive, agent-oriented technology. (The differences and similarities of agents and objects will be presented in later columns.)
References About the Author
 Waldrop, M. Mitchell, Complexity: The Emerging Science at the Edge of Order and Chaos, Simon and Schuster, New York, 1992.
James Odell is a consultant, educator, and author. His web site is www.jamesodell.com.
About the Author
 Waldrop, M. Mitchell, , Simon and Schuster, New York, 1992.
Want more content like this?
Sign up below to access other content on ProjectManagement.com
Already Signed up? Login here.