什么是转移知识的最佳做法?

时间:2021-11-15 20:02:25

If you end up in a situation that main developer of project you are working on decides to leave.

如果您最终处于您正在处理的项目的主要开发人员决定离开的情况。

He has all the knowledge, been in project from it's very beginning. If you are lucky you might get something like two month of him still on a project, if not it might be just a month leave notice.

他拥有所有的知识,从一开始就参与项目。如果你很幸运,你可能会在两个月的时间内完成一个项目,如果不是,那可能只是一个月的通知。

What are best practices for knowledge drain, transfer?

什么是知识流失,转移的最佳实践?

What has proved been usefully for you in past? Pairing, presentations, documentation?

过去证明对你有用的是什么?配对,演示文稿,文档?

7 个解决方案

#1


I think regularly scheduled knowledge sharing sessions between paired developers works well. Make sure that at least 2 coders have some experience with each part of your code base.

我认为配对开发人员之间定期安排的知识共享会议运作良好。确保至少2名程序员对您的代码库的每个部分都有一些经验。

We made a Knowledge Sharing Chart which listed each developers name in the margin and each project across the top. We put a green symbol in the box that would line up the primary developer with their project and a yellow symbol that would line up the secondary developer and that same project.

我们制作了一个知识共享图表,其中列出了边距中的每个开发人员名称以及顶部的每个项目。我们在框中放置了一个绿色符号,它将主要开发人员与他们的项目排成一行,黄色符号将排列二级开发人员和同一个项目。

It was easy then, to go down the line of each project and ensure it had at least 2 marks. If it didn't then at our next major meeting we would let the developers decide which project they were secondaries on, but they all had to be a secondary developer on at least one project. This way they are learning about the projects they have some interest in and working with the developers of their choosing.

然后,很容易,沿着每个项目的路线,确保它至少有2个标记。如果没有,那么在我们的下一次重要会议上,我们会让开发人员决定他们是哪个项目是辅助项目,但他们都必须是至少一个项目的二级开发人员。通过这种方式,他们可以了解他们感兴趣的项目,并与他们选择的开发人员合作。

Some large or system critical projects had 2 or 3 secondaries. Each month we would schedule in knowledge sharing time in two hour blocks. You'd swap between going to your secondary project and people coming to your primary.

一些大型或系统关键项目有2或3个辅助项目。每个月我们都会安排两小时的知识共享时间。您可以在进入二级项目和进入初级项目的人之间进行切换。

#2


If you have enough time, get him to fully document the system, then go through both the system and documentation with him to ensure you understand both.

如果你有足够的时间,让他完整记录系统,然后与他一起检查系统和文档,以确保你理解这两者。

Don't rely on the fact that you will remember details. Take notes on everything he says during your transfer meetings.

不要依赖于你会记住细节的事实。记录他在转会期间所说的一切。

#3


I was pairing with a colleague in recorder sessions. He was giving me detailed explanations, walked me through the code and mapped features of the application with the code. After he left I spent several days in transcribing these recordings and making technical documentation which was used where I left the company some time after

我在记录员会议上与一位同事配对。他给了我详细的解释,告诉我代码并用代码映射应用程序的功能。在他离开后,我花了几天时间抄录这些录音并制作技术文档,这些文件在我离开公司的某个时间后使用

#4


Documentation is essential, but it should exist prior to anyone leaving. However, somebody leaving should trigger a cycle of editing/reviewing/updating.

文档是必不可少的,但它应该在任何人离开之前存在。但是,有人离开应该触发编辑/审查/更新的循环。

Docs alone are incredibly dry however, and presentations are just a slightly more animated way of boring your soon-to-be-former colleagues, so in my experience the only thing of any real value is hands-on code walkthroughs, driven by the learner not the leaver in as small groups as possible. It is essential that the learner sees the code running, with breakpoints, exceptions, unit-tests and end results.

然而,单独的文档是令人难以置信的干燥,演示文稿只是一种稍微更加生气勃勃的方式让你很快就会成为前同事,所以根据我的经验,任何真正有价值的东西都是动手代码演练,由学习者驱动不是尽可能小的群体。学习者必须看到代码运行,包括断点,异常,单元测试和最终结果。

