Managing Problems for Global Software Production

- Experience and Lessons

 

Jerry Z. Gao

San Jose State University

One Washington Square

San Jose, CA 95192-0180

Email:gaojerry@email.sjsu.edu

Fukao Itaru

Global Development Engineering Department

Operation System Division

Fujitsu LTD., Japan

Y. Toyoshima

Global Software Technology Division, Fujitsu Network Communications, Inc.

San Jose, California.

 

Abstract

With the increase of current software projects in size and complexity, many large companies have established global software production lines over the world to develop and delivery software products with collaborative software development process involving multiple teams located at different sites. Supporting global software production needs an effective software-engineering environment to meet the special requirements of the collaborative software development process, diverse management methods and engineering practice. The WWW technology provides a powerful mean to set up an enterprise-oriented software engineering environment for global software production due to its advantages on networking, global accesses, internationalization, and communication. Although there are many articles addressing the methods and experience on building web-based applications systems and tools, very few papers discuss the real-world problems and solutions in the development and deployment of a web-based software tool to support a collaborative software development process for global software production. This paper discusses the real world issues, and reports our experience and lessons in building and deploying a web-based problem information management system (PIMS) to support global software development process in Fujitsu. It focuses on the real issues and needs of current collaborative development process involving multiple teams, and highlights the benefits and impact of the PIMS on global software production. Moreover, it discusses our technical solutions and trade-off in the development of PIMS, and shares our experience and lessons. Furthermore, it introduces a new data-centered conceptual process model to support diverse collaborative processes for project and problem management in global software production. Finally, the paper shares our key successes and weakness, and reports our experience and lessons in the deployment of the system.

Keywords: Software engineering, software maintenance, problem management, software management tool, Web application systems.

  1. Introduction

With the increase of current software projects in size and complexity, many large companies have established an enterprise-oriented global software production line to develop and delivery software application systems. Since the global production process usually involves multiple teams and organizations over the world, it is necessary to provide an effective software-engineering environment to support collaborative software processes and project managerial operations. The WWW technology provides a cost-effective mean to set up an enterprise-oriented software engineering environment for global software production due to its advantages on networking, global accesses, internationalization, and communication [7][10].

In the past two decades, researchers and tool vendors proposed many systematic methods, techniques, and tools to automate and support software-engineering practice. All these tools are host-centered systems which has a closed architecture, a fixed database driver, platform dependent client and server software. Recently, there are a number of articles reporting the development of web-based systems and tools to support the practice of software engineering [1][3][4][5][7][9][12]. For example, Eric Ly looked beyond traditional planning, and paid attention to project management in distributed environment [9]. His paper focused on the network-centric project collaboration and management. He described the implementation of ActionPlan which supports real-time collaboration among Java thin clients to facilitate distributed project management. John R. Callahan, Reshman R. Khatsuriya, and Randy Hefner presented a web-based, issue-management tool for NASA's Earth Observing System Data and Information System project [3]. This tool tracks and documents software problems over the Internet. The paper described its basic functions, system architecture, and project applications. Next, Bentley et al. described a system [1], which attempts to extend the W3 to provide a set of basic facilities for collaborative information sharing. Their BSCW Shared Workspace system is designed to support collaborative working for dispersed working groups. The major focus is on information sharing in a global workspace. Moreover, Jerry Gao et al. addressed the needs and importance of an integrated test information sharing and management system [5]. Their paper presented a web-based test information sharing and management system in terms of system approach and architecture, functional features, as well as basic designs. In addition, John C. Grundy, Mark D. Apperley, John G. Hosking reported a tool that supports process modeling and enactment synchronously as well as asynchronously [4]. They developed a decentralized architecture for process modeling and execution support that incorporates distributed work coordination and task automation. Their decentralized workflow environment provides a robust and fast system for coordinating work processes over Internet.

Although there are many articles reporting design methods and efforts on building web-based applications systems and tools, very few papers discuss the real-world problems and solutions in the development and deployment of a web-based software tool for global software production. Real world practitioners are seeking answers to the following questions.

