Keywords

1 Introduction

Software development projects are fertile fields for the creation and sharing of knowledge. Sveiby (1998) argues that the concept of knowledge is related to factors such as information, awareness, knowledge, cognition, wisdom, perception, science, experience, expertise, insight, competence, ability and learning.

When considering software artifacts as accumulated knowledge belonging to the stakeholders of an organization, the process of software development itself should be oriented to knowledge and must ultimately reflect the know-how of the organization (Dakhli and Chouikha 2009). Software development requires various forms of explicit and tacit knowledge. This knowledge is dynamic and involves technology, organizational culture and adaptation needs in its practice of software development (Aurum et al. 2003).

After the relationship of the information with the values, ideas, emotions, motivations and commitments, it can be internalized and become part of tacit knowledge for those involved in the process (Cassapo 2010). The knowledge is composed of elements in a structured way. It is intuitive, difficult to express and verbalise and it is part of the human being, with all its complexity and unpredictability (Silva 2004). The creation of new knowledge requires a model of management. Santos et al. (2001) adds that an organizational environment must be favorable to creative behavior and where learning should be continuous and collective.

So the question is: which knowledge management practices are related to agile methodologies for software development? Considering the relevance of the themes for the IT companies survival, an exploratory survey was conducted in the literature to minimize the gap found mapping this relationship.

2 Knowledge Management

The many authors studied agree that Knowledge Management can be defined as the conversion of tacit to explicit knowledge. The knowledge management can be classified into three types: economic school, organizational school and strategic school (Torres 2006).

In the economic school, achieving knowledge generates income through the accounting and management of intellectual capital. There is a greater concern with management than with the development of knowledge that is seen as an object that can be acquired, stored and distributed. In the organizational school, knowledge is socially acquired and shared through organizational structures. In the strategic school, it starts to have a competitive strategic dimension (Torres 2006).

This article explores the approach of the organizational school where the focus is on groups of people with the same interest, where the process is sustained by the interaction between people, within the Information Technology (IT) environment. In Awazu (2004), Knowledge Management is also treated in two distinct approaches: either as a technological or humanistic initiative. In the first one, the focus is on the use of information technology through systems that encode and create knowledge networks for organizational management of this. On the other hand, the humanistic approach has a people-centric perspective, where the focus is on managing individuals and teams to enable the creation and sharing of knowledge.

Considering the interaction between individuals, the Model Socialization, Externalization, Combination, Internalization (SECI) of Nonaka and Takeuchi (1997), features four modes of knowledge creation. Socialization is defined by sharing experiences, tacit knowledge being transmitted in a simplified way and turning into new tacit knowledge. Externalization is understood as the creation of new concepts, which will be the basis for new knowledge, extracting explicit knowledge from tacit knowledge. The combination systematizes various concepts into a knowledge system, formalizing a path for learning. Finally, the internalization is an inverse end path which turns the explicit knowledge again into tacit knowledge by reproducing experiments that have been documented by other performers (Nonaka and Takeuchi 1997). Kikoski and Kikoski (2008) state that tacit and explicit knowledge are not separate or distinct from one another but work in different areas in human intelligence and change explicit to tacit and again to explicit.

3 Knowledge Management and IT Agile

Utilizing the theoretical foundation on Knowledge Management established here, the purpose of this article is to explore the organizational environment related to software projects and their management methodologies to identify convergence points between the Agile Project Management, known by professionals like Agile, a term adopted in this study, and practices of knowledge management in their humanistic approach.

The traditional method of project management is characterized as an evolutionary process of creation and use of techniques, tools, processes and systems to assist in the search for the expected results of the project (Sone 2008). In the IT environment, development and market operations occur in parallel. Requirements are never finished until its delivery and, subsequently, changes are inevitable and cannot be rationalized (DeCarlo 2004). This was an enabling environment for the origin of agile methodologies to project management.

