Knowledge Management and Software Development Organizations
Bhaskar Raju, Xyratex Technology Limited, http://www.xyratex.com/
Is it hard to get expertise in the work place for employees?
Are you not able to handle the ever changing requirements and improve the quality?
Are you not able to manage teams effectively and improve employee productivity?
Is the Ďskills gapí widening in your teams?
Organizations are looking for better management options, to address the above questions. In this truly competitive and fast-paced business environment, to deal with the issues, itís essential for organizations to recognize the value of knowledge and manage the knowledge assets. Many organizations donít realize how much Knowledge Management contributes to phenomenal growth of organizations by transforming new as well as existing enterprise knowledge into superior products/services/solutions. This article emphasizes the significance of KM practices in the context of the software industry in resolving above issues. This also covers how knowledge conversion takes place in organizations, why organizations fail to utilize Knowledge Management in solving the business problems in long-term and how KM can be implemented effectively with best practices.
Changing nature of customer needs / requirements
Frequently changing customer requirements and high levels of customer expectations exist in almost all the domains of software industry. This became challenging for various teams in these software organizations which have to balance autonomy with the need to respond to external forces and inter-team responsibilities. In this context, various skills, capabilities or competencies which make up software teamís know-how factors are considered to be the principle resources of organizations . So, managing the teamís knowledge plays an important role in developing these skills, capabilities or competencies for successful release of products/services to the customers.
Understanding knowledge management
Knowledge management is the process that involves a cycle of exchanging tacit knowledge and converting it to explicit knowledge and then re-formulating it through an individualís experience and other factors (such as belief, perspective, and values) into tacit knowledge .
According to literature, there are two main types of knowledge which are tacit and explicit. Tacit knowledge refers to personal knowledge embedded in individual experience and involving intangible factors. This type of knowledge can be considered to be very difficult to transfer. On the other hand, explicit knowledge refers to the one that has already been documented and articulated into formal language, and can be much more easily accessible and transferred among individuals. Hence, one of the key functions of a KM strategy is to make tacit knowledge explicit.
Success of an organization depends on how well, it converts tacit knowledge into explicit. According to Nonaka, who is best known for his study on Knowledge management, there are 4 types of knowledge conversion between tacit and explicit knowledge . According to his model of knowledge creation and transformation, tacit knowledge is exchanged with tacit knowledge through socialization. Tacit knowledge can be converted to explicit knowledge through externalization where the hidden know-how is expressed and articulated through metaphors, models, concepts, equations and other forms of explanation. Explicit knowledge can be exchanged and developed through communication. Explicit knowledge is converted into tacit knowledge through internalization where individuals absorb it through experience, testing and/or simulating their use of operational knowledge. Hence, these four different types of conversion can promote the generation of important intangible knowledge assets which contribute to long lasting competitive advantage.
KM to solve software organization problems
Various challenges software organizations are facing in the process of meeting the high customer expectation levels and how KM practices supporting them to face challenges are examined below.
Global distributed teams: An increasing number of software organizations are relying on technology-enabled geographically distributed teams. For example, mobile phone software development teams in various organizations spread across different locations employs experienced developers in different countries to solve their technical challenges and develop new features. In this context, managing teams effectively at different locations is a challenging task for any organization. Improving productivity and driving them towards the same goal requires readily sharing information across sites. Formal KM systems can facilitate this. By enabling efficient sharing mechanisms to developers, KM plays important role if organization is also involved in Open Source Software projects, as the quality of the deliverable depend on how well the parallel development on independent software components across global teams are synchronized.
Iterative-incremental development: Due to the increasing demand by customers to change requirements very frequently, iterative-incremental development approaches are becoming popular in many of software organizations. On average, projects can be divided into 12 one- to four-week iterations. As development involves successive iterations, the time required for these can be reduced based on the experience gained from past iterations. Unless the knowledge developed in each iteration managed efficiently, and change control mechanisms are in place, it becomes very complex for organizations to deliver project without delays and cost overruns. KM defines a standard process, so that engineers will record the related knowledge in each iteration into knowledge based databases and systemizes knowledge acquisition process. By making knowledge acquisition processes continuous, KM combines the knowledge developed on requirements, functionality, design, coding, testing in earlier iterations and reconnects it to the required knowledge for implementation in future iterations.
Quick testing life cycles: During the last phase of quick software development life cycles, test teams aimed to capture defects by integrating software, hardware and computer systems. Nowadays, test life cycle times are becoming shorter and shorter due to the need for quick deliverables to customers. This situation demands good knowledge on the overall system, supported features, and strong analysis as well as decision making capabilities to ensure defects do not escape in the software releases. To complete test cycles quickly, organizations are looking for various automation testing methods which are reliable in terms of reusability and productivity compared to manual testing. Even though testing is executed automatically, test teams require knowledge of various tested features and scripts, and analytical capabilities to isolate software issues in the system. With experience in problem solving well-defined in knowledge based database, test engineers can always search for related issues raised in past cycles and reuse the solution . Besides that, KM systems provide a search and consult mechanism to support test engineers in information search and decision making. With less effort spent on unnecessary issue investigation combined with effective analysis, test cycle will be completed more quickly thus contributing to test efficiency.
Merger and acquisitions: Todayís trends towards Mergers and Acquisitions increases the challenge of integration. This can pose major threat to organizations, where they may struggle to take certain organizational decisions, fearing loss of knowledge by reducing the teams. Once the KM system has achieved a matured level, the system may be enhanced or evolved to a more intelligent system that is capable of decision making. If the knowledge-based rational decisions are not taken, people critical to core competencies may walk away by putting the organizations at risk. For successful organizations, key part of their success is their expertise in management of knowledge systems.
Small-medium organizations: No matter at what stage of development life cycle we are at and no matter the size of organization, KM practices is significant. Letís look at the example of small and medium sized software organizations in data storage domain. Given the growth opportunity, for the data storage markets, various small and medium sized organizations design and develop a range of advanced, scalable data storage solutions for the Original Equipment Manufacturer (OEM) community. OEMs are highly dependent on organizations which provide enterprise-class data storage subsystems. The software divisions in these small/medium organizations are experts in delivering bespoke software solutions to their customers based on their requirement. Different sub-teams within the same software group develop and cut the release branches quickly and with top-notch quality designed to meet every client's needs. The question arises on how to handle the ever changing requirements and improve the quality of code. Even though the bespoke software solutions developed on the same trunk of code, itís very important for these teams to share best practices and relevant differential knowledge across sub-teams. KM encourages team members to record significant changes during bespoke software development and this will be shared across different sub-teams to re-integrate this learning. This gives opportunity to better exploit existing knowledge assets by re-deploying them to their sub-teams, modifying knowledge from a past process to create a new solution.
Another challenge for these organizations is managing multiple sub-teams by moving the team members depending on the workload to meet growing customer expectation levels. In these small/medium organizations, with lack of consistent processes across the organization, most of projects will be dominated by few more experienced team members with in teams. If the efficient KM systems are not placed in organizations where individual resources plays a critical role, team members will find it hard to get the expertise on the overall systems. By setting up a mentoring relationship between experienced experts and new members, implementing a document management system to provide access to key explicit knowledge, KM tries to tap into expertsí knowledge banks and share their know-how with others.
Software outsourcing models: Due to the popularity of software outsourcing models, organizations are moving their work to lower cost destinations such as India and the Far East to gain cost advantage. This has posed its own set of challenges as well as opportunities, since countries like India with a well-educated and experienced workforce also has severe talent shortages. Organizations in these countries are developing comprehensive and forward-looking strategies to recruit, develop, and retain the best professionals. As attrition rates are very high due to high demand of skill sets, organizations must concentrate on an efficient cycle of exchanging tacit knowledge and converting it to explicit knowledge. With experienced members leaving the team and with increasing numbers of new recruits, skill gaps widen within the teams. KM practices provide effective tools for smooth knowledge transfer to new team members and give the opportunity to build competencies by narrowing the skills gap.
Why do organizations fail to utilize KM?
Technology, people, practice
Despite the fact that KM adds so much value to the organizations in long-tem, most of organizations fail to utilize KM in solving the business problems. At the initial stage, organizations may try to align KM with overall business objectives, but often fail to retain these practices over time. The reason for this is that organizations fail over a period of time to distinguish between applications that manage explicit knowledge and the whole KM process.
That means management investing so much money in KM systems and spends lot of time managing the applications such as databases, searchable repositories. Even while reviewing KM projects, they emphasis more on KM systems and cataloguing existing explicit information. For successful KM, this is not enough itself. There must be efficient cycles of exchanging tacit knowledge and converting it to explicit knowledge and then re-formulate it through an individualís experience and other factors (such as belief, perspective, and values) into tacit knowledge. By practicing these cycles of conversion and updating the system regularly with explicit knowledge during this conversion process, teams can benefit from KM activities.
For instance, in software organizations, testing teams put a significant amount of effort into validation and verification of software release by the development teams. In some cases, efforts spent by the developers will result in defects being closed as duplicate/As designed. These organizations will have efficient systems to log test information, but they forget to account for certain critical elements which enable knowledge sharing that establish link between knowledge and people. We must agree that knowledge dies when it is disembodied . By promoting knowledge sharing culture within the teams, management must reduce teamís efforts spent in reinventing the wheel activities.
As KM is a combination of technology, culture and practices, management must put equal efforts into all the three aspects for successful implementation . Along with the technology, management should promote a knowledge reuse/sharing culture within the teams, and this must be practiced by making knowledge acquisition process continuous. Without the balance approach to these three aspects, itĎll be hard for the management to utilize KM in managing teams effectively.
Tips for better practices
Successful organizations outline below tips for Better Practices
Clearly identify business problems and align knowledge management project with overall business objectives.
Like any other software project, KM projects goals and objectives must be aligned to high-level objectives. This will give visibility to management about how KM activity going to solve business problems. Letís see with an example how this is aligned by using GQM (Goal Question Metrics) approach.
In the above diagram, Business goals, strategies, and corresponding software goals were made explicit . Business Goal is "Improve customer satisfaction". This business goal might have been made by the organization due to the business problem such as so many post-release issues in the recent deliverable. To achieve this business goal and to solve the business problems, software team sets their goal to "Improve System test Effectiveness". This software goal might have been made by the management due to the problems with-in their test teams such as widening skills-gap, poor handling of changing customer requirements etc.,
For achieving software goal of "Improve system test effectiveness", software project managers from their view point define their teamís goals, refine those goals down to specifications of data to be collected, and then analyze and interpret the resulting data with respect to original goals. For this, possible GQM goal could be
- Purpose: Improve
- Focus: the timelines of
- Object: software defect fixing
- Viewpoint: from the project managerís view point
- Context: the characteristics of a software team in organization
Such goal is then refined into specific questions that must be answered in order to evaluate the achievement of the goal. Relevant question and associated metrics related to the above goal are
- Question: What is the current software defect fixing speed?
- Metrics: Average life Cycle time of defect Standard deviation % cases outside the upper limit
At this level, KM project measurements must be linked to the above metrics, so that KM project will be aligned with overall business objectives.
For example, the most tangible measurements of KM system involve who contribute or access which information. We need to track whether particular software development/test team members are regularly contributing and accessing the information. If yes, how many visits made to KM systems in a particular interval of time. If we can see the correlation between above metrics and KM system metrics, there will be significant impact of KM in project activities in achieving software goals. For instance, if there is negative correlation between number of visits and average cycle time of defect fixing, KM is making positive impact on the software teams.
Define clear roles and responsibilities to lead KM practices.
For successful implementation of KM, a well staffed team and strong leader, with clearly defined responsibilities are essential.
Normally, KM leader will be selected by the higher management, based on individualís expertise on project management skills, people skills. As a KM team leader, itís responsibility of team leader to give guidance in organizing content and apply project management skills. In addition to this, he has the responsibility to improve his broad knowledge on various software sub-teams and start interacting with team members to contribute to KM. He also be attending various conferences and should bring latest trends of KM practices into the organization.
KM team members will be subject matter experts from each sub-team within the software division. They include members from software development team, testing team, automation team, etc. As a KM team member, he/she must be familiar with content and process involved. Itís the responsibility of team members to categorize information efficiently. They must be monitoring content regularly and should assess the relevance of existing information. This is particularly useful if other teams looking for relevant information, they will be prevented from information overload.
There must be clear responsibilities defined to IS team members in KM projects. Itís IS responsibility to analyze the existing systems and customize KM technical infrastructure. There will be cases of bottlenecks resulting from inadequate hardware or software, for which IS have the responsibility to resolve them.
The KM team roles outlined above are integrated in project teams. There are so many advantages of having KM team like this. The biggest hurdle for many KM teams is identifying the teamís tacit knowledge. If the KM team roles are integrated into project teams, identification of tacit knowledge within each team becomes very easy. KM team member of that particular project team will have good idea of individuals with tacit knowledge and the team members in need of particular knowledge. This helps the KM team to apply efficient ways of knowledge conversion from experience experts and the rest of the teams. And as the KM team member is integral to the project team, he can assess the workload among individuals within his team and be able to find the right time to initiate knowledge conversion activities. For instance, when the project delivery date approaches, software test teams will be very busy with system testing activities. By forcing the test team members to involve in KM activities at the peak times of execution, may develop negative impressions on the overall KM. Software test team members will think KM as additional work load imposed on them. The ideal time for these teams to share knowledge is during the break between each cycle of execution. I.e., once the first cycle of execution completed, there will be little delay for the next build to arrive from development teams and to start the next cycle of execution. As a KM team member, from the same project team, he/she will be able to analyze efficiently what tacit knowledge from the earlier cycle of execution need to be shared and suitable times for his/her team members to share the knowledge either into the KM system or with rest of the team members directly.
There is a disadvantage of having KM team roles integrated into project teams. Normally, KM needs blend of people who have expertise in training skills, facilitation/influencing skills, communications skills and technology skills. In few cases, it becomes very difficult to find someone for KM team role with all these skills.
Even though KM roles integrated to project teams, due to lack of right people with right skills, KM will not make major impact on the project activities.
To bring these additional skills to the team, like any other project management teams, KM teams can be filled with external consultants, who has expertise in dealing with KM related issues. There pros of engaging consultants in KM, such as
- Provide skills not within firm
- Counter internal constraint
- Mitigate risk
- Advise on IS/IT
- Overcome internal resistance to change
- Achieve change with greater speed than allowed by internal organic change
However, there are cons for this approach. In addition to higher costs, as the external people lack the idea of in-house procedures, there is possibility of developing gap between KM teams and project teams. The project team members understand KM team members as specialists who know nothing about their teamís domain knowledge and required tacit knowledge need conversion. This will lead to the de-motivation of team members contributing to knowledge conversion activities.
If the required KM skill sets are available with-in the team or there is scope to develop these skills with-in the teams, it will be good to have KM roles integrated in project teams. Due to this, the gap can be narrowed b/w KM and rest of the teams. But, it will be hard to define what percentage of project activities should be used for formal KM, as it varies based on the size of team, amount of tacit knowledge need to be converted and the complexity of the required knowledge.
Implement KM in phased approach.
Similar to incremental approaches applied to various software development projects, KM also needs an incremental approach with different phases. This will reduce the amount of risk involved in these KM activities.
Divide the KM solution into various parts and address specific parts of KM solution in each phase. By laying foundation for next phase, each phase must provide immediate benefits and provide measurable ROI.
For instance, this can be made effective by addressing the need of unified access to existing information as part of initial phase. And in the later phases address the need of improving the way knowledge is captured from various software sub-teams and managed.
Customize KM technical infrastructure to make it user-friendlier.
An organization KM system is the collection of information technologies used to facilitate the collection, organization, transfer and distribution of knowledge between various teams in software division.
Software organizations are using various technologies such as document libraries (ex: Google docs), Knowledge Bases (wiki, etc.), blogs, forums, SharePoint, etc.
For instance, the wiki is an extremely powerful KM tool for creating, maintaining, and accessing knowledge bases. Since the introduction of the wiki technology in the early 2000s, many organizations have adopted the wiki for many of their knowledge bases.
But, there are few disadvantages to wiki, as wiki platforms have a bit of learning curve. Team members have to dig into learn how to use it. If it becomes complex, team members will be reluctant to contribute to KM systems.
So, KM teams should know how to use wiki to their best effect and make the project team members aware of it. As everyone contributes to wiki, over a period of time it will end-up in mess, unless itís well organized. Information is often added to wikis but not deleted when no longer relevant or accurate or updated when changed.
This kind of pros and cons exist in almost all the technologies. For this reason, KM has to maintain/organize the technical infrastructure to make it user-friendlier. They can customize the KM system to rely on multiple technologies based on the team memberís convenience.
So, success of KM depends on how well we customize technical infrastructure to make it easy to find the information from the KM systems. That means, if development team members are looking for some information related to test teams, they should easily find the information about the test team and more importantly the relevant information.
Applications must be more focussed to the expected information and user friendly. If possible, it needs to blend in with the existing corporate systems such as organization intranet.
Encourage employees to contribute to KM by knowledge reuse and sharing.
As discussed earlier about Nonakaís model of knowledge conversion between tacit and explicit knowledge, software teams must be encouraged to contribute to these conversion activities.
Conduct as much knowledge sharing sessions as possible within the teams and across the teams. This can be conducted in various instances such as
- Whenever major issues noticed while development,
- New lessons learnt while carryout particular development/testing,
- Discussion on show stopper issues and the way to debug it
The management is responsible to decide which topic and how frequently the knowledge session should be held based on work priority. This is to ensure that the sharing sessions will really benefit the engineers and suits to their interest as well.
Management must reward engineerís initiatives for contribute to such sessions.
Size of the organization or team will have the influence on knowledge sharing activities in terms of knowledge flow. As the size of an organizational unit increases, the effectiveness of internal knowledge flows dramatically diminishes and the degree of intra-organizational knowledge sharing decreases . Management can overcome this by divisionalized organization structure or categorization of big teams into various sub-teams and using the appropriate user-friendly KM systems.
Knowledge re-use is another most important activity in achieving the benefits of KM projects. For example, if software test teams are in need of any third party tools, management/team members must do basic assessment using KM systems before purchasing the tool. Assessment such as
- Is any other team working on similar feature in the organization?
- Are there similar tools used in different contexts?
- Are there any domain experts in this area? (use knowledge directories to find this)
- Can other teamís knowledge be used in developing an in-house tool?
All these assessments quickly possible with efficient KM system & routine knowledge re-use activities. In the above case, if team can re-use existing knowledge and develop in-house tool, it will save lot of money to the project and this tool can be re-used by other teams whenever required without any licensing issues like in third party tools.
As mentioned earlier, size of the software organizations influence the cost/benefits of the KM tools. For instance, small organizations or start-ups will not have sufficient funds to invest in KM tools. At the same time, if the size of the organization is very small, they donít have to rely much on KM tools and related technologies, but they can stimulate the knowledge flows using soft approaches such as face-to-face knowledge transfer, group sharing methods etc. Overall, organization management has to consider these aspects of cost/benefits with regards to size of the organizations before investing in KM tools or activities
Make knowledge acquisition process continuous.
KM is not an end itself. The knowledge acquisition process must be continuous in order to keep all knowledge up-to-date and ensure new knowledge is captured from time to time.
To support this, proper process needs to be defined as well, so that team members will record all related knowledge into the database. If a team member wants to share his tacit knowledge on a particular software, process, new methodologies, he should be given idea on the ways of sharing his knowledge with other team members, teams at organization level and ways of converting into explicit knowledge.
By doing this, knowledge acquisition task will be formalized within the software teams. This will help KM team to capture knowledge gained by the team members in a more effective way and continuously.
While contributing to KM systems, another big challenge for the KM team is, whether to give free access to all project team members for contribution to KM systems? Or whether knowledge contributed to the KM tools "gated/selected" by the KM team?
In earlier sections, we have examined the benefits of organizations appointing KM roles integrated into project teams. In this context, it will be more beneficial, if every project team member is able to contribute their job related knowledge directly to KM systems. But, if the content of KM systems is not maintained properly, this will lead to information pollution and the users abandoning the systems.
To overcome this, KM team has to put more emphasis on content addition/modification/deletion at the initial stages of KM activities. And even deciding what kind of tacit knowledge must be entered into the systems. Once the project team members are trained on the format of contribution to KM systems and the relevance of appropriate tacit knowledge, KM team members can review the content regularly to verify the compatibility with the proposed KM standards. At the initial stages, write permissions to KM systems are granted to few experienced project team members and based on the user activity and approval from KM team, it will be extended to rest of the team members.
Another aspect of managing the knowledge in KM systems, involves handling special cases, such as team members who leaves the company. KM team needs to be able to make sure other team members do not waste time trying to contact that person while preserving the knowledge they have contributed.
Review the KM project regularly
KM projects must be reviewed regularly to assess whatís missing and finding ways to better organizing knowledge. The review begins by breaking the information into two categories:
- What knowledge currently exists
- What knowledge is missing
Once the location or source of the missing information is identified, KM teams can begin to structure the relevant information so that it can be easily found.
One of the common mistakes most of the teams do while review process is more emphasis on cataloguing existing explicit information assets or the information that is documented, transferable and reproducible (ex: test reports, project proposals etc.,)
But, during review process, there should be more emphasis on reviewing the cycles of knowledge conversion.
For example, if software test team has bought a particular third party component recently to test the features and debug the issues easily, in the review process they must review the efficient ways of how the tacit knowledge on the component translated to explicit knowledge.
In addition to this, management must regularly review the alignment of current KM measurements with other project metrics and high-level goals.
Balance between technology, culture and practice.
For KM to be successful, as mentioned in earlier section, there must be balancing act between Technology, culture and practice. This can be achieved by placing the desire of people to use/involve in KM activities ahead of the technology. This needs cultural change within the teams and support from the management.
For team members, if given the required time, training and incentives, they will begin to capture, manage and share knowledge with enthusiasm.
In addition to this, management must try to eliminate traditional rivalries between team members. This involves changing perception of employees i.e., "To stay strong, I have got to hide and protect what I know." With this perception, most of the experienced team members will be reluctant to contribute to the KM activities. Here management has to play key role in changing the mindsets of the team members. Management has to assure that there will not be any threat to their positions by doing that. To resolve this, management has to create a supportive & collaborative culture by rewarding the individuals who contribute to KM activities. And the performance appraisal criteriaís have to be changed to rate performance based on employeeís cooperative efforts.
Overall, cultural changes of this magnitude take time, so they have to practice this continuously to see the results of KM.
Share the success stories of KM practices at organization level.
Normally, two thirds of KM effort needs to focus on non-technical issues such as culture and practice. For making this effective, management must use motivational approaches such as sharing success stories about KM implemented recently within their organization. If KM has been implemented successfully in software Test development teams, the positive impact of KM within test development teams must be shared with other development teams, test teams and sustainable teams with-in the software divisions. These positive impacts could be how the tools development process has been improved, quick fixing of the tools issues, reduced attrition rates and shortening skills gap within the test development team. By doing this, it will stimulate the team memberís curiosity to involve in KM activities and help the KM team to apply KM methodologies in other parts of the organization.
This article summarizes various challenges software organizations facing in terms of global distributed teams, quick testing lifecycles, outsourcing models etc., and how KM can be implemented effectively with the best practices. To resolve the above mentioned issues software teams facing at the moment, KM practices make very high impact in long-term. For this, management/team members must be committed to implementing the above practices over a period of time to achieve better results. Like any other management methodology, there is no "one size fits all" type of method to implement Knowledge Management. As this whole process involves cultural changes of significant magnitude, teams must be patient and practicing this continuously to see the bottom line results.
- Johnson, G and Scholes, K (2002) Exploring Corporate Strategy, 6th Edition, Prentice Hall
- Ted E. Lee , "Applying Knowledge Management Approach For Software Testing"
- Ikujiro Nonaka, "A Dynamic Theory of Organizational Knowledge Creation"
- ONG Kein Wei, TANG Mei Ying, "Knowledge Management Approach in Mobile Software System Testing"
- Anne Stuart, "5 Uneasy Pieces, Part 2, Knowledge Management," CIO Magazine, June 1, 1996
- Tom Davenport, "Known Evils, Common Pitfalls of Knowledge Management," CIO Magazine, June 15, 1997
- 2010 Global Most Admired Knowledge Enterprises (MAKE) Report -- www.knowledgebusiness.com/
- Basili, Victor R; Mikael Lindvall, Myrna Regardie, Carolyn Seaman, Jens Heidrich, Jurgen Munch, Dieter Rombach, Adam Trendowicz (2010). "Linking Software Development and Business Strategy Through Measurement". Computer 43 (4): 57Ė65.
- Alexander Serenko, Nick Bontis, Timothy Hardie, (2007) "Organizational size and knowledge flow: a proposed theoretical link", Journal of Intellectual Capital, Vol. 8 Iss: 4, pp.610 - 627