In this paper, we made an attempt to answer these questions based on our experience and lessons in building and deploying a web-based problem information management system (PIMS) to support global software development process in Fujitsu. We use the PIMS system as a case study to expose the real issues and needs of current collaborative development process involving multiple teams, and highlights the benefits and impacts of the PIMS system to a global software development process. Moreover, we discuss our technical solutions and trade-off in the development of PIMS, and share our experience and lessons. Furthermore, we introduce a new data-centered conceptual process model to support diverse collaborative processes for project and problem management in global software production. Finally, we share our key successes and weakness, and report our experience and lessons in the deployment of PIMS.

The structure of the paper is organized as follows. Section 2 discusses the different perspectives of problem management in a collaborative software development process for global software production, including current issues, status, team structures, and requirements. Section 3 discusses technology selection, design issues and solutions, experience and lessons during the development of the PIMS system. Section 4 proposes a new data-centered conceptual process model to support diverse problem management processes in global software production. In Section 5, we report our experience and lessons of deploying our PIMS onto a global software production line. Finally, the conclusion remarks are given in Section 6.

  1. Understanding Issues and Needs in Managing Problems for Global Software Production

With the increase of current software projects in size and complexity, many large companies have established an enterprise-oriented global software production line to develop and delivery software application systems with the support of multiple teams and organizations over the world. The telecommunication group in Fujitsu is an example. This group has many global software production lines. Each involves teams from three groups of organizations. The first group includes the teams from Fujitsu limited. They usually play as a global project coordinator, project planner, or project manager. They oversee and control project timeline, schedule, and deliverable. The second group includes of teams from Japanese subsidiary companies. They usually play as a supporting role to provide technical support and services for the first group, including quality control and product verification. The third group includes teams from worldwide Fujitsu subsidiary companies, such as Fujitsu Network Communication Systems Inc. In the united state, and other companies in Europe and Australia. They usually are independent business units with specific business application markets and products. They play as research and development teams on a global production line to design and implement new products.

In the past years, these teams communicate with each other to discuss the project and product problems, and share the detailed problem information in four different ways: a) email, b) fax, c) periodical teleconference meeting, and c) business face-to-face meeting. These problems can be classified into many classes, such as requirement problems, design problems, coding problems, testing problem, and customer problems. Although the problems usually are very important to a global software process, each team manages and maintains them in an ad-hoc manner. We examined several global software production processes; we found the following major issues affecting problem management:

Today, with the increasing number of global software projects, there is a strong demand to establish a systematic global collaborative software development process to support all involved teams effectively. To achieve this goal, we must do the followings.

In 1997, Fujitsu decided to take the advantages of the W3 technology to establish an enterprise-oriented software development environment to support global production lines worldwide [5] [6] [7]. There are several major objectives. They are a) to support the information sharing among different teams, b) to enhance the collaborative development processes, and c) to increase the productivity and reduce the project cost. Developing a web-based problem information sharing system (PIMS) to support problem management for global software production is one of the tasks.

Unlike other existing host-centered problem tracking systems, the PIMS system is a network-centered system that uses the W3 to support global user accesses. It has a lot of advantages over the host-centered systems in network communications, information sharing, internationalization, and global user access. As described in [6], the PIMS system has two sets of requirements. The first set includes the essential requirements of a problem tracking system, such as problem book keeping, status tracking, status report, statistics analysis, information search and retrieval. The other set distinguishes it from other web-based problem tracking systems [3]. This set includes the special requirements addressing the issues concerning problem management and process in global software production.

REQ 1: Support diverse workflow processes for problem report, analysis, management and monitor. A global software project usually involves many teams from different organizations. Since each team has its own pre-defined workflow process for problem report, analysis, management and monitor, it is very important to allow engineers to define and configure a workflow for their development process.

REQ 2: Provide customizable data formats and report templates. Every organization involved in global software production has its own standards on the development process and quality control system. The standards defined by different organizations usually have inconsistent definitions on problem classification and severity, and different requirements on problem data items, formats, and report templates. In addition, different projects may have different requirements and needs. Thus, to cope with diverse needs, it is essential to provide customizable problem data formats and report templates to allow users to change them according to their project needs.

REQ 3: Provide flexible user groups setting with pre-defined accessible functions. Since each team performs the specified tasks and functions in a global software project, its members may form a user group that requires a set of particular user access functions. For example, a development team member usually needs to analyze a problem, and fixes it. However, a verification team member usually needs to report a problem, and records the checking result after it is resolved by engineers. Therefore, it is necessary to allow a system administrator to set up a user group with a particular set of pre-defined accessible functions.

