Intelligent Assistance for Software Project Management
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
782
On Slideshare
782
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
12
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Intelligent Assistance for Software Project Management1 Rory O’Connor School of Computer Applications Dublin City University Ireland roconnor@compapp.dcu.ie Abstract This paper examines the issues of assisting software project managers in the decision making processes involved in the planning, managing and executing of a software development project. The role of software project management tools is examined and a proposal for an intelligent assistant system for software project management is set forth. The rationale behind this proposal is outlined and the summary results of a validation exercise conducted with project management tool users is discussed. Keywords: Project management, Project management tools, Decision support, Knowledge base, Intelligent agents. 1. Project management The Project Management Institute defines project management as “the applications of knowledge, skills, tools and techniques to project activities in order to meet or exceed stakeholders needs and expectations from a project” [19]. Project management is an integrative endeavor - an action, or failure to take action, in one area will usually affect other areas. The interactions may be straightforward and well understood, or they may be subtle and uncertain. For example, a scope change will almost always affect project costs, but it may not affect team morale or product quality. These interactions often require trade-offs among project objectives - performance in one area may be enhanced only by sacrificing performance in another. Successful project management requires actively managing these interactions. Effective management of a software project depends on thoroughly planning the progress of a project. The project manager must anticipate problems which might arise and prepare tentative solutions to those problems. A plan drawn up at the start of a project should be used as a driver for the project. The initial plan is not static but must be modified as the project progresses and better information becomes available. Project planning is probably the activity that takes most management time. The planning process starts with an assessment of the constraints affecting the project. The progress milestones and deliverables are then defined and a schedule drawn up. Project managers revise their assumptions about the project as more information becomes available. 1 Based on a contribution to the 9th European Software Control and Metrics conference. 1
  • 2. Software project managers are responsible for planning and scheduling software project development. They supervise the work to ensure that it is carried out to the required standards and monitor progress to check the development is on time and within budget. Good management cannot guarantee project success. However, bad management usually results in project failure. Effective management of a software project depends on thoroughly planning the progress of a project. The project manager must anticipate problems which might arise and prepare tentative solutions to those problems. A plan drawn up at the start of a project should be used as a driver for the project. The initial plan is not static but must be modified as the project progresses and better information becomes available. Project planning is probably the activity that takes most management time. The planning process starts with an assessment of the constraints affecting the project. The progress milestones and deliverables are then defined and a schedule drawn up. Project managers revise their assumptions about the project as more information becomes available. Due to the growing complexity of products and commercial systems and to the current economic context, large projects are facing more and more constraining production objectives in terms of time, cost, quality and risk. This evolution in the nature of projects being undertaken by software organisations results in increased difficulties associated with planning, managing and executing software development projects. The key issue in project management is decision making. 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, the number of options available at the time of the decision and the ability of the people involved to interpret this information. Software-intensive projects often fail because the project managers lack knowledge of good practices and effective processes which can reduce risk and increase the likelihood of success. Managers of projects need to know how to establish a set of processes which are tailored to a project’s requirements in terms of functionality, time, cost, quality and their associated risks. The objective of this research is to address this shortfall and provide a software project management tool which will increase the likelihood of success by assisting the project manager who has to make decisions on these issues. The tool will encapsulate knowledge of experts and make it available to all users, once they have input project definition parameters. Some of the potential benefits of this approach to decision-making in software project management are: • Suggestions are made which help the user balance cost, quality and time in making decisions about the use of project resources. • Knowledge is shared about different lifecycle models and why one or another may be most suitable for the users projects. 2
  • 3. • Measurements are suggested which will enable the user to see how well the project is reaching greater organisational goals, and re-plan the ways to reach these goals, if necessary. Even the most experienced project manager may have difficulty knowing the best planning options, although the critical input parameters on resources, time, quality and other requirements are known. A novice project manager is often totally without the basic knowledge that can lead to good planning and management, Either one can be helped by a tool as a resource for decision-making. 2. Project management support systems Constructing, maintaining and extending large complex software systems pose many problems of managing all the people, systems and agencies involved. Although many project management systems are currently available, the enormous scope and complexity of current software systems means moving beyond the current state of practice (for example, PERT charts or Microsoft Project). Managing large-scale projects requires facilities for coordinating independent activities and managing the project plans themselves. During the life of a project, the planning emphasis will shift from initiation planning to implementation planning according to different time zones, each with its own time horizon. Usually these time zones cover the immediate, intermediate and future periods [13]. At the initiation stage (immediate time zone), the plan (and its alternatives) will be expressed at a high level, because the detail is not available and uncertainty will be high. The plan is a ‘theoretical’ model of the potential project. The system does not issue instructions nor record and respond to feedback. It does not need to communicate with the ‘real’ world it attempts to represent and control. Most tools are successful at showing the outline plan - phases, stages, etc. - identifying critical path and overall duration. Given appropriate basic cost and time data, they may be able to do basic ‘what-if’ analysis. Most projects will benefit from initiation planning with even the simplest tool. However, what would be of greater benefit to the project manager at this stage is advice on basic strategic alternatives such as selection of a lifecycle process and reuse of knowledge gained from previous (possibly similar) projects undertaken in the organisation. Of the three time zones (immediate, intermediate and future), the work scheduling and monitoring in the ‘intermediate’ zone may create the most serious practical problems. At this stage the planner is concerned with the current position of the project and its immediate future. Potentially, tools are better at reporting on the current status. They can report on what has been done, what the plans say should be done next and what can be done with resources available. The danger is that reports may be incomplete, out of date and inappropriate for the recipient. Tool suppliers have responded to this perceived need in several ways. At one extreme, entire tool sets are built around 4th Generation Language (4GL) environments. In principle, a 4GL allows quick and easy changes to the system so that input and output can be tailored to specific user needs. However, the use of a 4GL has its own drawbacks in relation to loss of processing speed, reduced flexibility, etc. In this intermediate time zone, of potentially significant benefit to the project manager is the ability to reason about project 3
  • 4. plans, analyse alternative strategies in the approach to problems, seek advice from lessons learned during previous projects (the knowledge base), and consult organisational and international standards. Although many project management systems are currently available, the enormous scope and complexity of current software systems means moving beyond the current state of the art, as such systems do little to support the ‘average’ project manager. For example [10] suggests; “…if you are a poor project manager, then using Microsoft Project will probably make you worse”. In addition, most of these systems fall short of supporting the project manager in his/her decision making processes and do not offer assistance in representing knowledge about plans and designs, or provide mechanisms for reasoning about plans and designs in flexible ways. Further aspects to supporting the software project manager which are not addressed by today’s support systems are the distributed and cross-platform nature of systems development. The massive reduction in the cost of Personal Computers coupled with enhanced communications technology has lead to an increased trend towards the development of heterogeneous client-server systems. At the system level we have witnessed the widespread acceptance of distributed middleware technology such as CORBA (Common Object Request Broker Architecture) [9] and at the programming level, the Java programming language is poised to bring platform-independent languages to a new level. However, for the software developer there is nothing by the way of support systems which are orientated towards this new trends in systems development. Users of existing software project management systems could benefit greatly from the inclusion of intelligent assistance techniques in such tools. In addition, such new support systems should provide for the distributed cross-platform nature of modern client-server development. The following section outlines some possible roles for intelligent assistance in the domain of software project management. 3. Project management tools In the 1980’s there was a marked increased in the number of organisations using software engineering methodologies and tools to assist in the planning and control of software development projects. In 1984 70% of organisations said they used no recognised methods or tools. This figure reduced to 30% by 1988 and a recent survey suggested this has fallen to less than 15% [8]. It is likely that the number of tools in the market place and the number of organisations using them will continue to increase, thus leading to increased demands from users for more sophisticated tools. Recent studies of project management software trends indicate that the worldwide project management software market has grown to US$750 million and it will continue to grow, exceeding US$1.2 billion by the year 2000 [5]. Project management software is available at many different levels of sophistication and at prices ranging from one hundred to several thousand pounds. Even the most basic packages will produce pretty Gantt or PERT charts, but the capabilities of the more expensive packages vary widely. Most of the more sophisticated packages not only cost more, but also require a substantial investment in training and typically have a steeper learning curve. 4
  • 5. Existing traditional project management tools do give support to the project manager and have several basic strengths; Planning calculation and re-calculation; Recording progress and feedback data; Comparison of planned against actual achievement and Re-calculation of the plan in relation to progress update. These reflect the strengths of data processing by computers applied to project planning. Given input data and modifications, the tool will rapidly calculate and then re-calculate the plan. This is the basis for ‘what-if’ calculations useful during project initiation and the processing of progress data during the subsequent implementation. As is to be expected, new tools and versions will continue to give attention to these areas, so the tool support is likely to improve. However we have isolated two main areas in which tool support is weakest: First is the creation of plans. While support in some areas has significantly improved, few tools yet offer automatic creation of technical and management plans; the user has still to directly input the plan data with little support for the accuracy, completeness and quality of the plan. Of use to the project manager would be the automatic creation of an outline plan from specified (pre-defined) types of projects, which could be further refined to the particular project under consideration. Second is decision support. Although most tools offer ‘what if’ analysis, in response to changed parameters, few offer direct ‘recommendations’ for action given a certain situation. Less still allow for the simulation of a possible future, given a key parameter change, yet such information and decision support would be of great benefit to the project manager in the immediate and intermediate time zones. One of the main reasons for this pattern of strengths and weaknesses is that ‘standard’ software is being offered for the management of ‘unique’ projects. If follows that the software will concentrate on those functions which are less unique, such as calculating the overall schedule from the set of activities. This is concerned with the logical relationship between tasks, which can be represented by standard symbols, rather than the technical content of those tasks. In contrast, short term control and decision support (where tools are not strong) are more dependent on the specific technical detail of the way things are actually done. This often tends to be industry, organisation and often project specific. 4. Intelligent knowledge-based guidance The aim of this research is to address the complex management issues associated with planning and managing a software project by the development of an intelligent assistant system which will assist the project managers in their decision-making process. It is proposed that there is significant scope to improve on existing project management systems, in particular to provide features such as; • The assimilation knowledge and best practice in the field of software project management. • The ability to reason about project’s plans, analyse alternatives and select the most suitable course of action. • The ability to track the history of a project and capture knowledge gained, and reuse this knowledge as an aid to future project decision-making. 5
  • 6. • Assistance to the project manager in adherence to standards, industry best practices and implementation of company policy. • The ability to intelligently manage and analyse large amounts of project data. Software systems designed to act as an intelligent team member could help in the design, planning and execution of a project. Such an intelligent project assistant could help to preserve knowledge about tasks, to record the reasons for decisions and retrieve information relevant to new problems. They could function as co-workers, assisting and collaborating with the design or operations teams for complex systems. They could also supply institutional memory. They could remember and recall the rationale of previous decisions, and, in times of crisis, explain the methods and reasoning previously used to handle that situation. Significant design projects are typically accomplished by teams. An intelligent project assistant could act as design associate [17]. Designs are almost always redesigned; effective redesign requires an understanding of why previous design choices were made and of how these choices achieved or compromised the desired goals; and all are vulnerable to loss of important information from changes in design-team membership. In software development projects in particular, an intelligent project assistant could keep track of specifications, design proposals, and implementations for a software project throughout its life cycle. It could record the design decisions of a constantly changing team and also be a repository of solutions and components for new projects. Reasoning techniques could be used to track the (mis)match between specifications and implementations, while analogy techniques could be used to look for existing specifications, components, or implementations that match some new requirement. In addition to assistance with ‘live’ projects, such an intelligent project assistant could be of benefit when training new personnel. For many tasks, on-the-job training is extremely effective, providing the trainee with the chance to make real, on-the-spot decisions and see the consequences. On-the-job training is impossible, however, when a bad decision can be disastrous - as in the management of a large complex software development project. Simulation systems that could portray realistic simulations of people, would enable development of training systems for such situations [4]. These same simulation capabilities are also important when the cost of assembling large groups of people for training is prohibitive. Advances in support technology such as those outlined previously have assisted projects in gaining higher levels of design cooperation, achieving goals more easily and assisting with the guiding of projects as a whole. For example, the Boeing 777 aircraft illustrated major advances in design technology [15]: new tools enabled designers to check spacing and clearance so accurately that a physical mock-up version of the plane was not needed. Even so, these tools still had limitations. Information, such as some of the compromises made in the design process were never recorded. Now lost, this information will be greatly missed when the design is revisited (as all designs are) in the future. It is clear that tools such as these must record design rationale and history for later consultation. However it is also clear that enhanced support for project management increases productivity, assists in the reduction of complexity and aids decision making. 6
  • 7. 5. Project management tool users As part of this research a survey of software project management tool users was conducted to obtain an appreciation of the actual state-of-practice by project managers in relation to tool usage, i.e. what do they actually use these tools for and is this consistent with the tool vendors intended usage. This survey is also intended to highlight the user needs from a project management tool and to identify possible shortcomings in the services provided by existing tools. In addition, users are also asked to consider the aspects of intelligent assistance previously discussed and comment on the possible benefits of incorporating this into a project management support system. This survey was not intended to be a comprehensive study of project managers, rather it was conducted to better understand project management tool usage and to get reaction to the proposal of intelligent assistant tool. A group of six project managers took part in this study, which represent a variety of software development organisations and may be categorised as large, medium or small, according to the number of software development staff under their control - ranging from multi-nationals with over one hundred developers, to small software houses with 4 developers. The project managers themselves also varied from experienced senior managers, to novice (first time) managers. The projects they manage vary from small projects of 2-3 months duration, to large scale complex projects in excess of 2 years duration. Each interview lasted approximately two hours, with each manager being lead through a series of questions, ranging from the highly specific - aimed at investigating a particular area - to the more vague, to allow the project manager to further consider and develop their own opinions. The questions asked were divided into the following categories: • General background questions regarding the person and employer. • Questions to assertain the type of projects normally undertaken. • Questions about methodologies, standards and development tools used. • Questions about the use of project management tools. • Questions about the use of potential benefits of an intelligent assistant tool. In relation to project management tools, each project manager was asked a series of questions aimed at finding out what (if any) tools were being used for project management, the manner in which they were being used and the usefulness of certain types of features. In addition, they were also asked to consider the proposal of an intelligent assistant in the context of a software project management tool and offer an opinion on the proposal. Due to space restrictions a full discussion on the results of the study is limited in this paper, however a summary of the findings will be presented. In the following, each category of organisation will be dealt with separately, with a summary of their answers to questions concerning the types of tools used, the purpose the tools are used for, and the main problems encountered during the management of their projects and what tool support could have helped them. The project managers in the larger organisations had a range of tool sets at their disposal, ranging from the high end of the tool market, such as the LBMS Process Engineer family of tools, to the lower end of the market with tools like Microsoft Project. In general these organisations invested substantial resources in the development of documented software 7
  • 8. processes and relied heavily on tool support. The choice of tool for any individual project usually depended on the personal preferences of the project manager in charge, and in some instances a combination of tools would be used at different stages of the project, however, in the case of certain major (regular) clients, a specific tool was designated by the client. The project managers in these organisation regularly made use of smaller tools such as Microsoft Project, particularly in the pre-planning stages of a new, or potentially new projects. In these cases, it would often be used to “sketch out” or “get a feel for” a new project and its output reports were often used in formulating costing or contracts for such projects. The majority of problems these project managers encountered were in relation to poor estimation and difficulties with optimizing schedules. In addition, one of the managers highlighted the problems encountered with the management of a project in which team members were geographically dispersed and using different hardware platforms. The project managers in the medium-sized organisations typically had at their disposal a number of tools at the low-end of the project management tool market, such as Microsoft Project. In addition, spreadsheets such has Excel are commonly used for the allocation of resources to tasks and some scheduling activities. It is interesting to note that the project managers in this category considered tools such as Microsoft Project did not adequately fit the needs of their projects and added little extra benefit to the manual project management processes in use. One manager, primarily responsible for the maintenance of legacy systems suggested that project management tools did not address his needs and like other managers in this category, tools such Microsoft Project were only used at a superficial level to create outline schedules and plans. However, these plans were then manually managed and expanded. Many of the problems encountered by these managers were due to poor estimation and scheduling. These managers suggested that a potential benefit to them would have been a support system which would have ‘prompted’ in regard to management activities which had been overlooked; assisted with supporting estimation activities; and assisted with the selection of appropriate staff for a given activity. The project managers in small software organisations typically had access to one project management tool, such as Microsoft Project and more often relied on ‘pen and paper’ based project management, or the calculation capabilities of a spreadsheet program such as Excel, but in general they agreed that tools such as Project were not useful in the context of the smaller organisation. Indeed one manager admitted that there was some use of Project to develop project plan reports to show certain clients, but that “these schedules are not even looked at by developers”, they are produced “to keep the customer happy” and all actual management aspects of projects are done manually using paper based plans and charts. Another manager outlined his process as being one of “scribbling on bits of paper” and then when a “reasonable looking plan” emerges, it is translated onto a large whiteboard for all staff to examine - this whiteboard is then altered in an ad-hoc manner over time to reflect the current state of all tasks and people assigned to them. These project managers admitted to have a number of project management problems and suggested that a support tool which ‘guide’ them in their management would be of benefit, and assist with tasks such as requirements engineering, estimation and scheduling. A common problem among these project managers was the loss of knowledge in relation to technology and problem fixes, caused by lack of a process for documenting such information and staff migration. They suggested, a project management tool which could incorporate such information would an advantage to them. 8
  • 9. All of the project managers considered the notion of an intelligent project assistant as a useful addition to the existing range of features in project management tools. In particular, they supported the notion of a tool which could intelligently manage project knowledge, and capture knowledge and lessons learned about projects into a project knowledge base. Apart from the intelligent assistance aspects of this research, the problems associated with organisations having distributed project teams, coupled with multiple hardware platforms was identified by the project managers surveyed, thus highlighting the need tools to operate in a distributed multi-platform environment. The project managers that participated in this study represent a wide range of organisations, both in terms of number of software developers and types of project management tools used. However, it is interesting to note that the majority of project managers had similar problems, particularly in respect to estimation and scheduling, and in addition, they identified similar difficulties with existing project management tools. The project managers surveyed provided a number of consistent suggestions for enhancements to such tools and a number of these suggestions serve to reinforce the proposition of this research. Further validation would be assisted by the implementation of a prototype system, which could be demonstrated to the tool users previously surveyed, in conjunction with a wider study. Such an exercise would allow users to more easily appreciate and consider the proposed system, and in addition a prototype system could more easily be demonstrated to a larger audience. 6. AI for project management Many solutions have been proposed to the notion of intelligent assistance over the years. These fall under four major categories, Decision Support Systems [2], Expert Systems [6], Expert Critiquing Systems [15] and Blackboard systems [3]. In addition, the concept of Intelligent Agents [18] has recently emerged as a potential fifth category. It is proposed that in the complex 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, ECS and the blackboard model. It has therefore been proposed to 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 [11]. It is consider that an agent based system will provide for an approach which enables the inter-working of a variety of well understood techniques within a single underlying framework - that of agent-orientated system. We therefore propose a system composed of a library of intelligent software agents - where each agent would play the role of a ‘mini-expert system’ or ‘mini-critiquing system’, each with an associated knowledge base. These agents would utilise the blackboard model of problem solving to converge on possible solution states and examine those states to assess their suitability given current conditions. This agent- orientated system would operate within the overall framework of a decision support system, which would provide for the gathering and analysis of data regarding a project and the development of models of the project with the aid and critique of the agents. 9
  • 10. The major benefits perceived of this approach are facilitating and improving the quality of decision making by a software project manager by reducing information overload and augmenting the cognitive limitations and bounds of the decision maker. This hybrid method of assistance coupled with the architectural properties of intelligent agents (dynamic and distributed objects) present an ideal strategy to implement intelligent assistance systems in the domain of software project management. In addition to the properties outlined above, an agent-orientated architecture is a natural choice to address the issue of heterogeneous client-server systems development. Recent research in Java-based agents [16] [2] and mobile Java-based agents [7] have concluded that they are a viable technology on which to establish a platform independent agent-orientated architecture. To address the distributed client-server issue, research conducted at San Jose State University [12] successfully used CORBA (Common Object Request Broker Architecture) as a basis for developing platform independent client-server systems, including agent-orientated systems. To provide the necessary flexibility for the proposed system and to tackle the issues above, it is considered that both Java and CORBA provide an appropriate framework on which to base our proposed system. 7. Conclusions The paper has presented a proposal for an intelligent assistant system for software project management. The rationale behind this proposal has been outlined and the summary results of a validation exercise with project management tool users was discussed. In addition, the potential features and benefits of such a system were outlined. The approach described, 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 any system still lies with the judgement of the user. 10
  • 11. 8. References [1] R.H.Bonczek, C.W.Holsapple, and A.Whinston, “Foundations of Decision Support Systems”, Academic Press, 1981. [2] A.Caglayan and C.Harrison, “Agent Sourcebook”, Wiley, 1997. [3] R. Englemore, T.Morgan, “Blackboard Systems”, Addison Wesley, 1988. [4] B.Grosz and R.Davis, Eds., “A Report to APRA on Twenty-First Century Intelligent Systems”, American Association for Artificial Intelligence, 1994. [5] J.Hodges and S.Rogers, “Cross-Industry Application: 1997 Worldwide Markets and Trends”, Report 13705, International Data Corporation, 1997. [6] P.Jackson, “Introduction to Expert Systems” (2nd edition ), Addison-Wesley, 1990. [7] D.Lange and M.Oshima, “Programming Mobile Agents in Java - with the Java Aglet API”, technical Report, IBM Research, Japan, 1997. [8] P.Mair, “CASE: A State of the Market Report”, Unicom, 1992. [9] “CORBA: Architecture and Specification”, Object Management Group, 1996. [10] F.O’Connell, “How To Run Successful Projects II”, Prentice Hall, 1996. [11] R.O'Connor, T.Renault, C.Floch, T.Moynihan and A.Combelles, “Prompter - A Decision Support Tool using Distributed Intelligent Agents”, In proceedings of EXPERSYS-97, 1997. [12] R.Orfali and D.Harkey, “Client/Server Programming with Java and CORBA”, Wiley, 1997. [13] I.Procter and S.Bouchier, “Software Tools for Project Management”, Information Technology Report, Unicom, 1994. [14] B.Silverman, “Survey of Expert Critiquing Systems: Practical and Theoretical Frontiers”, Communications of the ACM, Vol.35, No.4, April 1992. [15] S.H.Shokralla, “The BOEING 777 Multimedia Case Study”, Technical Report, Department of Mechanical Engineering, University of California at Berkeley, 1995. [16] M.Watson, “Intelligent Java Applications”, Morgan Kaufmann, 1997. [17] D.Weld, Ed, “The Role of Intelligent Systems in the National Information Infrastructure”, AI Magazine, Fall 1995. [18] M.Wooldridge and N.Jennings, “Intelligent Agents: Theory and Practice”, Knowledge Engineering Review Vol. 10 No. 2, 1995. [19] “A Guide to the Project Management Body of Knowledge”, Project Management Institute, 1996. Acknowledgments This research is partially supported by the Fourth Framework programme of the European Commission under ESPRIT project 22241. 11