A Study of Knowledge Management Process Practices in Very Small Software Companies

: Problem statement: Software development is distinct from other types of engineering because the product is intangible, progress is not explicit and team members rely on the documentation of others to review progress. In addition, there are no standard processes, which make it difficult to predict which process will cause development problems. The discourse of knowledge management is becoming more evident in the software engineering literature, as the software development activity is essentially a human knowledge intensive activity. Approach: This study explores the role of software development knowledge management within software development companies. Specifically: How software knowledge is managed; identify critical factors in software development teams and software development knowledge management; understand how should software teams are organized in order to support software process improvement and the role of knowledge management in this. Results: This study presents the results of a study of knowledge management process practices in very small software companies and discusses these under the major identified issues of: Communication; Learning and sharing; Documentation and Knowledge management process and commitment. Conclusion: The findings in this study give an insight towards knowledge management practices as they relate to software development process practices in very small companies and the important factors that must be considered to preserve knowledge and quality software.


INTRODUCTION
For many small and very small software companies, implementing controls and structures to properly manage their software development activity is a major challenge.Administering software development in this way is usually achieved through the introduction of a software process.A software process essentially describes the way an organization develops its software products and supporting services, such as documentation.Processes define what steps the development organizations should take at each stage of production and also provide assistance in making estimates, developing plans and measuring quality.The process and associated activities are often documented as sets of procedures to be followed during development.However, the documentation is not the process but should clearly represent the process as it is implemented within an organization.
It should be noted that at the centre of ay software development activity is the human beings (analysts, software developers, testers and similar job roles) that implement the software development process in order to produce software systems.Dreyfus et al. (1986) argue that human beings gain expertise through perception, intuition and experience, rather than by following a predefined process.Furthermore Aurum et al. (2010) argues that 'software engineering is knowledge study and hence knowledge management is of high importance in software engineering', which clearly has implications for the management of knowledge in software development (Okyere-Kwakye and Nor, 2011).
Software engineering is distinct from other types of engineering because the product is intangible, progress is not explicit and team members rely on the documentation of others to review progress.In addition, there are no standard processes, which make it difficult to predict which process will cause development problems.The discourse of knowledge management is becoming more evident in the software engineering literature (Tan, 2011).Turner (1999) observes that project teams consist of 'knowledge workers', who are characterized as individuals who have high levels of education and specialist skills combined with the ability to apply these skills to identify and solve problems (Drucker, 2009).Members of software development teams represent intellectual capital and software managers need to ensure that the organization gets the best possible return on its investment in people.Knowledge workers have specific individual expertise characterized by their job title, but there is also a crossover of knowledge boundaries and 'because software development is knowledge study, its most important resource is expertise' (Faraj and Sproull, 2000).
To simplify understanding and to create a generic framework which can be adapted by organizations, software processes are represented in an abstract form as software process models.Software Process Improvement (SPI) aims to understand the software process as it is used within an organization and thus drive the implementation of changes to that process to achieve specific goals such as increasing development speed, achieving higher product quality or reducing costs.There is a widely held belief that a better software process results in a better software product, with authors such as Humphrey (1989) claiming that to improve your product, you must improve your process quality.In support of this Zahran (1998) considers "it is a widely accepted fact that the quality of a software product is largely determined by the quality of the process used to maintain and develop it".SPI models developed to assist companies in this regard purport to represent beacons of best practice.Contained within the scope of these models, according to their supporters, lies the road to budgetary and schedule adherence, better product quality and improved customer satisfaction.Translating these benefits into practice has, however, proved challenging.Opponents believe that these models operate primarily at a theoretical level, are too prescriptive and bureaucratic to implement in practice and require a subscribing company to adapt to the models rather than having the models easily adapt to them.
As noted above, the software development activity is essentially a human knowledge intensive activity, involving software developers executing a software development process utilizing expert knowledge, within a team (Omar et al., 2011).Accordingly we are interested in understanding the role of software development knowledge management within software development companies.Specifically: How software knowledge is managed; identify critical factors in software development teams and software development knowledge management; understand how should software teams are organized in order to support software process improvement and the role of knowledge management in this.