REQ 4: Flexible data import and export for problem repositories. With this feature a PIMS system can import a problem database from another PIMS system, or export a problem database into another PIMS system. This feature is very useful for software reuse projects and concurrent development projects in a global scope.

REQ 5: Problem notification for global communication. With this feature a user can send problem notifications through email to one or a group of users, including external users. This feature is essential to share problem statuses and synchronize problem processes in a global scope.

  1. PIMS Development Experience and Lessons

In July of 1997, we started a project to develop a global web-based problem management system for global software production after we completed a couple of prototype projects using the web technology. The major motivation is to use this tool to establish a systematic problem management process for all teams involved in a reuse-driven software project in Fujitsu.

Global User Access:

To support different user accesses and enforce system security, we divide user accesses on Internet into three scopes (see Figure 2):












Technology Selection

Technology selection is an important part of design trade-off in the development of a web-based software tool. Selecting technologies is always essential for a development manager. We can group the existing technologies into through groups: a) client technologies, such as HTML, JavaScript, ActiveX, Java Applets, b) client-server communication protocols, such as HTTP, SHTTP, RMI, CORBA II, OLE, and c) server and middle ware technologies, such as CORBA, EJB, COM, and Web server, Java Servlet. Each technology has its pros and cons. Because of the limitation of the paper scope, we can not list out all their features, advantages and weakness. Instead, we compare different existing approaches based on these selected technologies in the aspects of portability, security, performance, scalability, concurrence, cost, and complexity. Table 1 listed our comparison results.

In the first approach, HTTP is used as a connectionless protocol to support the communications between a web browser and a web server. At the server side, CGI is used to a communication interface to link the web server to a server program to respond a user request. Dynamic HTML pages are generated and posted to a client through a web browser. The systems generated in this approach are known as interactive HTML-based web systems. To achieve secured communications, we can adopt SHTTP protocol using a secured web server. Since HTML and CGI are simple and platform independent technologies, therefore, the major advantage of this approach is simple and cheap because all involved technologies are free here except SHTTP web server. There are three major problems in this approach. The first problem is its slow system performance. Slow execution of CGI scripts is the major cause. The second problem is the lack of support for multithreading and concurrent server processing due to the single thread limitation of CGI. The other problem has something to do with HTML. Since HTML does not support window creation, dynamic tables, and graphics display, it is very hard to provide an effective user interface to support dynamic system-user interactions to clients. With this approach, we can create simple interactive web-based systems.

Table 1. Comparison of Different Approaches and Technologies

Selection Factors

 

Different

Approaches

Portability

Running

Cost

Security

Server

Scalability

Performance

Concurrency

Technology

Complexity

Client: HTML

Comm. Protocol: SHTTP

Server: Web Server + CGI

Yes

Low

Fair

Not supported

Slow server processing

Single thread

Simple

Client: HTML+JavaScript/ActiveX

Comm. Protocol.: SHTTP

Server: Web Server + CGI

Yes

Low

Fair

Not supported

Slow server processing

Single thread

Simple

Client: HTML+JavaScript/ActiveX

Comm. Protocol: SHTTP

Server: Web Server + Java Servlet

Yes

Low

Fair

Scalable server

Servlet is faster than CGI

Single thread

Simple

Client: HTML + Java Applets

Comm. Protocol: SHTTP

Server: Web Server + CGI/Java Servlet

Yes

Low

Good

Scalable server

Servlet is faster than CGI

Single thread

Simple

Client: Java Applets

Comm. Protocol.: RMI

Server: RMI-based Java Server

Yes

Free

Poor

Not supported

Fast

Multithreads

Middle

Client: Java-based Web Object +HTML

Comm. Protocol.: CORBA IIOP+SHTTP

Server: ORB server + Web server

Yes

High

Good

 

 

Multiple servers

Modest

Multithreads and distributed objects

Complicated

Client: DocObject + HTML

Comm. Protocol.: OLE+SHTTP

Server: COM ORB + Web server

No

PC only

High

Good

Multiple servers

Modest

Multithreads and distributed objects

Complicated

