Integrating Project Management, Software Development, and Knowledge Management Models: A Case Study in a Public ICT Services Organization

Abstract

In project-based organizations knowledge is a critical resource used to develop and deliver products and services with a high level of quality. Therefore, a systematic and sustainable process is necessary to coordinate knowledge management, project management and product lifecycle. This scenario predominates in companies focused on the creation and maintenance of information systems. This article presents an exploratory study based on a framework that integrates cognitive, managerial, and operational processes in a public Brazilian organization that provides services in the area of information and communications technology, focusing on the construction and maintenance of information systems. Those processes are operationalized by three management models considering knowledge, project, and software development processes. Our proposal aims to understand the relationships between those three management models and their influence on the software development process in the organization under study. Our premise is based on the principle that cognitive management, project management, and software development management must be integrated to fulfill the demands of product development and service provision. The research data was composed of registers of working hours spent on software development and maintenance projects involving 244 people allocated to 5064 projects in the period from 2007 to 2013. The study resulted in the identification of the relationships among the three management models adopted by the organization, with emphasis on knowledge management activities, which were not directly identified, making it difficult to account for and measure them. We established a set of activities connected to each one of the knowledge management model phases. Since those activities were not visible before, our approach contributed to build a systematic process to register and relate activities linked to the dimensions of cognitive processes, project management, and software construction.

Share and Cite:

Luiz dos Santos, J. and Ribeiro Sampaio, R. (2023) Integrating Project Management, Software Development, and Knowledge Management Models: A Case Study in a Public ICT Services Organization. Social Networking, 12, 1-27. doi: 10.4236/sn.2023.121001.

1. Introduction

In organizations strongly dependent on knowledge to develop project-based products and services efficiently, effectively, and with a high level of quality, a systematic and sustainable process is needed to guide and manage this knowledge, to support the performance of processes and activities that directly or indirectly depend on such knowledge. This scenario predominates in project-oriented companies focused on the creation and maintenance of information systems. One issue concerning the adoption of knowledge management in such organizations is the lack of visibility of the concrete actions that materialize the plans developed in the strategic sphere. Such actions must be systematized at the tactical level to guide their application at the operational level in the same way as with other types of models, such as the one adopted for project management presented in [1]. Another example of standardization of activities comes from the software development process management model, the Capability Maturity Model Integration detailed by [2]. The complexity of software development environments is notoriously influenced by the overlap of the various views and models that they use. In our study, we consider the three managerial dimensions essential for conducting the work performed in software development and maintenance. The first, at the operational level, is the execution or construction and corresponds to the core of what needs to be delivered, which is the software. At this level, the activities that make up the development process are performed. At the level immediately above is the project management dimension, whose main purpose is to guide the process of building and maintaining software, coordinating actions that support the software life cycle to create a favorable context for its development within the project management perspective. Finally, the third layer corresponds to the managerial processes related to strategic knowledge, which is reflected in the performance of all tasks at the operational level. This context raises the main research question of our study: How project managers and team members can visualize and measure the progress of projects, in an integrated approach, considering models related to software development, knowledge, and project management simultaneously? In this sense, the goal of this study is to understand how the management models linked to the software development and maintenance process are integrated to contribute to project management and to categorize project tasks related to software creation and maintenance in terms of the knowledge lifecycle adopted by a public organization specialized in information and communications technology services. To answer this question and attain our aim, we chose a sector responsible for software construction and maintenance in a public Brazilian company providing services in the area of information and communications technology, SERPRO, Serviço Federal de Processamento de Dados, as the research object. Our approach highlighted the role of activities related to the models of knowledge, project, and development process management, and the existing relationships between them.

Previous studies also treat Knowledge Management, Software Development Management and Project Management related to the diffusion of organizational knowledge. However, they do not interconnect these three managerial areas in a systemic manner. This article presents an empirical model that describes the relationship between the activities of management models of the structural basis of knowledge used for software construction and maintenance. The model was based on the assumption that software construction and maintenance depend on cognitive processes, project coordination, and management processes related to the construction and management of software development. To achieve this objective, it was necessary to: 1) map the activities related to the three management areas; 2) apply the mapping to the data on personnel allocation records to software construction projects comprised between 2007 and 2013; 3) identify organizational actions that fit the knowledge management vision adopted for the analysis model; and 4) analyze the results obtained.

This article contains seven sections, the first being this introduction. Next, we present the theoretical framework that supported our research, considering the three main management areas that form the integration model. The third section describes the organizational environment where the research took place. In section four, we discuss the methodological path adopted and describe the analysis model that served as a filter to understand the relationships between the three management models and their phases. The fifth section describes the results obtained and presents the analyses. The sixth section discusses the results and finally, in section seven, we make the final considerations, present the conclusions and suggest extensions for futures researches.

2. Management Models and the Software Construction Process

The development of project activities in organizations is aided by several management models. The construction of organizational culture helps to shape what [3] termed “Ba”, which comprises a set of structural and behavioral elements that influence the process of creation and diffusion of organizational knowledge. It is important to understand this context, considering the various models adopted by organizations to perform both their routine activities and their projects.