(And FWIW I believe all projects should be UML class diagram documented - boxes and lines are what I want to see when I'm learning an architecture)

(而且FWIW我相信所有项目都应该记录UML类图 - 当我学习架构时,盒子和线条是我想要看到的)

#5


If possible i would say bring another senior/colleague who might be working on the same thing to the passdown meeting. Get the person to do a walkthrough of business logic and then the code if possible. the other person is important to provide a second opinion as they might catch some points that you missed out due to experience, etc.

如果可能的话,我会说另一位可能正在为同一会议工作同事的高级/同事。让人员进行业务逻辑的演练,然后尽可能地编写代码。另一个人提供第二意见非常重要,因为他们可能会因为经验等而错过了一些你错过的观点。

And i echo Galwegian on Taking notes of everything down. just make sure that you keep them in legible writing :) And do a review of the material if possible after the meeting after like a good break in between, 1-2hours for the material to sneak into your mind. Then ask the person again whatever you don't understand on the next meeting.

而且我回想起Galwegian就记下了一切。只是确保你保持清晰的写作:)并且如果可能的话,在会议结束之后对材料进行审查,如同在两者之间的良好休息,1-2小时的材料潜入你的脑海。然后在下次会议上再次询问此人。

I learn that if you leave too long before you review the material it's giong to be pretty much greek to you by then.

我知道如果你在审查这些材料之前离开的时间太长,那么到那时你就会非常希望。

Just my two cents.

只是我的两分钱。

#6


Don't believe that documentation is going to buy the knowledge accumlated by this developer.

不要相信文档会购买这个开发人员积累的知识。

I think the only way to get a real knowledge transfer is to have someone work in pair with him on the project doing actual work. He will then discover the small tips necessary to work in the project. I remember a case where our emulator does not work correctly in step-by-step but you can get it to work using breakpoints. This is a typical example of things you only learn by doing.

我认为获得真正知识转移的唯一方法就是让某人与他一起在项目中进行实际工作。然后他将发现在项目中工作所需的小技巧。我记得一个案例,我们的模拟器在逐步中无法正常工作,但您可以使用断点使其工作。这是您只能通过实践学习的典型示例。

After the other developer has become more familiar with the project and way of using it, just review all the code, documentation. But the best is always if for each part of the project, they can do a small enhancement to use all the tools and discover all the quirks.

在其他开发人员更熟悉项目和使用方法之后,只需查看所有代码和文档。但最好的是,如果对于项目的每个部分,他们可以做一个小的增强,以使用所有工具并发现所有的怪癖。

#7


As well as static documentation as to what the project currently is, I also produce a record of what demos/experiments were performed and what decisions were made. The trajectory of the project matters, in terms of knowing what was already tried and failed, and what parts are in technical debt and why.

除了关于项目目前是什么的静态文档,我还会记录所执行的演示/实验以及做出的决策。在了解已经尝试过和失败过的内容以及技术债务中的哪些部分以及原因方面,项目的轨迹很重要。

#1


I think regularly scheduled knowledge sharing sessions between paired developers works well. Make sure that at least 2 coders have some experience with each part of your code base.

我认为配对开发人员之间定期安排的知识共享会议运作良好。确保至少2名程序员对您的代码库的每个部分都有一些经验。

We made a Knowledge Sharing Chart which listed each developers name in the margin and each project across the top. We put a green symbol in the box that would line up the primary developer with their project and a yellow symbol that would line up the secondary developer and that same project.

我们制作了一个知识共享图表,其中列出了边距中的每个开发人员名称以及顶部的每个项目。我们在框中放置了一个绿色符号,它将主要开发人员与他们的项目排成一行,黄色符号将排列二级开发人员和同一个项目。

It was easy then, to go down the line of each project and ensure it had at least 2 marks. If it didn't then at our next major meeting we would let the developers decide which project they were secondaries on, but they all had to be a secondary developer on at least one project. This way they are learning about the projects they have some interest in and working with the developers of their choosing.

然后,很容易,沿着每个项目的路线,确保它至少有2个标记。如果没有,那么在我们的下一次重要会议上,我们会让开发人员决定他们是哪个项目是辅助项目,但他们都必须是至少一个项目的二级开发人员。通过这种方式,他们可以了解他们感兴趣的项目,并与他们选择的开发人员合作。

Some large or system critical projects had 2 or 3 secondaries. Each month we would schedule in knowledge sharing time in two hour blocks. You'd swap between going to your secondary project and people coming to your primary.

一些大型或系统关键项目有2或3个辅助项目。每个月我们都会安排两小时的知识共享时间。您可以在进入二级项目和进入初级项目的人之间进行切换。

#2


If you have enough time, get him to fully document the system, then go through both the system and documentation with him to ensure you understand both.

如果你有足够的时间,让他完整记录系统,然后与他一起检查系统和文档,以确保你理解这两者。