Agile is a set of principles, practices and values that help overcome difficult challenges that cannot be attained by traditional methods which are more rigid (Highsmith 2004). It aggregates the evolution of the methodologies for managing and executing software projects, incorporates a considerable amount of influence of iterative and evolutionary development methodologies, empirical process control, game theory, lean production and learned lessons from the development teams (Judy 2009). Agile methodologies emphasize the contact between client, team and collaboration between individuals, which allows the creation of an environment where knowledge sharing should be constant.

Studies indicate that, culturally, a significant challenge is identified among members of organizations to the externalization of their knowledge due to fears of errors, inaccuracies, loss of exclusivity and lack of recognition. To create an environment of trust that inspires and motivates organizational learning, the adoption of knowledge management systems, with the provision of adequate infrastructure, the use of various technologies and approaches and developing strategies that include information and rating of knowledge assets contributors (Davenport and Prusak 1998) is required.

Agile teams generally promote an open organizational environment that respects the individual, showing care with the actions and opinions of other members of the team, and a better understanding of their own opinions and profile in relation to the whole. The practice of transparency and honesty from the developer towards managerial levels shall be encouraged. Problems, critical issues, holdups and special points of interest should be discussed openly and immediately (Whitworth and Biddle 2007).

Xiaohua et al. (2008) support the principles of Agile to argue that agile methodologies emphasize the adaptation to changes and collaboration between developers and the customer, who must participate throughout the development process. Based on the principles of Agile, practices were categorized into a set of six interdependent values, namely: individuals, teams, value, customers, uncertainties and context. These values form an interdependent whole, each of which is important in itself and the six together form a system of core values for project management, especially the more complex ones. The interdependence that has as its foundation: the members of a team of a project do not form a group of disconnected individuals, but are part of an interdependent whole. This is also reflected in the relationship between team and client sponsors (DOI 2005).

The “Manifesto for Agile Software Development” summarizes the outcome of the meeting of seventeen members of the global software development community to discuss the good practices adopted by each of them in developing. Their words, as seen below:

  • Individuals and interactions over process and tools;

  • Working software over comprehensive documentation;

  • Customer collaboration over contract negotiation;

  • Responding to change over following a plan.

In other words: that is, while there is value in the items on the right, the items on the left are more valuable (Agile 2001).

At this meeting has been set, established and registered (DOI 2005) that:

  • the increase of the return of investment is achieved by making the continuous flow of value the focus of the project;

  • the most satisfactory results are delivered to customers who are engaged and involved within the project through frequent interaction;

  • changes and uncertainties are expected and managed through iterations, anticipation and adaptation;

  • creativity and innovation are desired and individuals are recognized as the ultimate source of value and they create an environment where they can make a difference;

  • a better performance is achieved by creating an environment where the team shares the responsibility for the results and the efficiency, and

  • the effectiveness and reliability are higher by creating strategies, processes and specific practices, considering the context.

Levy and Hazzan (2009) discuss some of the practices related to Agile Team, Profile, Daily Meetings, Measurement, Customer Collaboration and Pair Programming for aspects of Knowledge Management, and this analysis can be expanded to include the “Seven dimensions of Knowledge Management” established by Terra (2001) which must be observed by managers in order to create a enabling environment for individuals to pursue an organizational creative role, namely: strategic factors and the role of top management, organizational culture and values, organizational structure, human resources, information systems, measuring outcomes, learning with the environment.