2.1. Strategic Knowledge Management and Software Development

Knowledge is the basis for all organizational development, regardless of the area of study in question. However, as a formal discipline, Knowledge Management represents a relatively recent area of study applied to organizational business. In Brazil, it became notorious in the 1990s, mainly due to the dissemination of the studies by [4]. The recognition of this area of study can be seen in the use of the word knowledge itself in most denominations of systematic approaches for the application of management models and best practices, such as PMBOK described by [1] and SWEBOK described by [5]. The first example is one of the main references for project management and the second, an equally important reference in the area of software development.

Even though there is already a vast set of references that provide examples of the application of knowledge management in various organizations, such as [4] as well as [6] and [7], there is still no consolidation of best practices in a format similar to that presented in the areas of project management and software development process management. However, [8] presented a well-structured compilation of the main concepts and practices in knowledge management.

The strategic view of knowledge as described by [9] has the purpose of identifying, developing, disseminating, and updating relevant knowledge in a strategic way for organizations using both internal and external processes. These authors also consider that organizational knowledge is the result of interactions that occur within the company and that are developed through learning processes. In this sense, the knowledge necessary to develop the work in software development and maintenance projects is distributed throughout the various stages of projects, being shared and developed over the whole period of software construction. These stages make up the software development life cycle, as demonstrated by [10] and [11]. In addition to the knowledge management necessary for software development, it is also necessary to apply the best project management practices to obtain high-quality software.

2.2. Project Management

Project management is the area responsible for coordinating the implementation of projects, considered temporary and exclusive ventures for the creation of services or products under certain time and budget constraints, as defined by [1] and [12], in addition to the constraints imposed by the definitions of the product or service requirements. As with other management models, the model proposed in [1] also comprises phases that represent the life cycle of the projects, in a general sense. Each phase in turn includes a set of activities considered relevant and adopted as a set of best practices for the successful completion of projects. Still regarding project management, [13] also considers that this area addresses both project management and the business management organizational area. The referred author emphasizes this aspect by considering that project decisions have a direct impact on business decisions, especially regarding strategic projects for organizations.

At the same time, the adoption of project management models brings practical results to the operational activities of organizations. What is expected is that by executing the projects using these best practices, organizations can obtain better results in their production process and consequently in the services and products that may result from the projects. Thus, understanding these activities, as described in [1], is part of the knowledge necessary to execute tasks to be accomplished in the scope of projects, but it is also necessary to acquire managerial knowledge that is positioned at the tactical level of decision-making in the organization. These activities guide, coordinate and direct the development of the work itself, which will result in the construction and maintenance of software in the case of organizations focused on this branch of activity.

The life cycle of project management according to [1] is synthetized in five phases in which the various management activities related to each of the ten areas of knowledge included in the model proposed in the PMBOK are distributed. Thus, initiation, planning, executing, monitoring & controlling and closing, consist of well-defined phases that occur in parallel to the project execution, as they refer to management and not to implementation. In a similar way, the software development process management model is composed of specific phases that guide the project execution.

2.3. Software Development Process Management

Several methodologies and techniques have been developed to minimize problems related to the construction and use of the software. Such methodologies have evolved seeking to increase the quality of the software products offered, based on the principle that product quality depends on the quality of the process used to produce it, and this principle has been the basis for the development of software engineering as defined by [14].

The improvement of methods and techniques applied to software construction culminated in the structuring of development processes, along the same lines as the processes used in traditional engineering. The term process, as adopted in this work, follows the definition given by [15], who consider a process as a systematic and organized approach to plan, coordinate and execute tasks aimed at the improvement and effectiveness of software product development. The referred authors have identified four main benefits of the adoption of formal management processes: communication, coordination, training, understanding, and improvement. For these authors, the specifications of processes in complex projects can also be useful to deepen the understanding of the nature of a process. The process specifications that can present a clear high-level image can also provide deep dives into higher levels of detail and are relatively more effective in supporting understanding.

For [10], the process layer forms the basis for software engineering. That holds the technological layers together and allows the development of the software. This basis is also useful for the management control of software projects and establishes the context in which technical methods are applied, work products (models, documents, data, reports, forms, etc.) are developed and used, milestones are established, quality is ensured, and changes can be managed.

In relation to tasks and activities, [10] describes a scale in which a process is a collection of activities, actions, and tasks that are performed when a work product should be created. In this sense, an activity represents an effort to achieve a broad objective and is performed regardless of the application that determines the domain, the size of the project, the complexity of the effort, or the degree of rigor with which software engineering should be applied. An action encompasses a set of tasks that produce a great work product. A task focuses on a small but well-defined objective that produces a tangible result.

The referred authors argue that software engineering methods provide means to build software, and the methods cover a wide range of tasks that include communication, requirements analysis, design modeling, program construction, testing, and support. Software engineering methods have a set of basic principles that govern each area of technology and include modeling activities and other descriptive techniques. All these activities should be performed based on knowledge and are guided by other activities that occur in parallel and that concern the management of software projects.

2.4. Related Studies