Don't rely on the fact that you will remember details. Take notes on everything he says during your transfer meetings.

不要依赖于你会记住细节的事实。记录他在转会期间所说的一切。

#3


I was pairing with a colleague in recorder sessions. He was giving me detailed explanations, walked me through the code and mapped features of the application with the code. After he left I spent several days in transcribing these recordings and making technical documentation which was used where I left the company some time after

我在记录员会议上与一位同事配对。他给了我详细的解释,告诉我代码并用代码映射应用程序的功能。在他离开后,我花了几天时间抄录这些录音并制作技术文档,这些文件在我离开公司的某个时间后使用

#4


Documentation is essential, but it should exist prior to anyone leaving. However, somebody leaving should trigger a cycle of editing/reviewing/updating.

文档是必不可少的,但它应该在任何人离开之前存在。但是,有人离开应该触发编辑/审查/更新的循环。

Docs alone are incredibly dry however, and presentations are just a slightly more animated way of boring your soon-to-be-former colleagues, so in my experience the only thing of any real value is hands-on code walkthroughs, driven by the learner not the leaver in as small groups as possible. It is essential that the learner sees the code running, with breakpoints, exceptions, unit-tests and end results.

然而,单独的文档是令人难以置信的干燥,演示文稿只是一种稍微更加生气勃勃的方式让你很快就会成为前同事,所以根据我的经验,任何真正有价值的东西都是动手代码演练,由学习者驱动不是尽可能小的群体。学习者必须看到代码运行,包括断点,异常,单元测试和最终结果。

(And FWIW I believe all projects should be UML class diagram documented - boxes and lines are what I want to see when I'm learning an architecture)

(而且FWIW我相信所有项目都应该记录UML类图 - 当我学习架构时,盒子和线条是我想要看到的)

#5


If possible i would say bring another senior/colleague who might be working on the same thing to the passdown meeting. Get the person to do a walkthrough of business logic and then the code if possible. the other person is important to provide a second opinion as they might catch some points that you missed out due to experience, etc.

如果可能的话,我会说另一位可能正在为同一会议工作同事的高级/同事。让人员进行业务逻辑的演练,然后尽可能地编写代码。另一个人提供第二意见非常重要,因为他们可能会因为经验等而错过了一些你错过的观点。

And i echo Galwegian on Taking notes of everything down. just make sure that you keep them in legible writing :) And do a review of the material if possible after the meeting after like a good break in between, 1-2hours for the material to sneak into your mind. Then ask the person again whatever you don't understand on the next meeting.

而且我回想起Galwegian就记下了一切。只是确保你保持清晰的写作:)并且如果可能的话,在会议结束之后对材料进行审查,如同在两者之间的良好休息,1-2小时的材料潜入你的脑海。然后在下次会议上再次询问此人。

I learn that if you leave too long before you review the material it's giong to be pretty much greek to you by then.

我知道如果你在审查这些材料之前离开的时间太长,那么到那时你就会非常希望。

Just my two cents.

只是我的两分钱。

#6


Don't believe that documentation is going to buy the knowledge accumlated by this developer.

不要相信文档会购买这个开发人员积累的知识。

I think the only way to get a real knowledge transfer is to have someone work in pair with him on the project doing actual work. He will then discover the small tips necessary to work in the project. I remember a case where our emulator does not work correctly in step-by-step but you can get it to work using breakpoints. This is a typical example of things you only learn by doing.

我认为获得真正知识转移的唯一方法就是让某人与他一起在项目中进行实际工作。然后他将发现在项目中工作所需的小技巧。我记得一个案例,我们的模拟器在逐步中无法正常工作,但您可以使用断点使其工作。这是您只能通过实践学习的典型示例。

After the other developer has become more familiar with the project and way of using it, just review all the code, documentation. But the best is always if for each part of the project, they can do a small enhancement to use all the tools and discover all the quirks.

在其他开发人员更熟悉项目和使用方法之后,只需查看所有代码和文档。但最好的是,如果对于项目的每个部分,他们可以做一个小的增强,以使用所有工具并发现所有的怪癖。

#7


As well as static documentation as to what the project currently is, I also produce a record of what demos/experiments were performed and what decisions were made. The trajectory of the project matters, in terms of knowing what was already tried and failed, and what parts are in technical debt and why.

除了关于项目目前是什么的静态文档,我还会记录所执行的演示/实验以及做出的决策。在了解已经尝试过和失败过的内容以及技术债务中的哪些部分以及原因方面,项目的轨迹很重要。