Knowledge management in software development:
Knowledge Management (KM) is a discipline that crosses many areas such as economics, informatics, psychology and technology.KM is seen as a strategy that creates, acquires, transfers, consolidates, shares and enhances the use of knowledge in order to improve organizational performance and survival in a business environment.This scenario becomes a challenge to the companies in managing their organizational knowledge (Kukko et al., 2008).Therefore specific plans and suitable tools will guide the knowledge management process (Dingsoyr and Conradi, 2002).This plans and tools must be promoted applying the old knowledge to new situations in an organization (Kukko et al., 2008).
In KM, knowledge creation and sharing is a continuous process whereby individuals and groups within the organization and between the organizations share tacit and explicit knowledge (Jabar et al., 2010).The organization capability to create knowledge is important in order to sustainable competitive advantage (Nonaka et al., 2000;Parent et al., 2000).Knowledge creation process is believed started when an individual recognize the related and useful data and information and then able to transform it into a new knowledge that brings a future value to an organization.Organizational knowledge is not only created within the organization but also can be acquired externally and this can be done through knowledge sharing (Grant, 1996;Awazu, 2004).The important of knowledge sharing and knowledge creation in any organization will help organization to continuously innovate and help organization to sustain their competitiveness (Rhodes et al., 2008).These activities are usually facilities by a social network within an organization and through the development between departments in an organization link (Szulanski, 1996).In addition, (Turner and Makhija, 2006) added that in sharing and creating knowledge, trust and organizational control plays an important role in how individual transferring and sharing their knowledge with others in an organization.
Knowledge is vital for every organization because it is needed to perform a study in an organization.According to (Hendricks and Vriens, 1999) an organization cannot survive and sustained their competitiveness without knowledge.Therefore knowledge needs to manage to ensure that the right knowledge gets into the right place and so increases the innovation power of organization and its knowledge worker.In addition knowledge in organization also will be eroding over the time and will contribute to loss of knowledge in organization.This condition is often implicit and its loss is often not recognizing until too late.Knowledge erosion is referred as the loss of knowledge resulting from people leaving an organization or changing jobs within it.Several author claimed that knowledge erosion became one of the main problems as the organization expanding over the time.The lacking of resource and time in small company in implement knowledge management will introduce a knowledge erosion situation through employee retirement and resignation (Bjornson and Dingsoyr, 2008) In addition, 4 important criteria in organization; the staff development, team building, communication of role and function and formal continuous process improvement; was believed could help organization in mitigated this issue.
Software process is not standardized in all software projects.Software process must be updated and improved frequently in order to cope with any environment changes.Such environment required KM in supporting software process definition and activities.(Hansen and Kautz, 2004) explained that SPI could strengthen knowledge management abilities for software development organization.In term of small organization, (Meehan and Richardson, 2002;Kettunen, 2003), argues that KM is core to a software process improvement model and that the relationship between SPI and organizational learning are very strong.They points out that people in an organization will create, acquire and share knowledge continuously in order to improve software development practices.Moreover, in nowadays business environment where software development project becoming more complex, the greater reliance upon the knowledge processes to resolves problems are really important (Bjornson and Dingsoyr, 2008) stated in their review that proper managing of organizational knowledge is important in SPI efforts and it is a major factor for success.(Mathiassen and Pourkomeylian, 2003) in their survey on practical usage of knowledge management to support innovation in a software organization claims that knowledge management and SPI are very close related.They added that knowledge management is used to update practices within software organization generally and SPI specifically.According to (Komi-Sirvio et al., 2002) software organization needs to improve their practices in order to cope with market changes.These situations have lead to considerable interest in how organization can effectively respond to changing environment or agile environment.
It can therefore be seen that KM is an aspect of critical software process, as illustrated in Fig. 1.This showns that the SPI and software development KM are related to each other.This relationship is vital in preventing knowledge atrophy, process erosion problems and with a proper knowledge management process could help teams become more effective in performing team task and making a decision.(Aaen et al., 2002) added with an appropriate knowledge creation and sharing process could provide team members with clear SPI goals and sustain their interest (Nasir et al., 2008).
Software process depends strongly in human commitment for its implementation (Coleman and O'Connor, 2008a).In addition, individual and organizational behavior aspects also have given a great influence in the success of software development process (Baddoo and Hall, 2002).Furthermore since software development projects by their nature involves teamwork effort and involve knowledge intensive exchanges/collaborations, the influence of well organized software development knowledge could assist software companies to become more innovative and efficient (Dingsoyr et al., 2005).However, the issues of limited resources; either or both in financial and staff; in VSEs always become a constraint in producing a competitive product in today's dynamic software business.Micro enterprise including VSEs who have limited resources, particularly in financial and human resources, are practicing unique processes in managing their business.These unique characteristics and unique situations have influenced VSEs in their business style as compared to large companies (Mtigwe, 2005).In addition, their constraints in financial and other resources also have an impact to companies' process infrastructures such as limited training allocation, limited allocation in performing process improvement, low budget to response the risk and may other constraints (Kaltio and Kinlula, 2002).Moreover due to the small number of people involved in the project and the organization, most of the management processes are performed through an informal way and less documented.This situation shows that human-oriented and communication factors are very important and significant in VSEs (Valtanen and Sihvonen, 2008;Laporte et al., 2008).Therefore, it is belief that the influence of well organized software development knowledge is seen could assist small companies or VSEs in maintaining their product relevancy in market.This process also could mitigate from knowledge atrophy problem from affecting their company.

MATERIALS AND METHODS
Here we present the context in which this study was undertaken, that of very small companies and also the details the data collection instrument design and implementation.
Study setting and context: Industry recognizes that very small companies that develop software systems are very important to the economy.The definition of "Small" and "Very Small" companies is challengingly ambiguous, as there is no commonly accepted definition of the terms.To better understand these issues it is necessary to examine the size of software companies operating in the market today.In Europe, for instance, 85% of the Information Technology (IT) sector's companies have 1-10 employees.In the context of indigenous Irish software firms 1.9% (10 companies), out of a total of 630 employed more than 100 people whilst 61% of the total employed 10 or fewer, with the average size of indigenous Irish software firms being about 16 employees (Coleman and O'Connor, 2008b).In Canada, the Montreal area was surveyed, it was found that 78% of software development enterprises have less than 25 employees and 50% have fewer than 10 employees (Laporte et al., 2008).The term "Very Small Entity" (VSE) had been defined by the ISO/IEC JTC1/SC7 Working Group (WG) 24 and subsequently adopted for use in the emerging Ribaud et al. (2010) software process lifecycle standard, as being "an entity (enterprise, organization, department or project) having up to 25 people".
For the purposes of out study to ensure the participation of software development professionals who would be familiar with the considerations involved in using both software process it was decided to limit the scope to software product companies whose primary business is software development.In addition, given the geographical location of the researchers (at the time of the study was conducted), it was decided to confine the study to Irish software product VSEs which has the added advantage of restricting the study to within the same economic and regulatory regime.Furthermore, restricting the study to indigenous Irish software product companies significantly increased the prospects of obtaining the historical information required to understand process foundation and evolution which would not be the case with non-Irish multinationals operating in the country, as their process would likely have been initially developed and used within the parent company prior to being devolved to the Irish subsidiary.
Thus, the Irish indigenous software product sector offers a potentially fruitful area for research enquiry.