Among the various approaches studied that address the process of creation and diffusion of knowledge in the organizational context involving software development projects, we reviewed [16] [17] [18] [19] and [20]. In the study by [16], the SECI model of [4] was applied in the requirements assessment phase of the software development process. [16] argued that this is a phase of the process where knowledge is intensely produced. In turn, [19] studied some characteristics of knowledge exchange in project teams based on social network analysis techniques. A more in-depth longitudinal study that involves social network analysis was conducted by [21], and several metrics associated with knowledge networks that influence the process of knowledge creation and diffusion were identified and measured. In the referred research, emphasis was given to social network metrics applied to knowledge exchange considered in software development teams in contrast to the formal process of knowledge management as treated in the present article. In the work of [22], metrics related to the process of software development were also considered, but in their research the main concern was software development productivity and development time. In contrast to the referred authors, in the present article, we give emphasis to the knowledge management process in a qualitative approach, since the construction of a qualitative basis is the foundation for obtaining consistent indicators for process measurement and evaluation.

The work of [23], proposes a pragmatic approach involving the coordination of multiple teams of software development projects based on the agile methodology. Our work differs from the one presented by the referred authors, mainly because our focus resides in giving visibility to knowledge management process areas and their activities, with respect to the development of software projects.

The modeling proposal presented by [20], however, is the one that is closest to ours, both from the point of view of the objectives and from the point of view of the context where it is applied, considering that these authors also studied the process of creation and diffusion of knowledge related to software development. In our study, although the company studied effectively strategically applies knowledge management, to support the work processes of its target area, there is no formal structure in the organization that delineates the practices of knowledge management in a systematic and standardized way. Therefore, the construction of a list of activities associated with the phases of a knowledge management model is important to initiate a systematic process of organizational knowledge management, aiming to make it sustainable and resulting in continuous improvement actions. The foundations of the model structure considered in this work are based on the model presented by [24].

In the work presented by [25], an exploratory study was conducted based on a multi-case study involving two large-scale software production projects of two large companies, using software development teams as units of analysis. The study described in that report collected empirical data from surveys, interviews, focus groups, observations, and documents. The approach adopted by [25], addressed large-scale software development by conducting a multi-case study that compared the formation of knowledge networks in two different companies. These authors sought to explore the role of knowledge networks and the respective influencing factors on the large-scale software development process.

Based on the research data obtained from focus groups and interviews, these authors made comparisons between the various characteristics and mechanisms of knowledge networks. In their report, [25] describe that social network analysis enabled building the team networks, to perform the thematic coding of the characteristics of the networks and the environmental factors influencing them, and to summarize and tabulate the data to identify the trends. [25] developed a model of factors that influence knowledge networks and the behavior related to the formation of networks. The set of factors served, according to these authors, to establish hypotheses based on the results obtained by the data analysis. The referred authors concluded that the formation of networks is of paramount importance for the successful development of large-scale software construction projects. In our study, the same consideration is made, and our assumptions are based on the formation of these knowledge networks, supported by technological factors and organizational management factors related to the software development process. But the focus on the structure and behavior of knowledge networks is treated in detail by [21] [26] and [27] where studies in the same organization took place.

In turn, [20] address complex software development projects, considering planning, stakeholder communication, and aspects related to collaboration in the various phases of software construction projects. These authors consider that software development and maintenance are part of an evolutionary system of the software process. In their work, they argue that the adoption of knowledge management practices in software engineering benefits the construction and especially the maintenance of software. The results presented integrate knowledge management with software engineering to identify influencing factors and relationships of cause and effect between the knowledge creation and diffusion process and the obtainment of quality software. Contrary to the approach presented by [20], who consider that the nature of software maintenance presents some difficulties concerning the knowledge necessary for the software process related to this activity, in our study, we understand that the role of documentation that represents explicit knowledge about the operation of the software is to promote good communication between stakeholders about what should be accomplished in projects. This role is prescribed in the software requirements elicitation macro activity presented in the CMMI model. In addition to providing the understanding and improve knowledge present in the initial stages of requirements analysis in the process of building new software, so that the software meets the expected needs regarding the evolutionary process represented by software maintenance, documentation should provide the knowledge base for the execution of maintenance projects.

3. Research Environment

The organizational structure selected to carry out the research was the department responsible for projects of software development and maintenance of the Federal Data Processing Service (SERPRO), a Brazilian public company providing information technology and communication services for the Brazilian federal government. SERPRO is the largest public company providing information and communications technology services in Latin America and was founded in 1964 to initially support, with information technology services, the various agencies and companies of the Brazilian federal government have over time expanded its operation to provide services to other companies and citizens. The organizational environment is formed by technological components, material resources, and human resources, which are quite heterogeneous and undergo constant mutation, mainly because the core business area of the organization is directly related to technology. Because of this condition, quite different technologies and platforms harmoniously coexist in the company to meet a wide range of demands for services and systems. In the organizational dimension, focused on meeting customer needs, the company adopted several management models, each focused on its specialized areas of support to the process of developing systems and providing information and communications technology services. Thus, it was possible to test and apply several of the main existing models in the market, such as the CMMI® (Capability Maturity Model Integrated), focused on the software development process, or even the proposal applied to project management, based on the set of best practices presented by the Project Management Institute, PMI® and consolidated in the Project Management Body of Knowledge, PMBOK®. In addition, the company adopted a knowledge management strategy to channel the knowledge produced to obtain better results. One of the major challenges faced by the organization was the integration of the various models in addition to ensure the compatibility and integration of the various technologies used in its production process.

