|
| |
|
|
|
This paper describes work undertaken
within the context of the P3 (Project and Process Prompter) Project
which aims to develop the Prompter tool, a "decision-support
tool to assist in the planning and managing of a software project".
Prompter will have the ability to help project managers
to assimilate best practice and "know how" in the field
of software project management and incorporate expert critiquing
which will assist project managers in solving the complex problems
associated with software project management.
Keywords:
Expert Critiquing, Decision Support,
Expert System, Intelligent Agent, CORBA.
1. Introduction
Software Project Management is the activity
that covers and organises all the interactions that are involved
in a software project, whether it is a reply to a call for tender
or the launching of a product on the market place. This leads
the project manager to make specific choices keeping the balance
right between quality, functionality, schedule and cost of the
product. However, the balance may change as the project progresses
and this is the key reason why project management is (and always
will be) a complex and demanding activity, as the project manager
has to plan for the future, observe the actual and make decisions.
Software project managers make hundreds
of decisions every day ranging from the relatively inconsequential
to the significant. Ceteris paribus, good outcomes from those
decisions are more desirable than bad outcomes. While some project
managers may be 'lucky' in their decision-making processes, for
most of us good outcomes in decision making are a result of making
good decisions. "Good decision making" means that we
are informed and that we have relevant and appropriate information
on which to base our choices. Project managers make informed decisions
based on a combination of judgement and information from staff,
clients, research literature and current market forces, as well
as knowledge gained from previous projects. Ideally, all relevant
information should be brought together before judgement is exercised.
The quality of a decision depends on
the adequacy of the available information, the quality of the
information and the number of options available at the time of
the decision. It is our belief that to improve the decision-making
process, we need to improve information collection, presentation
and analysis. In particular it is vital to analyse the proposed
decision to assess the impact it will have on the project as a
whole, analyse the risk to the project the decision will have,
subject the decision to the critique of experts and suggest alternatives
to the proposed decision.
To support project managers, organisations
have sought to develop a number of information technology systems
to assist with various aspects of the management of their software
processes. Many tools exist in the market today that assist a
project manager to address some of these objectives. These tools
fall into three categories:
However, such systems fall short of
supporting the project manager in his/her decision making process.
In the light of this and having completed an extensive survey
of tool users, we have identified several key areas which would
be of benefit to the project manager in supporting the decision
making process:
The aim of the P3 project is to build
the Prompter tool which will assist the project manager in their
decision-making process, by helping them to assimilate best practice
in the field of software project management and incorporate expert
critiquing which will assist project managers in solving the complex
problems associated with software project planning.
One way to accomplish this goal is the
use of Decision Support Systems (DSS) [7]. DSS are computer-based
systems that bring together information from a variety of sources,
assist in the organisation and analysis of information, and facilitate
the evaluation of underlying assumptions. The availability of
DSS provides the opportunity to improve data collection and analysis
processes associated with decision making and further, DSS provide
opportunities to improve the quality and responsiveness of decision
making and hence the opportunity to improve the management of
projects [12].
In addition to DSS, Expert Systems technology
is well adapted to these kind of tasks. An Expert System (ES)
is a computer program that represents and reasons with knowledge
of some specialist subject with a view to solving problems or
giving advice [5]. An ES may completely fill a function that normally
requires human expertise, or it may play the role of assistant
to a human decision maker. The symbolic reasoning of an ES enables
them not only to draw conclusions, through a process similar to
the one used by human experts, but also enables them to provide
explanations concerning their estimations. ES technology is based
on the domain knowledge of the problem being solved. A problem
domain (e.g. software project management) defines the objects,
properties, tasks and events within which a human expert works
and also the heuristics that trained professionals have learned
to use in order to perform better [6].
A third class of system which is suited
to assisting in the decision-making process is Expert Critiquing
Systems (ECS) [13]. These are a class of programs that receive
as input the statement of the problem and the user-proposed solution.
They produce as output a critique of the users judgement and knowledge
in terms of what the program thinks is wrong with the user-proposed
solution. Some critiquing systems also produce corrective repairs,
while others attempt to prevent the user from committing some
of the more common judgement errors in the first place. Simple,
yet widely used example of critiquing system are spell checkers.
However, more sophisticated critiquing systems have appeared in
fields such as programming environments [3] and software risk
management [8].
ECS are different to ES in that ES only
accept the problem statement as input and provide their machine
generated solution as output, whereas ECS take the solution as
input and solve that. However, ECS do not necessarily solve problems
for the user, they simply point out errors and sub-optimal conditions
in the user-proposed solution that otherwise may remain undetected.
ECS are particularly well suited to design tasks in complex problem
domains as they do not always have an optimal solution and the
problem cannot be precisely specified before attempting a solution
[4]. ECS can function with only a partial understanding of the
task, as they can provide support by applying generic domain knowledge,
whereas ES are inadequate in situations where it is difficult
to capture sufficient domain knowledge, because they leave the
human out of the decision process and all 'intelligent' decisions
are made by the computer. On the other hand, DSS assist the user
in analysing and evaluating assumptions underlying a problem,
but do not propose or critique a solution.
In the complex (ill-defined) domain
of software project management, a useful tool to support the project
manager in the decision making process is likely to be a hybrid
of a number of techniques, including DSS, ES and ECS. The Prompter
tool will therefore incorporate the information gathering and
analysis techniques of DSS, with the ability of ES to propose
possible solutions using expert knowledge and best practices and
the power of ECS to critique the possible solutions, thus providing
the project manager with every facility to make an informed and
quality decision. This approach enables the inter-working of a
variety of well understood techniques within a single underlying
framework. The major benefits of this are facilitating and improving
the quality of decision making by reducing information overload
and by augmenting the cognitive limitations and bounds of the
decision makers.
2. Prompter Approach To Knowledge
Utilisation
Given the characteristics of software
project management, it was decided that the most natural way to
model the decision making process is as a collection of autonomous
distributed problem solving intelligent agents [14]. In this context,
an agent can be viewed as an encapsulated expert advisory entity
which exhibits the following agent attributes [2]:
The choice of agents as a solution technology
was further motivated by the following domain observations:
When collectively viewed, these observations
support the use of intelligent agents as a strong solution candidate
to implement the inter-working decision support framework described
above. In the P3 project these problem-solving capabilities are
encapsulated in distributed intelligent agents called "Daemons",
that act as expert advisers helping users to define the process
life cycle as well as providing continuous assessment on progress
and quality of the project. Each daemon is an expert in a particular
area of project management and continually analyses project parameters
making the user aware of any possible weakness and helping to
mitigate the associated risks. The daemons will use their expertise
to "prompt" the user to choose between suggested alternatives,
as well as providing justification for their advice. Daemons will
encapsulate knowledge and best practice in the field of software
engineering and in addition will have embedded the guidelines
of quality standards [11] such as ISO 9000 and the Capability
Maturity Model.
The decision making paradigm in Prompter
can be seen in Figure 1. Two entities, daemons and a user, working
together to contribute what they know about the domain to solving
some problem and hence make a quality informed decision. The users
primary role is to generate and modify solutions; the daemons
is to analyse those solutions and produce a critique and advise
on a possible solution for the human to apply in the next iteration
of this process.

