Recently one of our key engineers resigned. This engineer has co-authored a major component of our application. We are not hitting Truck number yet though, but we're getting close :)

Before the guy waltzes off, we want to take actions necessary to recover from this loss as smoothly as possible and eventually 'grow' the rest of the team to competently cover the parts he authored.

More about the context: the domain the component covers and the code are no rocket science but still a lot of non-trivial stuff. Some team members can already cover a lot of this but those have a lot on their plates.

These are the actions that come to my mind:


Improve tests and test coverage - especially for the non-trivial stuff,
Update high level documents,
Document any 'funny stuff' the code does (we had to do some heavy duct-taping),
Add / update code documentation - have everything with 'public' visibility documented.


Finally the questions:

What do you think are the actions to take in this situation? What have you done in such situations? What did or did not work well for you?

I ask him to stop coding completely and devote his time:


coaching others
review his comments in code (to adapt them to the situation) 
and write a document he would have written if he knew he would leave in a week.


I try to put priority in modules he owned to make other developer work with them.

Remember after he left, it's too late to do coaching or ask him questions (in good conditions).

When he leaves, take that opportunity to ask him how he think you could improve your organization. Former employees have nothing to lose and their feedback is honest and then always valuable.