4. Methodology

Our proposal consisted of making the knowledge management model presented by [24], operational, seeking to adapt it to the reality of the organization. For this, we adopted a bottom-up approach applied to exploratory research, which started from the identification of the primary activities related to the area of software project development, applied in the operational base of the company. From this identification, and the pre-existing classification of these activities in the software development process management model in use in the period considered for the research, we built a model that relates the software development process management activities to the activities of project management and those of knowledge management. Based on this model that integrates the three main management approaches adopted by the organization, we framed the work activities in the phases corresponding to each of the management models to then infer the corresponding phase of the knowledge management model as a result.

Our approach is grounded on three management pillars: knowledge management, here addressed from a strategic point of view; project management, which indicates at the tactical level the best practices to be applied in carrying out projects, showing how to execute them to obtain better results; and finally, the software development process management, considered at an operational level, which aims to apply techniques and methods that seeks results of high-quality software. These three areas were combined into a model that integrates phases and activities and was used to map work tasks performed in software construction and maintenance projects over seven years in the organization under study. The mapping was performed using data from the daily recording of work activities, performed by the employees of the organization under study. In this step, we used the existing records of the information system used to manage software project activities at the operational level, which describe tasks classified according to the management model in use at the time of the implementation of the projects. This classification categorizes the activities according to the phases of the project, seeking to fit them into the management model of the software development process. Based on this initial classification, a relationship was established between the phases and activities of the management model of the development process and the project management and knowledge management models. This mapping was based on the characteristics of the activities, on the existing information about the phases of the development process, and also considering theoretical assumptions that suggest points of intersection between phases and activities of each of the models used. Once the relationships between phases and activities were established, the recorded activities were framed within the model developed using the categories and descriptions reported for each task. Subsequently, the already classified data were sorted by the date when the task was performed, and grouped by people and sectors responsible for it and by process group that corresponds to a set of tasks of each of the three management models. Since the data were gathered and structured, it was possible to aggregate and consolidate results to perform analyses. Figure 1 details the methodological procedure adopted for the study. Initially, we considered the organizational environment and performed an analysis that resulted in a model that represents the synthesis of management practices adopted by the organization, considering the main management models adopted at the operational, tactical, and strategic levels.

From this general model, it was possible to identify the operational practices implemented in each process group in the respective models. Next, we built the data model shown in Figure 2, which resulted in the construction of a database to store the data directly extracted from the working hours obtained from the project management system and the data resulting from the aggregation of the elements of the analytical model built for the study. The modelling was made following the Unified Modeling Language methodology, as suggest in [28]. Subsequently, the relationships between the management models were established, giving rise to the relationships shown in Table 1 that includes the cognitive dimension of the knowledge management model at the strategic level, the coordination dimension or project management at the tactical level, and the operational dimension associated with the development process management model.

Figure 1. Detailed methodological process. Source: (The authors, 2020).

Figure 2. Data model used to support the research. Source: authors (2020).

5. Results

The data structure that supported the construction of the model is shown in Figure 2. From this structure, it was possible to obtain queries and derive new tables to perform the research analyses. The initial structure consisted of the record of people, projects, allocation of people to projects, and recording of hours. To this structure, we added the elements related to the management models and their respective phases, activities, and sub-activities. In addition to describing the existing environment, the data model offers the possibility of adapting and updating the currently adopted models, or even including other models.

The class that represents the mapping in the data model has a structure that allows the cross-referencing of activities of each of the adopted models to indicate the intersection between activities present in each of its phases. This table is, therefore, the main contribution of modeling to identify the relationships between models, their phases, and activities. The complete mapping performed considering the three models adopted at the time of the study is shown in Table 1.

Table 1 is the result of the mapping of the relationships between the three models and offers a three-dimensional view of these relationships. To identify the existence or absence of a relationship between the phases of each of the models, we consider the underlying activities described in the references of project management, software development, and knowledge management, i.e., [1] [5] and [24], respectively.

Table 1. Mapping of knowledge, project, and process management models. Source: authors (2020).

The analysis of the organizational environment sought to identify structural and behavioral elements in that environment that could reveal the practices related to the management models considered. Thus, for the development process management model, the CMMI was identified. In the area of project management, we observed the practices related to the model described in [1] and in the area of knowledge management, although it is not formally possible to identify a pattern in the company, one can identify from the organizational practices that the model that best represents the process is the model of [24]. Thus, based on that and the structure provided by each model, we could build the practices map that represent the effective behavior of the company when using the models and performing its daily activities.

Table 2 is the result of the compilation of development management activities in the process proposed by [24]. From this compilation, we observed the organizational environment to identify the presence of each of the suggested practices. Here, it is important to note that as there is no universally accepted standard on what activities should fall within each phase, it would be possible to establish a different list of activities if the organization were another or if there was a change in the organizational context. The results are described in Table 3, which indicates the identified organizational practices for each activity when they exist.

