Skip to content

Knowledge-sharing and software development

by Ole Markus on September 1st, 2010

I have earlier described two strategies for managing knowledge. I will now describe how the two strategies relate to managing knowledge in software development.

Plan-driven methodologies focus on documentation. In every phase, engineers produce documentation that is handed over to the engineers working in the next phase. These sets of documentation represent the knowledge that the first group of engineers learnt about the product (Nerur and Balijepally, 2007). Since most of the knowledge in software development is tacit (Desouza, 2003; Chau et al., 2003), the cost of externalising it can be immense. Agile methods focus on cross-functional teams with high degree of communication between team members. This leads to a stronger focus on tacit knowledge in agile development (Chau et al., 2003) and the cost of keeping documents up to date is no longer a problem.

A challenge with the form of knowledge management promoted by agile methods is that it requires more from the team members–they must be able to handle multiple roles. Instead of having one team dedicated to requirement engineering, the team has a member with the role of being the `requirement expert’, or preferably, the team members rotate the responsibility. Because of this, the agile developer needs knowledge from the technical, managerial, product and project knowledge domain (Rus and Lindvall, 2002).

Agile methods require that the necessary relevant knowledge that a team requires exists as tacit knowledge embodied in the team. If the knowledge in the team is sufficient, things work fine, but if some knowledge is missing, irrevocable errors to the architecture can be done. It is also vital that the members of the team are willing to share their knowledge (Cohn and Ford, 2003; Boehm and Turner, 2003). Plan-driven methods lessen this risk because of processes such as external expert review of the architectural plan.

Knowledge outside of the software development domain is obtained through user participation, for example through customer focus groups or on-site customers. This is a core concept in agile development, but is also recognised by many of the plan-driven methods. The use of user participation is necessary because of the users’ inability to their requirements, that they posses as tacit knowledge, as explicit knowledge (Chau et al., 2003).

A survey conducted by Bjørnson and Dingsøyr (2009) suggested that when a company starts growing beyond small size they often put systems in place to ensure that knowledge is codified. Their survey also partly supports the theory that agile companies benefit the most from knowledge management methods that focus on knowledge-sharing over using information technology.

Bibliography

F. Bjørnson and T. Dingsøyr.
A Survey of Perceptions on Knowledge Management Schools in Agile and Traditional Software Development Environments.
pages 94-103. Springer, 2009.
B. Boehm and R. Turner.
People factors in software management: lessons from comparing agile and plan-driven methods.
Journal of Defense Software Engineering, 22 (4): 4-8, 2003.
T. Chau, F. Maurer, and G. Melnik.
Knowledge sharing: agile methods vs. Tayloristic methods.
In Proceedings of the Twelfth International Workshop on Enabling Technologies: Infrastructure for Collaborative Enterprises, pages 302-307. Citeseer, 2003.
M. Cohn and D. Ford.
Introducing an agile process to an organization.
Computer, 36 (6): 74-78, 2003.
K. C. Desouza.
Barriers to effective use of knowledge management systems in software engineering.
Commun. ACM, 46 (1): 99-101, 2003.
S. Nerur and V. Balijepally.
Theoretical reflections on agile development methodologies.
Commun. ACM, 50 (3): 79-83, 2007.
I. Rus and M. Lindvall.
Knowledge management in software engineering.
IEEE software, pages 26-38, 2002.
One Comment
  1. Can’t go wrong with trac with a wiki

Leave a Reply

Note: XHTML is allowed. Your email address will never be published.

Subscribe to this comment feed via RSS

Switch to our mobile site