To develop more complex interactive web-based systems, we can select some other technologies to improve system performance, client interface and security. JavaScript (or ActiveX) can be used to improve the system user interface with its primitive GUI features, such as window, dialog box, input validation, and dynamic table. Moreover, Java applets can be used to provide clients with more complicated graphic user interfaces, including multiple concurrent windows with elements (such as buttons, menus, etc), and graphic display. In addition, Java applets also enhance the security of client software because Java applets are invisible to any Internet users unlike HTML and JavaScript. In addition, CGI scripts can be replaced by Java Servlets to improve system performance. Since Java Servlets is a Java component that can be plugged into a Java-enabled web server, its performance is much better than CGI scripts because it has no overhead on program loading and interpretation.

To develop interactive web objects over the Intranet, we can use RMI as a middle ware to support the communications between Java applets and a Java-based server program. Unlike HTTP and SHTTP, RMI is not a standardized protocol without security and predefined message formats (or object formats). Compared with CGI and web server, RMI provides better system performance and supports multithreads. However, RMI can not provide secured web-based systems on the Internet because of its security weakness.

Now CORBA and COM have been used to develop interactive web-based systems with web objects over the Internet. They are very good middle ware technologies due to their support in concurrence, security, object-orientation, distributed objects and networking. In CORBA, web objects (say OrbixWeb objects) in Java applets at the client side communicate CORBA objects of the server program through CORBA IIOP protocol and ORB server. In COM, web objects (say DocObjects) communicate with server objects (such as ActiveX Doc. And DocObjects) through Network OLE and COM ORB sever. Since CORBA is platform independent technology, it has better portability than COM. However, they are very complicated to learn and use in comparison with other technologies. Although other technologies are free to use at the current point, CORBA and COM are costly to use and run.

In the development of the PIMS system, we made the following technology selections. We used HTML and Java applets to develop user friendly client software. We selected CGI and SHTTP web server as our middle ware due to the cost and availability of technologies. We created our application server based on C++ programs.

System Architecture

The PIMS system has a four-layered architecture.

(1) Server Architecture:

As shown in Figure 3, the server in PIMS includes two parts. The first part is System Administration, which supports different system administration functions. It includes the following components: a) security controller, which sets up and monitors the system security; b) access controller, which creates and maintains user accounts, user groups and user access permissions; c) workflow processor, which creates, configures, and maintains a process-oriented workflow according to a state-based workflow model; d) system configuration and customization, which configures or customizes the system persistent data, parameters, and features according to customer needs [11]; e) a database API to a system administration database; and f) a communication gateway interface for system administration functions.

The other part is problem management consisting of the several parts: a) a communication gateway interface; b) a problem database API, c) problem book keeping, which records and documents the problem information from users; d) problem tracking, which tracks and monitors problem states; e) problem analysis report, which generates a statistical analysis report based on the stored problem information; f) problem report generator, which produces an HTML-based problem report based on database query results; g) database import/export, which imports or exports a subset of the problem information from one database to another; and h) database migration, which migrates a database content to a newly created database.

In the design of the PIMS system, we include three special functions to support the information sharing and communication among different PIMS systems. An email agent is the first. It supports event notification and information exchange between two PIMS servers over Internet through an email server. The next is the FTP agent, which supports file transfer between two PIMS servers over Internet through a third party FTP server. The notification feature is the last function. This works based on the current workflow model. For example, whenever a problem fixing record is stored in a problem management system, a message should be sent out to notify the corresponding testers.



(2) Client Architecture:

As shown in Figure 4, client software consists of several parts. The first part is a loader, which includes applet loader and data loader. Data loader is used to load data dynamically from a server to a client. These data are either client-specific or dynamic changeable. Applet loader is used to load Java applets dynamically from a server to a client machine. Although Java Virtual Machine has provided this feature to load embedded Java applets in HTML pages, we create the applet loader to load other applets during run-time. This is very useful to control the loading performance and system resource on a client machine. The next part is access controller that consists of user access control, security checking, and workflow checking. The third module is a client data store, which stores and maintains a set of client-specific data, including system persistent data/objects and dynamic data/objects. Persistent data/objects refer to the persistent information for a particular user, such as user accounts and passwords, security codes and access control information. The dynamic data (or objects) include function-specific data (or objects) loaded from a specific information repository. The fourth part is a set of GUI components support specific functions, including Text Report GUI, Analysis Report GUI, Problem Tracking, and User Data Configuration. Besides, there is a system administration GUI interface to support all administration features, and a communication interface between client software and the PIMS server. Finally, there is a utility module that includes a set of classes, such as Tool bar, Timer, Print, and Help.