After including the mapping in a class of the data model that supported the data structuring and analysis of results, it was possible to relate the set of daily activities reported by the staff members of software development and maintenance project teams, considering the categorization of these activities, which resulted in a class of relationship between activities performed and phases of each model. This table was the basis for the construction of the query and allowed different views of the data and consequent plotting of the data.

From the structuring of these data, it was possible to infer both from a qualitative and quantitative point of view the existence of activities related to the knowledge management model, which were not explicitly categorized in the information system used for daily recording of activities.

The activities of each phase of the knowledge management process presented in Table 2 were compiled from the reports and suggestions of practices presented by [24]. This set of activities cannot, however, be considered definitive and complete. On the contrary, the model proposed here suggests that this classification may change and undergo adaptations to include, exclude or modify the activities presented, as necessary for each project. A structure similar to that presented in Table 2 and that inspired its development can be found in [28] based on the structure presented in [1] but applicable to the area of project management. Similarly, [5] provides a list of activities that compose the software development management processes, according to the model presented by these authors. By applying the knowledge management model, together with the activities that compose it and which are described in Table 2, within the organizational environment where the study was applied, we sought to identify examples

Table 2. Activities of the knowledge management process. Source: authors (2020), based on [24].

Table 3. Knowledge management process activities identified in the organization.

Source: authors (2020).

of practices effectively performed in the company. Such practices are presented in Table 3 as a result of the application of the referred model.

The activities of each phase of the knowledge management process presented in Table 2 were compiled from the reports and suggestions of practices presented by [24]. This set of activities cannot, however, be considered definitive and complete. On the contrary, the model proposed here suggests that this classification may change and undergo adaptations to include, exclude or modify the activities presented, as necessary for each project. A structure similar to that presented in Table 2 and that inspired its development can be found in [29] based on the structure presented in [1] but applicable to the area of project management. Similarly, [5] provides a list of activities that compose the software development management processes, according to the model presented by these authors. By applying the knowledge management model, together with the activities that compose it and which are described in Table 2, within the organizational environment where the study was applied, we sought to identify examples of practices effectively performed in the company. Such practices are presented in Table 3 as a result of the application of the referred model. The activities related to the software development process as presented in SWEBOK, unlike those presented in the model described in [24] and in the PMI project management model, are distributed in a way so that they partially represent phases of the development life cycle and partially represent areas of knowledge that support the development process. Thus, of the 15 dimensions of the model presented in SWEBOK, five correspond to the phases of the classic life cycle of system development. Another five phases represent activities that support the development process, and the remaining five can be considered areas of knowledge support within the development process, which describe key concepts for the development of software engineering. Of these 15 areas, we were able to identify 10 areas present in the set of work activity recorded in software development and maintenance projects used in the system that was the source of the data. These activities are illustrated in the plot of Figure 3. In this plot, we see a predominance of activities related to the software requirements, construction, and design phases. The percentages corresponding to each of the identified phases are shown in Table 4.

The plot in Figure 4 shows the distribution of work time recorded in project management activities in the years considered in the present study. Comparing the results with those presented in the [1], we observed that the planning area has a comparatively low value compared to the expected value and that the highest values are observed in the initiation and execution phases.

Figure 5 presents the plot of the recorded working hours in the area of knowledge management in the period between 2007 and 2013. The variations in volume observed between the various years considered are due in part to the fluctuation in demand for projects that occurs between the years.

The application of the model allowed visualizing the distribution of working hours in an aggregate manner but also allowed visualizing it at a level of granularity that allows completing a given project in a year. The same type of result can be obtained for a person who is a member of a project team.

Table 4. Distribution of work time for process development management (2007-2013). Source: authors (2020).

Figure 3. Accumulated work hours for process development management (2007-2013). Source: authors (2020).

Figure 4. Accumulated work time for project management (2007-2013). Source: authors (2020).

Figure 5. Accumulated work time for project management (2007-2013). Source: authors (2020).

6. Discussion

This article is the result of the unfolding of previous research, whose objective was to study the process of creation and diffusion of knowledge, in social and complex networks formed by software development and maintenance project teams, described in [21]. In the referred study, issues concerning the theory of complexity in the sense described by [30], were treated considering a temporal perspective. One the objectives of [21], was to analyze the dynamics of the knowledge creation and diffusion process which results in information and knowledge flows, in a conceptual framework aligned with the argument exposed by [31].

The precariousness of effective metrics for the evaluation of knowledge management models is still a challenge for organizations that decide to implement such models. When we analyzed the model proposed by [24], we found that among the activities of the core processes of knowledge management is the development of knowledge objectives based on the previous construction of metrics, so that the process can be evaluated. However, the use of knowledge management models, by itself, does not guarantee that the organizations that adopt them will have visibility of the results unless they build a consistent system of metrics interconnected to the organizational processes linked to the knowledge required to perform its activities. Thus, it is important to develop structures that help understand and evaluate the various models and their interconnections to determine the contribution of these models to organizational results, qualitatively and quantitatively.

