How to Transfer Knowledge in an Agile Project
Knowledge transfer is characterized by transfer of understanding, about a context, from one unit (individual, team, department, organization) to another. Most organizations, spend a considerable amount of time documenting their understanding so that the knowledge transfer process becomes smooth and efficient. While Agile does not discourage documentation, it does place emphasis on “Working software over comprehensive documentation”. In a series of interesting experiments, Steve Bockman tried to figure out the best way to transfer knowledge in an Agile project.
For the experiment, Steve tried to transfer knowledge about a product which was an unusual paper plane in three ways. He used the following strategies,
Documentation - The workers were given written instructions (22 steps worth) for building the airplane.
Reverse Engineering - The workers were given a completed airplane which they could study in order to reproduce the steps required to build it.
Mentoring - The “chief designer” built an airplane step by step and the workers replicated each step as it was performed.
The experiment was conducted with 8 participants for a total duration of 5 minutes for each scenario. The results were amazing.
Only 12.5 % people were able to complete the assignment by referring to the documentation. Using the reverse engineering method, 25% of the participants were successful and with the mentoring method 100% of the participants were successful.
This certainly points in the direction of healthy communication and mentoring as the best way to transfer and share knowledge. Steve added that this principle holds even more value for software development which is based on constant communication and feedback. According to him,
Let’s say I’m a developer who has discovered, and written the code to implement, a technique for binding some data to the controls in a user interface, and that this technique forms a pattern that my fellow developers want to know about. If you were one of my fellow developers, would you rather I (a) gave you a document I had written about the technique, (b) told you where the code was and suggested you figure it out for yourself, or (c) paired with you to implement the pattern for a new set of data?
Young Ye and Royce Fay, suggested another way of efficient knowledge transfer using Asymmetric pair Programming. The essence of this method is that apart from pair programming between developers, it also happens between developers and domain users. Again, the stress being on human communication than documentation.
One of the well known benefits of pair programming is quick knowledge sharing and transfer. Agreeing with this, Alan Skorkin suggested,
The most important benefit in my opinion is the fact that pairing is highly conducive to organic knowledge transfer (”pairing is knowledge sharing” for the poet in you). I believe this is key since in a large system there is literally no other way to do this well.
Thus, there is a general agreement that the best way to transfer knowledge is by communication, mentor-ship and working together. Though, some amount of documentation might be helpful, but solely relying on documentation would yield limited benefits.
The Mentor Bottleneck
by
Frank Smith
Re: The Mentor Bottleneck
by
James Couzens
Re: The Mentor Bottleneck
by
Balaji D Loganathan
An idea would be to ask the Mentor to prepare the screen cast on the KT.
Regards
Balaji D Loganathan, Spritle Software
Need for a stable team for knowledge retention
by
Udayan Banerjee
Value of pairing
by
Dave Nicolette
Yet, it's clear that I'm mistaken to make that assumption. Based on some of the comments here, it seems some people assume "mentor" is a special individual who may or may not be available. I see every team member as a mentor, when and as necessary, using the seamless, effortless, cost-free, automatic, and organic mentoring method: Pairing.
The only thing that puzzles me is the fact that (apparently) this isn't perfectly obvious to everyone.
What is your team size?
by
Mohamed Faramawi
But what is your team is 10, or 20 , what will you do, you can't pair with them tall, you can use the lead by example approach.
What if you team is > 20.. well you can still use previous techniques, and let who you taught ,teach who you didn't , only if they have the spirit.
But in my opinion, documentations will always be needed, its just a matter of how much docs you will write, and when.
What i think is, every agile team should have a technical writer who catch up whatever devs share together and take care of sorting preparing these stuff, it won't be a good technical document, but somehow it will be useful, and others can benefit from it.
It's a venture to organization that a person have much knowledge.
by
一 刀
Re: The Mentor Bottleneck
by
d l
Re: Value of pairing
by
Frank Smith
Re: The Mentor Bottleneck
by
Frank Smith
Try the same experiment with an commercial jumbo jet aircraft pilot transfering knowledge to someone with experience limited to flying small planes. Again, it won't be a good outcome. Now I agree that after numerous "pairing" sessions it might work.
However, in both these examples there's a lot of written documentation involved for a successful knowledge transfer along with pairing.
Re: The Mentor Bottleneck
by
d l
Re: What is your team size?
by
Dave Nicolette
Re: What is your team size?
by
Vikas Hazrati
Re: The Mentor Bottleneck
by
Frank Smith
Re: What is your team size?
by
Frank Smith
Educational Content
Writing Usable APIs in Practice
Giovanni Asproni May 19, 2013
Concurrency in Clojure
Stuart Halloway May 17, 2013





Hello stranger!
You need to Register an InfoQ account or Login to post comments. But there's so much more behind being registered.Get the most out of the InfoQ experience.
Tell us what you think