Data collection design and implementation:
In order to carry out this study, we developed and distributed a survey questionnaire to the Irish software VSEs around area of Dublin, Ireland.These companies were selected using personal contacts of the researchers and were all directly involved in software product development, for a variety of business domains.
The development of the survey questionnaire have adopted the Goal, Quality and Metric (GQM) approach (Basili and Weiss, 1984) in order to ensure the survey validity and suitabilility.The survey consists of 12 close-ended questions that use 5-point response scale.The close-ended questions examined the level of agreement of the related SPI process and activities as proposed in the literature, applied in their organization.Moreover in order to gain more input from the respondents regarding the study issues, several open ended question that related to the close-ended question have been asked in the survey.The purpose was to understand more thorough respondents' experiences and understandings in their organization.The process took some time to receive back the completed questionnaires from the respondents.Therefore we regularly contacted the respondents via email and phone in order to ensure their reply.
Each received and completed questionnaire were complied and analysis.The close-ended questionnaire were grouped according the issue and analyze using a statistical analysis.Three main statistical analysis were run in processing the data, which are the frequency, mean and descriptive analysis.For this purpose we use a statistical tool (SPSS) in processing the data.Meanwhile, on the open ended data, we analyze and categories the data according to the category that this study intends to understand.The answers were grouped, coded and list made to the study category issues.In overall we adopted the qualitative contents analysis approach in analyzing the open-ended answer.In additional we have merged the both analysis result in order to gain more understanding and validate the results.Moreover, in order to produce details analysis result, we have divided the survey respondents into 2 main group namely the Micro VSE (1-9 employees) and Larger VSE (10-25 employees) (Laporte et al., 2008).