Daemons execute by attempting to assign
values to the attributes in the conditional part of its rule-set
from information in project database, data derived from user input
or result of other daemon processing. When all the information
a daemon needs is available it will proceed with its analysis,
and produce its conclusions. For example, there may be a number
of daemons who specialise in the selection of the most appropriate
process model (lifecycle) for a particular project. The daemons
could have a set of criteria [1] based on certain attributes of
the project such as: the problem domain, product, available resources,
personnel, and organisational attributes. These attributes would
be examined and for each process model a comparative rating produced,
indicating the most appropriate choice of process model. The daemons
conclusions would be in two parts:
Initially Prompter will have a basic
set of daemons, located in a daemon library, which will be extended
to include new services, thus allowing Prompter to be evolutionary.
In the future, we envisage a community of daemons developers adding
functionality to Prompter. This daemon library can be used in
various contexts, namely: in a stand-alone mode; in a client server
mode across a LAN; or in a distributed mode across an Intranet
or the Internet. This provides the ability to update the daemon
library remotely, where the daemon library runs on a server, whereas
the application is locally distributed and asks for services from
remote daemons (in the case of the Internet, this access can be
subject to commercial and financial arrangements). This architecture
provides the ability to modify, update and add to daemons in the
library without creating a new version of the tool, thus creating
a truly flexible distributed application.
3. Prompter Architecture
The Prompter architecture has been designed
in such a manner as would lead to a prototype which is flexible
and can be readily enhanced over time (e.g. adding new daemons
or altering the GUI). It is desirable that the architecture will
facilitate adjustment/alteration of any architectural element
without causing major disruption to the overall system. Figure
2 illustrates the current tool architecture.
We have isolated the main functional
parts of the tool into the following modules:

CORBA [9] was chosen as the interface
bus on which to implement message passing between each of the
modules in the Prompter architecture. The CORBA bus allows transparent
access to distributed objects over a heterogeneous network of
machines and operating systems. CORBA distributes messages via
its Object Request Broker (ORB) transparently between registered
objects. The ORB receives requests from a 'client' to send a message
to an object. The broker locates the object referred to by the
client and delivers the message to that object. This style of
architecture combined with the flexibility of CORBA provides a
unique solution to the requirements of independence of implementation
language, capacity for evolution and interfacing ability.
This architecture allows us to remains
independent with regards to implementation languages. However,
as Prompter is intended for use in a typical project managers
environment (i.e. a windows PC) certain limitations are placed
on implementation. The use of CORBA allows us to maintain the
tool kernel on a typical server while porting the GUI to any client,
with both the daemons and the project database located physically
anywhere on the network. With this in mind, the optimal choice
could be :
The main advantages of this approach
are:
The main drawbacks of this approach
are related to the use of emerging technologies such as CORBA
and Java and there associated risks. This will imply extra effort
in testing the technologies to define more precisely their limits,
in addition to the problems associated with the use of rapidly
evolving technologies. Such actions have a cost and a risk which
will have to be regularly evaluated and monitored to ensure a
viable solution.
5. Conclusions
This paper has presented a brief résumé
of some of the work undertaken in the P3 project. The architecture
and its key mechanisms have been presented here, as has an outline
of the implementation strategy. Work is currently underway in
the development of an initial prototype for trial by a industrial
panel of tool users to assess the added value of the Prompter
approach to decision support in project management.
The Prompter approach is a fusion of
a number of techniques within a single framework which aim to
improve the quality of the decision making process. An important
characteristic of this approach is the combination of these techniques
in an open distributed environment with the potential for the
continuous evolution of the knowledge base. However the ultimate
decision of whether to accept or reject the advice of the system
still lies with the judgement of the user.
References
[1] L.Alexander, A.Davis, "Criteria for Selecting Software Process Models", In Proceedings of the 15th International Computer Software and Applications Conference, IEEE Computer Society Press 1991.
[2]J.Bradshaw, "An Introduction to Software Agents", In Software Agents, MIT Press, 1997.
[3]G.Fischer, "A Critic for LISP", In Proceedings of the 10th International Joint Conference on Artificial Intelligence, Los Altos, Morgan Kaufman, 1987.
[4]G.Fischer, A.C.Lemke, T.Mastaglio, A.Morch, "The Role of Critiquing in Cooperative Problem Solving", ACM Transactions on Information Systems, April 1991.
[5]P.Jackson, "Introduction to Expert Systems" (2nd edition ), Addison-Wesley, 1990.
[6]M.Klein, L.B.Methlie, "Knowledge Based Decision Support Systems with Applications in Business" (2nd edition), John Wiley & Sons, 1995.
[7]E.Mallach, "Understanding Decision Support Systems and Expert Systems", Irwin, 1994.
[8]T.Moynihan, J.Power, W.Henry, "A Critiquing System Architecture for Software Risk Management", In Proceedings of ESCOM94, (Ivrea, Italy) May 1994.
[9]R.Orfali, D.Harkey, J.Edwards, "Instant CORBA", John Wiley & Sons, 1997
[10]D.J.Power, "DSS Glossary", World Wide Web, http://power.cba.uni.edu/DJP/dssglossary.html, 1997.
[11]J.Sanders, E.Curran, "Software Quality - A Framework for Success in Software Development and Support", Addison-Wesley, 1994.
[12]V.Sauter, "Decision Support Systems", John Wiley & Sons, 1997.
[13]B.Silverman, "Survey of Expert Critiquing Systems: Practical and Theoretical Frontiers", Communications of the ACM, Vol.35, No.4, April 1992.
[14]M.Wooldridge, N.Jennings, "Agents
Theories, Architectures and Languages: A Survey", Lecture
Notes in Artificial Intelligence, Springer-Verlag, 1995.
Acknowledgements
This research was supported by the Fourth Framework programme of the European Commission under ESPRIT project 22241. The authors gratefully acknowledge the value gained from discussions regarding this work with their research partners: Marty Sanders, Robert Cochran, Brian McCarthy (Catalyst Software), Martine Pauleito, Chantal Jourdain (Schneider Electric) and Vassilis Kopanas (Intracom).