As suggested by [32], the organization studied has developed its organizational culture in order to help the absorption, reception and use of knowledge-transfer activities. This cultural environment has been enriched along the years and this improvement is reflected in the knowledge management activities identified and mapped shown in Table 3. Nonetheless, one of the greatest challenges related to the implementation of an effective knowledge management process is to build a consistent metric system to evaluate the results of the adoption of such knowledge management policies.

The differentiator of our proposal is that it does not link the approach to a single type of management model. By assuming that the performance of business activities that result in products, services or both, depends on knowledge, project, and production process management, we built a generic framework that can house different models in any one of the areas related to the production process adopted by the organization. Thus, the general structure presented here is capable of supporting new models that may emerge and be adopted by the organization, including even its various versions, to the extent that these models will be updated based on their natural evolution. This characteristic of our proposal is aligned with the idea that knowledge is dynamic and is in constant transformation and that, therefore, the structure that supports this knowledge must be sufficiently flexible and adaptable to absorb and incorporate new concepts, processes, and activities.

In contrast to the proposal presented by [20], we consider in our study that the documentation generated in the early stages of the software development process should be permanently updated whenever there are changes in the definitions of the requirements and should also be versioned, preferably using a software versioning tool, according to what is advocated for the area of software configuration in Guide to the Software Engineering Body of Knowledge (ACM/IEEE SWEBOK) [5].

Our approach considers that the documentation developed in the early stages of software development projects should evolve during the life cycle, being updated as new requests arise from customers generating evolutionary or corrective maintenance. The proposed model takes advantage of all the existing documentation, using versioning tools to maintain the evolutionary history of the software, thus avoiding the loss of knowledge. In addition to the versioning of the software produced, this model also allows the versioning of the models used to manage the software production process.

Furthermore, the mapping of activities related to the cognitive, project management, and development process dimensions can be applied in other contexts where there is a systematic record of activities related to software creation and maintenance. Additionally, the mapping has a flexible structure, given that we took into account, from the beginning, the possible evolution, and change of the management models employed in the organization. The mapping of the relationships between the three types of models allowed us to provide visibility and to highlight at the operational level, actions related to the creation and diffusion of organizational knowledge, that were not explicitly visible, mainly because there is no specific record or categorization of the activities related to the phases of the knowledge management model adopted in the organization. In other words, the information system used for recording work activities in projects was not prepared to classify activities that directly or indirectly impact the process of knowledge creation and diffusion. Thus, it is easier to measure the progress of project activities and the software construction and maintenance process, but the relationship between these activities and those related to knowledge management cannot be directly classified, and consequently, the measurement of their evolution was compromised.

Although the organization under study has adopted models of project management, process management, and knowledge management, the activities related to the area of software development and maintenance still lack methods that allow categorization of work activities, considering a specific knowledge management model. Furthermore, we consider that the different management models must work in a joint and coordinated manner. Besides, there exists an overlap in the life cycle phases of each of the models. This overlap is portrayed in practice, in the model that integrates the three areas of management related to software projects.

The results obtained from our method contributed to the process of measuring the progress of knowledge management activities, since in that organization this area presents itself as the area with a greater lack of metrics. However, we consider that to measure the dynamic flow of organizational knowledge, it is necessary to categorize it. Nonetheless, there is a challenge related to the organizational knowledge categorization process, when the tasks performed are taken as a basis. This challenge refers to the fact that the execution of a certain task is usually related simultaneously to more than one category of knowledge necessary for its accomplishment. Especially, when different management models are adopted in an overlapping and concomitant way, this intertwining of knowledge areas becomes even more evident. In the case of the software development and maintenance process, a range of knowledge areas involved in the process can be identified. Although the main areas can be easily identified, as there is a great diversity of tasks and at the operational level there is a tendency to increase the level of knowledge specialization for the execution of tasks, this identification becomes increasingly complex.

The fact that different management models have different approaches and bring in their structure different types of knowledge and different life cycles, implies that a given work activity may be related to life cycle phases and areas of knowledge that correspond to different moments in each of these models. In our work, we initially devised a structure that allowed to relate the phases of each of the life cycles of the management models adopted in the organization, and, later, we framed the work activities in one or more of these related phases. This approach allowed classifying work activities more precisely, as well as gave visibility to the type of knowledge involved in each of the tasks. The categorization of knowledge is partly determined by the characteristics of the work activities developed, but it also depends on the models adopted by the organization, considering that certain models impose a specific type of knowledge on the work activities. In this sense, although some work activities require specific types of knowledge that are inherent to certain functions, there is, on the other hand, an influence of the model adopted in the way the task is performed. This mutual influence makes task categorization even more complex.

Another important issue to be taken into account when adopting management models is the additional workload that these models require and that are added to the activities related to the core of the work developed in the software construction and maintenance projects. In other words, maintaining each model requires additional hours of work that need to be factored into the overall project costs. In this sense, it is important that there is an effort to automate part of the management tasks, so as to facilitate the classification of these tasks what can lead to facilitate data collection in later phases of the process. The use of automation tools based on artificial intelligence is an alternative to assist in this process, albeit partially.