Performance Tuning Experience and Lessons

System performance for a web-based application system is very critical and depends on many factors, including network performance, computer performance, selected technologies, system infrastructure and architecture, and the performance of adopted third part software, and created application server/client software. Due to the limited scope of this paper, we only highlighted some experience on software design of client and server programs.

(1) Performance Tuning for Java Applets:

Performance Improvement

2 to 3 times

3 to 4 times

4 to 5 times

Over 5 times

No. of Improved Features

4

7

16

1

(a) Performance Improvement for Data Loading

Performance Improvement

2 to 3 times

3 to 4 times

4 to 5 times

Over 5 times

No. of Improved Features

6

3

19

8

(b) Performance Improvement for Reporting

Figure 5. Performance Tuning Results for the PIMS System

(2) Performance Tuning at the Server Side:

The above performance tuning tips did help us to improve the system performance of the PIMS system. The tables in Figure 5 shows the performance improvements for one release.

Design Experience and Lessons:

Testing Experience and Lessons:

According to our experience, testing of web-based systems is complicated and costly due to its special features such as distributed/concurrent accesses, platform independence, security, and internationalization. A web-based application usually depends on many different technologies, such as HTML, Java or J++, JavaScript or ActiveX, web browsers, web servers, third-party middle-ware. This makes it difficult to automate the test process of a web-based system. Although a few of test tools are available on today's market, they all have various limitations in different areas. Therefore, there is a strong need on practical test tools for web-based application systems.

  1. Conceptual Process Model and Workflow

A global software production line may involve a number of development teams and verification teams at different locations. Each team may have its own workflow to control and manage the process of problem tracking, analysis, and resolution. Figure 6 shows two typical workflow examples. Figure 6 (a) shows a typical workflow used at Global Technology Division in a Fujitsu Network Communications Systems, Inc., and Figure 6 (b) displays a typical workflow used in Operation System Division of Fujitsu Limited. The optional steps in 6 (b) indicate the different additional steps involving in a workflow. These optional stages are either blocking or non-blocking stages. According to our customers, the PIMS must provide a simple, flexible and configurable workflow mechanism to support diversified needs for problem tracking, analysis and resolution in different teams.

PIMS Workflow Requirements

The basic workflow requirements for the PIMS system are summarized below:























State-based Workflow Model

The PIMS system uses a state-based workflow model to define a process workflow for problems in a software product. In this model, each workflow can be viewed as a finite state machine that consists of a) a set of states, and b) a set of edges between states. Each state represents a status during problem processing. For example, PR in Table 2 is a state that refers to a problem reporting stage in a problem workflow process. An edge from one state to another indicates a workflow transition between two stages in a problem workflow process. A transition usually triggers a status change of a problem. Meanwhile, it may cause some other events, such as notification event. For instance, E3 in Table 2 indicates the state transition from state PA to state PF. In some cases, a problem workflow state transition may cause different user operations. E2 is a typical example. It transfers the workflow state from PA to FR. In the course of the transition, the corresponding problem status can be changed from OPEN to HOLD, ISSUE, or ENHANCEMENT.

Edge List:

Edge #1D

Current State

Next State

Operation on problem status

E1

PR

PA

Problem status = OPEN

E2

PA

FR

Problem status = HOLD, ISSUE, ENHANCEMENT

 

or ENHANENCE

E3

PA

PF

Problem status = ASSIGNED

E4

PF

FR

Problem status = NON-FIXED, NOT-PROBLEM

E5

PF

PV

Problem status = FIXED

E6

PV

PF

Problem status = FAILED

E7

FV

FR

Problem status = PASSED

E8

FR

PF

Problem status = RE-ANALYSIS

E9

FR

PA

Problem status = RE-FIX

E10

FR

FR

Problem status = CLOSED

Workflow State List:

Workflow State

 

State

Description

Role or Actor

GUI Component

User Operation Component

PR

Problem Report

QA & Test Group

Report Component

Add Button

PA

Problem Analysis

Manager Group

Assignment Component

Add Button

PF

Problem Fixing

Develop Group

Fixing Component