RESULTS AND DISCUSSION
Here we present a discussion on the research study finding under the headings of: Communication; Learning and sharing; Documentation and Knowledge management process and commitment.Communication: In order to understand this issue, researchers have grouped all related communication questions into a single the questionnaire whose purpose is to understand the pattern of the communication process in VSEs.In details, researchers would like to understand how the meeting, feedback, people communication and level of communication have occurred in these companies.The main questions using a 1-5 Likert scale (strongly agree to strongly disagree) included: • There is clear communication between team members • Software development projects regularly receive feedback over stakeholder • There is an effective communications channel between software development team members and management • There are regular informal (casual) communications between software development staff and management The results from the mean analysis as shown in Table 1 indicated that the companies did not have a regular formal meeting and practicing an informal formal communication in their business operations.However, results show that organization have a clear communication process and channel.The comparison among company employees size, provide more detail indicator that employee size factor influenced the formal communication process level in VSEs daily business operations.
In relation to the communication process in VSEs, the analysis on the open-ended question indicated that 90% of respondents agreed that in development projects they regularly receive feedback from the project stakeholders.However, the result showed that this process been done either in face to face, informal discussion, online communication, informal internal feedback or 'on the job training' process.
In addition the following extracts from open ended questions illustrate the VSE communication process: "We sit in one office so I talk to them all the time" "We all talk all the time about the study we do, the problem we have and what solutions we can use."Learning and sharing: In order to understand in detail the KM issues in VSEs, we have grouped related question that explain the learning and sharing activities in VSEs.The main questions using a 1-5 Likert scale (strongly agree to strongly disagree) included: • We always exploit existing organizational knowledge to the maximum • We always learn from experiences of past projects • We always collect experience data from past projects From Table 2, it is indicated that all respondents agreed that their development team is always sharing their knowledge and experience with others in the organization.The results which obtained a higher mean scores, represents an indicator that in VSEs companies, staff are always utilize the knowledge and experience within the organization in performing their tasks.This analysis also showed that company size is not an issue in utilizing existing knowledge and experience in company.The analysis on the open-ended question also agreed and indicated that the learning and sharing activities in VSEs are been done either informal, self learning or informal sharing among the development team.This could be identified in question on how the employees enhance their skills where 90% of the respondents agreed that no formal training were given to the staff in enhancing their skills.The following extracts from open ended questions illustrate the VSE learning and sharing process: "Ensuring that no single member of staff has any exclusive knowledge by using a mentoring/buddy system.""Ensuring everyone talks and exchanges information about projects on an ongoing basis we can mitigate against leaving the company or forgetting knowledge" Documentation process: Under this heading our aim was to understand respondents' opinions on documentation process and how the documentation process activities happened in their companies.Several questions have been asked in the questionnaire in various places including: • Software development staff knowledge is formally documented • We regularly document experiences/lessons learned from previous projects to use in future projects • Software development teams are regularly document and review their activities • We regularly documented our study/project progress Table 3 indicates that staff knowledge, experience and activities are not documented properly and the documentation process has been done more in informal process.This can be referred to the total mean score which lower than 3.0 showing that all respondents do not practice a formal documentation process in their documentation activities.In addition this also indicates that the number of employees working in the companies also gave an influence to the documentation formality process in VSEs.
In relation to the open-ended answers have highlighted that only activities that are related to business procedure and technical issues are being documented properly and organized.This could be identified in question on documentation process where 50% of the respondents claimed they felt that they are regularly update their document regularly especially on a specific study and procedures.Moreover the analysis results also showed that small team size issue has hindered VSEs from perform seriously documenting their activities as illustrated by these open question extracts: "We always document project and study specifications … We constantly updates until such time as the represent the change/work to be complete" "We are too small to do proper documentation process" The result in this part of analysis have shown us a pattern and an indication that in VSEs documentations process are done in two ways; (1) the specific documentation process which is related to business and technical process and (2) informal documentation process which are inclined toward informal, personal and online documentation.