7. Conclusions

The different forms of knowledge exchange within organizations are essential to obtain high-quality products and services. Particularly in the area of software creation and maintenance, knowledge is essential for the successful development of projects. During the execution of projects, a significant part of the problems to be solved is related to communication and understanding of the issues involving the conversion of tacit knowledge existent in organizational processes into explicit knowledge that will later be converted into automated routines embedded in the information systems. In this sense, collaboration and interaction between the various team members, forming knowledge networks, is essential for the execution of projects. However, there must be management models that create favorable environments to the development of the knowledge necessary to perform the work.

In the present study, we argue that there is a strong interrelation between these models. Also, this interconnection has a direct influence on the process of knowledge creation and diffusion. Once the conditions provided by the organization are beneficial to the development of this process, the flow of information and, consequently, the flow of knowledge should be favored. The adoption of software development process models that encourage collaboration between members of software development and maintenance project teams improves the process of creating and disseminating organizational knowledge. Aiming to understand, improve and manage adequately the organizational knowledge assets, our approach presents a model that brings together structure and behavior based on the existent relationship amongst the three management models adopted by the organization. Such mechanism forms a system that drives the flow of organizational knowledge and has influence on networks formed by project team members, interfering in the process of creation and diffusion of knowledge applied to software creation and maintenance projects. This article presented an empirical model that demonstrated the relationship between management model activities from three perspectives within a public service organization in the area of information and communications technology, and exposed activities related to knowledge management that were previously hidden. Our approach considers three management dimensions. The first is the operational perspective represented by the activities linked to software construction, the second is the coordination present at the project management level, and the last, is the strategic organizational knowledge. The application of the model made it possible to explain activities related to knowledge management, which although were effectively performed in the organization, were not directly recorded, making it difficult to account for and measure them. Furthermore, it was possible to establish a list of activities related to each of the phases of the knowledge management model, which were not previously visualized. |Our proposal contributes to improve the information system that enables the recording of activities linked to the three dimensions addressed: cognitive, coordination of projects and software construction, as it gives visibility to the knowledge management activities related to software projects.

One of the limitations of the present study includes the lack of metrics related to knowledge management, which can be obtained from the visualization of the time recording data associated with tasks and activities related to the organizational cognitive dimension. This limitation may, however, become an opportunity to expand the present study, exploring the construction of indicators and metrics based on our results obtained. Additionally, another possibility of extension of this research is the construction of specific software for the recording of working hours allocated in projects that can categorize the activities according to the modeling proposal presented here.

It is important to note that both in the documentation of the produced software and in the control systems that support the management of the software development and maintenance processes, there is a considerable volume of information ready to be converted into knowledge that is not properly used. In this sense, the mapping of the phases and activities of the management processes presented in this study allowed the identification of different types of knowledge directly related to the organizational production process. This mapping also helped to explain the relationships between the dimensions, phases, and activities considered in each management model. All of it was only possible due to the existence of such documentation and the control systems adopted by the organization.

Conflicts of Interest

The authors declare no conflicts of interest regarding the publication of this paper.

References