From this analysis, it is concluded that:

  • Team: this practice means that all staff, including all those involved, should look for face to face communication whenever possible. Initially, even the work space should be friendly and facilitate the communication. Then, all team members must participate in the presentation of the product to the customer, listening to their requests and actively participating of the planning. And finally, there is integration between the development team and managers. The organizational structure and the human resources are part of the dimensions that directly influence these practices, since they determine more flexible hierarchical structures, multidisciplinary and motivated teams.

  • Profiles: the distribution of responsibilities in the form of profiles enables better management of them. It translates into involvement of all team members in all parts of the software development, contributing with their point of view. Profiles also establish the connection with the dimension of organizational culture and values, since the Agile aims at continuous improvement of the team, and preaches acceptance of the mistakes that are a reflection of the learning process.

  • Daily meetings: held with the whole team, every day, for approximately 10–15 min. The dimensions of culture and organizational values and organizational structure are essential for these meetings fulfill its purpose with the effective participation of those involved.

  • Measures: it is useful to accompany the process of software development, aiming for a higher quality product, generating measures that will be used by stakeholders for decision making, also sending a message that the process is being monitored in a transparent manner for all involved. The influence of the dimension of results measurement is clear for both the tangible information about the projects as the intangible assets generated in the course of these to be seen and measured.

  • Customer collaboration: the whole team should have access to the client during the development process. This direct communication increases the chance of software requirements to be more easily understood and adapted prior to any necessary changes. The dimension of learning about the environment stipulates that the internal and external environments are source of learning and that includes strong partnerships with the client.

  • Pair programming: this practice means that all code is developed by two members of the team, who share the same workstation, in an interactive process for the development of the tasks. Each member has a specific responsibility within the task, even if working in pairs. With this, all team members become familiar with all parts of the software and improve their own understanding, reinforcing a culture of knowledge sharing. Here also the dimension of the learning environment is present, since knowledge is being shared among pairs, creating a friendly environment for the practice of this process.

The collaboration with the client is linked to periodic review, where doubts are resolved, activities adjustments are made and new knowledge is acquired. The direct involvement of all participants in the project also facilitates the process of acquiring knowledge and their own development through the transfer of collective knowledge for the individual and the frequent deliveries of software.

The response to changes is related to the positioning of the team, which aims to constant learning and application of knowledge generated from learned lessons, the direct involvement of all participants and the pursuit of continuous improvement that is reflected in the construction of a simplified code. Levy and Hazzan (2009) discuss some of the Agile practices in relation to aspects of Knowledge Management, mentioning among them, the monitoring of the software development process through measures that will be used by stakeholders for decision making and as direction to any changes.

The software running is a reflection of the continuous development of knowledge and its use to satisfy the customer. The process of knowledge retention is directly linked to organizational guidelines establishing how organizational memory is created and maintained. Between the agile practices analyzed by Levy and Hazzan (2009) is the distribution of responsibilities in the form of profiles that enables better management of these.

The rotation of responsibilities established as a practice of Agile brings benefits to the organization. This is one of the characteristics of learning organizations and contributes to a highly innovative performance, besides the benefits of sharing tacit knowledge and the development of redundant knowledge and an array of needs for them. The result is the increased efficiency of the team, faster problem solving, and the understanding of the more macro organizational aspects and hence the exploitation of new knowledge (Fægri 2009).

4 Conclusion

Management of organizational knowledge is essential for companies to not depend on specific people for its survival and financial health. To overturn the barriers in the use of organizational knowledge in software processes it is necessary that the organization disseminates its importance in its culture, as well as the gain it can bring to all involved. It is necessary to manage much more than the information itself, but the people and the interaction between them.

The organizational culture is essential for the construction of this environment. It is important to remember that even an error should be considered a rich learning opportunity. External relations such as the contact with customers, suppliers, competitors, partners and support institutions, should be valued and it is an effective way of acquiring and identifying processes and innovative products.

This work aimed to minimize the gap found mapping the relations between the two themes, based on the constructed knowledge through research in the literature, linking the identified practices. This goal was achieved by establishing points of conceptual convergence between the two issues.

Finally, it was concluded that the practices of Agile provide a favorable environment for knowledge management. The organization should establish policies and guidelines that promote continuous learning, encouraging, directly or indirectly, courses, training, improvement of academic training and the knowledge development activities, and providing an environment of respect and trust, allowing individuals to exchange information, actions that will be reflected in both the individual and organizational.

As subjects of future studies, it is suggested the identification of mechanisms for using Agile in order to systematize the practice of Knowledge Management. Another point showed is that as the organizational culture and the particular characteristics of the individuals involved in the process are essential to success, an anthropological deepening focusing on basic profile of Agile practitioners, searching for ways of more efficient promotion of continuous learning is also seen as an opportunity for further studies.