KM process and commitment:
Here we explored more direct issues that are related to KM process.The results from the analysis as in Table 3 and 4 indicate that the respondents agreed that the level of KM process and commitment in VSEs are very significant.This could be identified with the average mean score for each question is relatively high.Table 3 indicates that in principle respondents are agreed they are having a clear KM strategy and a good leadership in their organization is important in organization software development knowledge.These have been shown in the mean score results for these two questions.However the results in Table 3 indicate that activities related to KM within VSEs have not been performed properly.It is indicated in average total mean row that gained less than satisfied agreement level which is 2.40 and 2.00 respectively.Meanwhile, Table 4 and 5 showed that the management are very supportive in the knowledge management process and peoples in the organization are always communicate, share and having good relationship among them.This issue situation also could be identified in the open-ended answer related to which indicates KM process were done informally through sharing activities and informal documentation such as personal or indirect (e.g., informal transferring, internal sharing) process as the interview extracts below support: "We are doing more on self learning and sharing among us" "We informal sharing and changing knowledge.
We always documenting electronically/and having informal transferring and knowledge sharing" In addition to the above analysis, the answers on knowledge loss issue have indicate that the informal process environment in VSEs helps the companies to mitigate knowledge loss problems from happened.The analysis in this part showed 90% of the respondents claimed did not facing a knowledge loss problem in their company due to the informal process.The following extracts from open ended questions illustrate the VSE learning and sharing process: "Not a problem since we using same technology and process in all our project….We occasionally sharing and transferring knowledge among brothers" "Ensuring everyone talks and exchanges information about projects on an ongoing basis we can mitigate against leaving the company or forgetting knowledge"

CONCLUSION
It was collectively agreed by the respondents that the KM initiatives in VSEs are done very informally, individually and specifically.In term of knowledge process and strategy issues, the result showed that all respondents claimed that they have a clear KM strategy in the organization.However the analysis showed that this process are done informally and is not organized.In addition the result show that even though the KM was done informally either in communication, documentation, learning and sharing in VSEs, 90% of the respondents believed that this environment have led them to mitigate the knowledge loss problem in their organization.Moreover the results also indicated that in overall the size of the company given an impact to all the process that have discussed above.Overall although the results showed the high informal and indirect culture in VSE in most of their development activities, the results also indicate that VSEs commitment towards KM is very high and positive.Meanwhile, with regards the future study, we plan to wider our research participation through identifying more VSEs which located in Ireland in order to understand the issue more detail and to identified the constraints that prevent them from managing their organizational knowledge systematically.In additional, since the majority of software development companies in other countries in general and Malaysia in specific which are falls under the small and medium size category (Tan et al., 2009), we plan to replicate a similar study and approaches in order to see if there any comparison with the existing results.
As with any research project we have identified some limitation and constraints within the study.In data collection process, the researchers encountered some difficulties getting a full commitment and good response from the identified Irish Software VSEs.Limited number of staff, busy with current project, economy situation, project deadline, low level of interest and inappropriateness are among the reasons given by those companies.However, a low return rate of the questionnaire is a well known and understood as a research problem and it is not specific to this study.In addition the issue of generalizability is a common issue to many research studies of this type.The small research sample size does some limitations in the research results.However, with appropriate identified companies for this study has helped us to produce a valid indicator of the study results.The results are presented the VSE environment as a whole.This is demonstrated from the consistent research results which were produced in the analysis process.
Meanwhile, with regards the future study, we plan to wider our research participation through identifying more VSEs which located in Ireland in order to understand the issue more detail and to identified the constraints that prevent them from actively involved in SPI.In additional, since the majority of software development companies in Malaysia are also fall under the small and medium size category (Kaltio and Kinlula, 2002), we plan to replicate the same study in order to see if there any comparison with the existing results.This could enhance our understanding regarding this issue and could be relate with the Global Software Development (GSD) issues.

ACKNOWLEDGEMENT
This study was supported, in part, by Science Foundation Ireland grant 03/CE2/I303_1 to Lerothe Irish Software Engineering Research Centre (www.lero.ie).

Table 2 :
Learning and sharing process

Table 3 :
Documentation process