[1] PMI (2017) A Guide to the Project Management Body of Knowledge (PMBOK® Guide). 6th Edition, Project Management Institute, Inc., Newtown Square.
[2] Chrissis, M.B., Konrad, M. and Shrum, S. (2011) CMMI® for Developmen: Guidelines for Process Integration and Product Improvement. 3rd Edition, Pearson Education Inc., London.
[3] Nonaka, I., Konno, N. and Toyama, R. (2001) Emergence of “Ba”. In: Nonaka, I. and Nishiguchi, T., Eds., Knowledge Emergence: Social, Technical, and Evolutionary Dimensions of Knowledge Creation, Oxford University Press, Oxford, 4-5.
[4] Nonaka, I. and Takeuchi, H. (1997) Criação de conhecimento na empresa: Como as empresas japonesas geram a dinamica da inovação. Campus.
[5] Bourque, P. and Fairley, R.E. (2014) Guide to the Software Engineering Body of Knowledge Version 3.0 (SWEBOK Guide V3.0) (R. E. Bourque, Pierre; Fairley Ed.).
https://www.computer.org/education/bodies-of-knowledge/software-engineering
[6] Von Krogh, G., Ichijo, K. and Nonaka, I. (2001) Facilitando a criação de conhecimento: Reinventando a empresa com o poder da inovação contínua. Elsevier, Amsterdam.
[7] Choo, C.W. (2003) A organização do conhecimento: Como as organizações usam a informação para criar significado, construir conhecimento e tomar decisões. Editora Senac, São Paulo.
[8] Dalkir, K. and Liebowitz, J. (2011) Knowledge Management in Theory and Practice. MIT Press, Cambridge.
[9] Fleury, M. T. L. O. J. M. de M. (2001) Gestão estratégica do conhecimento. Editora Atlas, São Paulo.
[10] Pressman, R.S. and Maxim, B.R. (2015) Software Engineering—A Practioner’s Approach. 8th Edition, McGraw-Hill Education, London.
[11] Pfleeger, S.L. (2004) Engenharia de software: Teoria e pratica. 2nd Edition, Prentice Hall, Hoboken.
[12] Kerzner, H. (2017) Project Management: A Systems Approach to Planning, Scheduling, and Controlling. 12th Edition, Wiley, Hoboken.
[13] Kerzner, H. (2018) Project Management Best Practices: Achieving Global Excellence. 4th Edition, Wiley, Hoboken.
https://doi.org/10.1002/9781119470717
[14] Sommerville, I. (2016) Software Engineering. 10th Edition, Pearson Education Limited, London.
[15] Cha, S., Taylor, R.N. and Kang, K. (2019) Handbook of Software Engineering. Proceedings of the IEEE, 74, 1599-1599.
https://doi.org/10.1007/978-3-030-00262-6
[16] Wan, J., Zhang, H., Wan, D. and Huang, D. (2010) Research on Knowledge Creation in Software Requirement Development. Journal of Software Engineering and Applications, 3, 487-494.
https://doi.org/10.4236/jsea.2010.35055
[17] Wan, J. and Wang, R. (2010) The Exploratory Analysis on Knowledge Creation Effective Factors in Software Requirement Development. Journal of Software Engineering and Applications, 3, 580-587.
https://doi.org/10.4236/jsea.2010.36067
[18] Wan, J., Wan, D., Luo, W. and Wan, X. (2011) Research on Explicit and Tacit Knowledge Interaction in Software Process Improvement Project. Journal of Software Engineering and Applications, 4, 335-344.
https://doi.org/10.4236/jsea.2011.46038
[19] Tang, Y. (2012) Knowledge Transferring Features in Traditional Construction Project Team in China: Based on SNA. Technology and Investment, 3, 230-235.
https://doi.org/10.4236/ti.2012.34032
[20] de Vasconcelos, J.B., Kimble, C., Carreteiro, P. and Rocha, á. (2017) The Application of Knowledge Management to Software Evolution. International Journal of Information Management, 37, 1499-1506.
https://doi.org/10.1016/j.ijinfomgt.2016.05.005
[21] dos Santos, J.L. and Sampaio, R.R. (2019) Temporal Analysis of the Diffusion of Knowledge in Networks of Software Maintenance and Development Project Team. Social Networking, 8, 122-146.
https://doi.org/10.4236/sn.2019.83009
[22] Rodger, J., Pankaj, P. and Nahouraii, A. (2011) Knowledge Management of Software Productivity and Development Time. Journal of Software Engineering and Applications, 4, 609-618.
https://doi.org/10.4236/jsea.2011.411072
[23] Dingsøyr, T., Moe, N.B. and Seim, E.A. (2018) Coordinating Knowledge Work in Multiteam Programs. Project Management Journal, 49, 64-77.
https://doi.org/10.1177/8756972818798980
[24] Probst, G., Raub, S. and Romhardt, K. (2002) Gestão do Conhecimento: Os elementos construtivos do sucesso. Editora Bookman, Porto Alegre.
[25] Šmite, D., Moe, N.B., Šāblis, A. and Wohlin, C. (2017) Software Teams and Their Knowledge Networks in Large-Scale Software Development. Information and Software Technology, 86, 71-86.
https://doi.org/10.1016/j.infsof.2017.01.003
[26] dos Santos, J.L. and Sampaio, R.R. (2021) Interpreting Nestedness and Modularity Structures in Affiliation Networks: An Application in Knowledge Networks Formed by Software Project Teams. Social Networking, 10, 1-18.
https://doi.org/10.4236/sn.2021.101001
[27] dos Santos, J.L., Sampaio, R.R., Pereira, H.B.B. and Grilo, M. (2021) Dynamics of Knowledge in Software Project Development Environments: An Approach Using Affiliation Networks. Social Networking, 10, 45-69.
https://doi.org/10.4236/sn.2021.104004
[28] Fowler, M. (2000) UML Distilled: A Brief Guide to the Standard Object Modeling Language. Addison-Wesley, Reading.
[29] Mulcahy, R. (2020) PMP Exam Prep: Accelerated Learning to Pass the Project Management Professional (PMP) Exam. RMC Publications, Inc., Minnetonka, Minnesota.
[30] Tywoniak, S., Ika, L. and Bredillet, C. (2021) A Pragmatist Approach to Complexity Theorizing in Project Studies: Orders and Levels. Project Management Journal, 52, 298-313.
https://doi.org/10.1177/8756972821999501
[31] Snider, K.F. and Nissen, M.E. (2003) Beyond the Body of Knowledge: A Knowledge-Flow Approach to Project Management Theory and Practice. Project Management Journal, 34, 4-12.
https://doi.org/10.1177/875697280303400202
[32] Ajmal, M.M. and Koskinen, K.U. (2008) Knowledge Transfer in Project-Based Organizations: An Organizational Culture Perspective. Project Management Journal, 39, 7-15.
https://doi.org/10.1002/pmj.20031

Copyright © 2024 by authors and Scientific Research Publishing Inc.

Creative Commons License

This work and the related PDF file are licensed under a Creative Commons Attribution 4.0 International License.