Add Button

PV

Problem Verification

QA & Test Group

Validation Component

Add Button

FR

Final Review

Manager Group

Review Component

Ok Button

Table 2. A State-Based Workflow in PIMS for Figure 4 (a)

It is clear that this state-based workflow model is simple and easy to understand. All problems in a global production line are processed following a pre-defined workflow model - that is a state-based workflow. However, each problem has its dynamic workflow status and execution. After applying this data-centered workflow model we found that it has the following advantages:

Workflow Design and Implementation in PIMS

Based on the state-based workflow model, the PIMS system developed a low-cost workflow processor, which contains two parts. The workflow administration is the first part, which handles workflow definition, change, and configuration. It allows a system administrator to define a state-based workflow model to support a global software production line based on a set of pre-defined default workflow models. To help users, a set of pre-defined workflow models is provided in an administration database to allow a user to select, change, and configure a new workflow. In addition, a user can display the current workflow model in a graphic format.

The other part is workflow tracking that performs two functions: a) control and monitor user operations based on an existing workflow, b) dynamically change the workflow states for all problems. To reduce the communication overhead on Internet, the PIMS system implements the workflow tracking and control function at the client side only. The basic idea is explained here.

Workflow Discussion

According to Raul Medina-Mora et al. [11], there are three types of workflow-enabled applications: workflow-initiating applications, workflow-participating applications, and workflow management applications. It is obvious that our workflow model and processor is playing as a participating role in the PIMS system. In the past, there are a number of different workflow models, which have been proposed for process management. For example, Peter H. Feiler and Watts S. Humphrey [8] uses a process transition diagram to model the structure of a process, including process entities and actions. Sergio Bandinelli et al. [2] uses a Petri-net to model a process and its related activities. In addition, Keith D. Swenson et al. [13] also use State chart diagram and Pert Chart to represent a plan in business process.

In the PIMS system, we implement a simple and low-cost workflow mechanism for problem process in a web-based software management tool. A state-based workflow model is used as a basis to model a problem tracking and resolution process for problems of a software product. Meanwhile, a data-driven method is used to automatically control, track, and monitor the problem status and its dynamic workflow. Our application experience indicates that this is a practical and simple solution with a very small overhead. Its reusable and configurable features make the adoption of the PIMS system much easy and simple.

  1. PIMS System Deployment Experience and Lessons

The first beta version of the PIMS system is developed at the end of 1997. After 6 months, the first release of the PIMS system is deployed in a global software project, and used by several teams worldwide. Until now, we have delivered 4 different releases of the PIMS system to our customers, and more than 6 global software projects have used the system to support the problem management among teams in a global scope.

The deployment procedure for the PIMS system includes the following four steps.

Deployment Obstacles and Issues

During the development process of the PIMS system, we encountered many issues and obstacles. The major obstacles are from users and customers on global software production lines. The stereotype images and preconceptions of users is the first obstacle. Since our users and customers are engineers and managers from different organizations over worldwide, they usually have some experience on using one or more different host-centered software engineering tools. These experiences somehow create their preconceptions on a software tool, including its look and feel, label convention, working procedure, functional features. These stereotype images involuntarily become their obstacles to accept and use a new software tool. The next obstacle on the user side is their unreasonable expectations on a web-based software tool. Because of the current technology limits on the Internet, a web-based software tool usually has a slow responding speed and the limited capability to support windows and graphics in comparison with a host-centered software tool. However, most of our users expect that the PIMS system should have the same responding speed as a host-centered software tool. Some of them expect to see the MFC-based window functions and GUI style. These expectations told us that users always want to use software tools with best performance, quality and GUI style, even though they don't know that the current W3 technologies (such as Java and HTML) can not deliver web-based software tools to meet their expectations. However, these expectations did cause the difficulty during the initial deployment of the PIMS system over global software projects.

In deploying the PIMS system onto global software projects, we encountered three major issues.

Deployment Experience and Lessons

Impacts and Benefits

The introduction of the PIMS system to several global software projects has brought out several impacts on collaborative development processes.

Deployment Observations

