EDIT : I agree one should check the reasons, why a senior level employee is leaving. But I am interested in knowing the official/management/technical/legal steps one should take after its decided that he is leaving, so that the life after him is smooth.
What are the steps management should take when a senior programmer/team lead leaves your company.
Some of them which I have thought about are :
If He used to manage hosting and domains stuff, change passwords of domain control panels and hosting panels.
If your published web sites have maintenance account and he is aware of credentials of that account then change this details also.
Suspend mail account for some time and forward all eMails of that account to some ex-employee account. After some time close that account.
What are the other things one should check. I am expecting the answer to be a general check list one should follow. It should include both technical scenarios and management scenarios.
Notable Suggestions so far :
- Effectively transfer the responsibilities of that employee to another one without causing any potential delay in your work. [1]
- Protect your source code. If possible Make them to sign something to say that they don't have copies of source code. [2]. You can also consider NDA [3] here.
- Use the Notice Period to train his replacement. Now any new code to the project will be > done by replacement with the help of Guy who is leaving. [4]
- Ask him to create a document of things he thinks you should know. [5]
- Make sure he checks everything in now and then any checkout will only be done by the replacement. [6]
- Emails , copy off his email account to a pst.file (this assumes Outlook), Make this file available to his replacement [7]. the employee should probably be given a chance to scrub the email.
- if you are going to keep his account open for whatever reason, check that no rules are created that forward incoming emails to an alternate address. [8]
- Copy the hard drive of his computer to a network location and have someone senior go through and see if there are any files (drafts of performance reviews or other sensitive issues ) on it that someone else might need. [9]
- Clearance from Accounts,Finance,Security,Library etc departments. [10] Obtain all company property, laptops, keys, etc. [11]
- If there is no reason not to, you should reward a departing person for their many years of service. Write them letters of recommendation (even if they already have a new job lined up).Say goodbye, and keep the door open. [12]
- Make sure any outside clients know that the departing employee is not their main contact anymore. [13]
- Never neglect the exit interview/debriefing. [14]
- Confirm the last day of employment so that there is no misunderstanding [15]
- Inform H/R if the employee is on H1B status, there is paperwork required to notify the government when an H1B employee leaves. [16]
- Depending on how senior / what position, you might spend some time convincing him not to take the rest of the engineering staff with him. [17]
- Make sure he spends his last days on a good note, because if he is not leaving on a good note, he can easily pollute the mind of his colleagues. [18]
Best Regards, Mahin Gupta
EDIT : Now offered a bounty on it to get more detailed responses and practical suggestions.
I would say when any senior people leave your company, you must:
Give a warm farewell so that they have a +ve picture of your organization, and in the future they may come back happily.
Respect their decisions, Do not take it personally :)
Speak good words about his contribution to your company
Last but not least: see if something is lacking in your organization that is causing senior personnel to leave. Senior people do not often switch jobs.
These process you can include in revealing an employee.
Most important is KT (Knowledge Transfer), Choose an employee who will hold responsibilities and schedule proper knowledge transfer sessions.
Depending on how senior / what position, you might spend some time convincing him not to take the rest of the engineering staff with him.
I've seen it happen plenty of times. A popular engineer is off to start a new business or moving to a competitor. Your other engineers see an opportunity and/or agree with his reasons for leaving and follow him.
Suddenly you have no engineering staff. Oops.
Part on good terms
You don't want to burn bridges here. Often if there are bad feelings on leaving, just the knowledge that you tried to take care of them on their way out the door is comforting to them and will protect you from a backlash.
Get as much input as you can
Most people will not want to say anything negative. However knowing that they won't be back, they may be willing to share things they weren't before because of it.
Don't get surprised
If you don't know all that that person did while they were in your employ, you could easily get caught with your pants down later. Are they available to help out if there are questions later? Is there some manual process that they are a part of that needs to be passed on?
Keep everything for a time
You need to make sure you can get documents, emails, and other communications before and after they leave. Their replacement should have complete access and an understanding of the departing person's methods.
Compensate them
If there is no reason not to, you should reward a departing person for their many years of service. Write them letters of recommendation (even if they already have a new job lined up). Celebrate the part of their career you had them. And provide a good severance package. Say goodbye, and keep the door open.
Security measures Have a checklist of procedures to follow through on when an employee leaves. It may require an effort from several people to take all the steps. So have a procedure in place for making sure all changes are made quickly.
If he gives the standard two weeks notice, use that time wisely to train someone else. Any new dev that must happen then, have it done by the new guy not the guy leaving with the guy leaving looking over his shoulder and providing advice. Ask him to create a document of things he thinks you should know, especially if you don;t havea an immediate replacement. Have him write it from the poitn of view of what he would want to know if he was coming in to take the job. A senior professional leaving will probably do that anyway, but it's helpful to ask for one. If he's been working on a project that no one else is working on, make sure you know where the files are stored in your source control system. Make sure he checks everything in now and then any checkout will only be done by the replacement.
Emails, copy off his email account to a pst.file (this assumes Outlook), Make this file available to his replacement (you can link to multiple pst files, I had this on one of my previous jobs and it was hugely invaluable). There is a lot of work documented in emails that the replacement probably was not a "copy to" on. Very useful to be able to research what happened in the past. Same thing with past projects if they are in some type of project management/bugtracking system. You might want to find a way to make all the old projects available to the new guy through your database backend. Amazing how often in life you need to refer to this stuff. If he gets a new request that says something like, this is simliar to request 1234, you want the new guy to be able to read request 1234. IF someone says, I told Jack about this in an email back last July, you want to have a chance to find that email.
Copy the hard drive of his computer to a network location and have someone senior go through and see if there are any files on it that someone else might need. Needs to be someone senior if he had any supervisory responsibilities as he might have drafts of performance reviews or other sensitive issues there.
The one I would vote for will be to effectively transfer the responsibilities of that employee to another one without causing any potential delay in your work.
As someone who is dealing with this, I'll say that aside from the previously mentioned points, the main concern for me has been to make sure any outside clients know that the departing employee is not their main contact anymore.
A lot of clients can become frustrated if they weren't informed someone they're familiar with and comfortable with has left and now they're dealing with someone they may have never met before. Some clients don't care as long as the work gets done, but others will cause a big fuss.
A lot of these suggestions regarding security should be done before any employee leaves.
For instance, the employee's company email and company account should not be used for domain registrations in the first place. admin@domain.com, domains@domain.com, licenses@domain.com are all accounts we would use to maintain communications. Access to those mailboxes is by a role and when an employee is removed from that role, you are done. The employee never knows those passwords and never even owns the actual account.
Similarly, service accounts should not have known passwords.
If you do have shared accounts, the passwords should be rotated early and the access to the password vault system would already be revoked by role.
All these things should be set up in the first place assuming that the role is going to change over time.
In addition:
Never neglect the exit interview/debriefing
Always complete finalizing negotiations before informing other employees - this saves a lot of embarrassment if the employee really loved his job and just wanted more money and a counter-offer kept him happy
Confirm the last day of employment so that there is no misunderstanding
Inform H/R if the employee is on H1B status, there is paperwork required to notify the government when an H1B employee leaves, this is not automatically handled by most H/R systems, where terminations are relatively simple.
Knowledge transfer just prolongs the problem.
Stop having them code when they put in notice. Have them start writing documentation, and have that documentation continuously reviewed by at least two people. Pay them after they leave, if they're willing, to keep writing documentation if necessary.
If you didn't already have an non-disclosure agreement (NDA), you're very unlikely to get one from them after they've announced they're leaving. They have no reason to want to sign that document at that point. If an NDA is useful, you should have new employees sign that, not leaving ones.
Changing your passwords can't be understated.
And if you're less senior, it can't hurt to ask where they're going, and if they'd take you along. There has to be some reason they're going.
In regards to the email aspect, if you are going to keep his account open for whatever reason, check that no rules are created that forward incoming emails to an alternate address. This may apply more to positions like sales, but in any event, sensitive information might be at risk.
With respect to the knowledge transfer:
Assume every employee will (eventually) leave -- because they will**.
With this in mind, it will be beneficial if everyone keeps process/function/workflow details and account information in a Wiki or somesuch. Then, when it comes time for the successor to 'take the reigns', there will be a foundation of knowledge ready to be consumed.
Ongoing cross-training (at least for familiarity's sake) is also a good idea.
Even with good intentions, a company needs to guard against the "SSHing/surfing to secret admin pages while drunk" syndrome, thus it is necessary to change the admin passwords where possible and limit admin-level accounts from being accessed from outside the company's network without SecureID, Citrix, or equivalent.
** Retirement, Death or voluntary/involuntary separation. Pick one.
You just change any passwords or other access details that guy had access for. That's all. Plus, I agree with phoenix here, you transfer responsibilities to another worker.
Make sure they don't have copies of source code. Hard to prove, but get them to sign something to say that they don't.
Does that senior employee have a grudge? If not, don't panic. Your procedure should be the same as when anyone leaves who may know passwords etc - and if the company is more than a couple of people, you should have a standard procedure for it.
Be aware that those that reported to that senior employee may soon leave too. For example, where I once worked, we had a new CTO as well as some new managers that had all worked together at a previous company and they came over together. I'd just be cautious of anyone connected to that senior person possibly going with them which also includes clients as well as minions.
Listening
Have an amicable talk with him to find out the reasons that he's considering leaving for. There might be a certain problem in the organisation that you weren't aware of, and people were probably reluctant to bring it up based on other reasons. Usually it is frustrating when the management doesn't realize your frustrations.
Because the person has already decided on leaving it is more likely that he'll open up now. It might be something that you can address thus decreasing further possible turnover.