According to our observations, there are two major successes of the current PIMS system. The first is its systematic workflow model, which provides an effective mean to convert ad-hoc problem processing workflow in collaborative development processes for global software production. The other is its strong customization functions that provide an essential key to support diverse user needs in system data, workflow, and report formats. This makes it easy for us to introduce the system into many teams for global development projects. After deploying the system into global projects, we realized that the current PIMS system, like other existing problem management systems, has its limitations in the following areas:

  1. Conclusions
  2. How is everyday software engineering practice differently when the Internet is used? How should we use Internet technology to improve problem management in a global software process? What are the needs, problems, solutions and effective strategy to establish a web-based enterprise system infrastructure for a large corporation to support software problem book keeping, problem tracking, problem analysis, and reporting for global software production?

    This paper provides our answers to these questions based on our development project of the PIMS system. Besides the discussion of our reusable client and server system structure, it presents an interesting approach to design and implement the automatic problem tracking based on a configurable state-based workflow model. Moreover, the paper reports our real practical development and application experience which are valuable for people and enterprises for building their web-based software engineering environment.

    Our project experience proves us that the Internet technology is a cost-effective mean to form a web-based enterprise system infrastructure to support the management of concurrent development processes for global software production. The application experience of our PIMS system shows that a web-based enterprise support environment has the distinct advantages for global software production in information sharing, problem management, project management and coordination.

  3. Acknowledgement
  4. We would like to thank all members in the R&D group at the Software Engineering Department in the Global Software Technology Division, Fujitsu Network Communications, Inc., San Jose, California. We also want to thank all members in Global Development Engineering Department at Operation System Division, in Fujitsu Limited, and all members in Software Engineering Department in Fujitsu Hokkaido Communication Systems Limited.

  5. References

[1] Richard Bentley, Thilo Horstmann, Klaas Sikkel, Jonathan Trevor, "Supporting Collaborative Information Sharing with the WWW: The BSCW Shared Workspace System", Proceedings of Fourth International World Wide Web Conference, World Wide Web Journal, O’Reilly & Associates, Inc. 1995.

[2] Sergio Bandinelli, Elisabetta Di Nitto, and Alfonso Fuggetta, "Supporting Cooperation in the SPADE-1 Environment", IEEE Transactions on Software Engineering 12(1996) 841-865.

[3] John R. Callahan, Reshma R. Khatsuriya, and Randy Hefner, "Web-Based Issue Tracking For Large Software Projects", IEEE Internet Computing, 5(1998) 25-33.

[4] John C. Grundy and Mark D. Apperley, A Decentralized Architecture For Software Process Modeling And Enactment, IEEE Internet Computing, 5(1998).

[5] Jerry Z. Gao, Cris Chen, Y. Toyoshima, and David K. Leung, "Developing An Integrated Testing Environment Using The World Wide Web Technology", Proceedings of COMPSAC’97, pp. 594-601, IEEE Computer Society Press, 1997.

[6] Jerry Gao, "NMS/Foundation PIMS Function Design Specifications for NMS Foundation", Fujitsu Network Communications, Inc., Technical Document, Version 1.04, 1998.

[7] Jerry Gao, Cris Chen, Y. Toyoshima, and David K. Leung, "Engineering Internet for Global Software Production", IEEE Computer, May in 1999.

[8] Peter H. Feiler and Watts S. Humphrey, "Software Process Development and Enactment: Concepts and Definitions", Proceedings of the Second International Conference on the Software Process – Continuous Software Process Improvement, Berlin, Germany, February, 1993, pp. 28-39, IEEE Computer Society Press

[9] Eric Ly, Industry Report: Distributed Java Applets for Project Management on the Web, IEEE Internet Computing, 3(1997) 21-26.

[10] Frank Maurer and Gail Kaiser, "Software Engineering in the Internet Age", IEEE Internet Computing, 5(1998) 22-24.

[11] Raul Medina-Mora, Terry Winograd, RodrigoFlores, Fernando Flores, "The Action Workflow Approach To Workflow Management Technology", Proceedings of CSCW’92, pp. 281-288, November 1992.

[12] Walt Scacchi and John Noll, "Process-Driven Intranets: Life Cycle Support for Process Reengineering," IEEE Internet Computing, 1(1997) 39-50.

[13] Keith D. Swenson, Robin J. Maxwell, Toshikazu Matsumoto, Bahram Saghari, and Kent Irwin, "A business process environment supporting collaborative planning", Collaborative Computing, 1(1994) 15-34.