×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Ask Slashdot: How To (or How NOT To) Train Your Job Replacement?

Soulskill posted about a year ago | from the make-sure-he-understands-snipe-tags dept.

IT 292

An anonymous reader writes "I am a contract developer from a major U.S. city. My rate has never been the lowest, but it's nonetheless very competitive considering the speed and quality of the work I have always delivered, as well as the positive feedback I've received from most clients. In the past ~3 years, I have been working on a sizable project for a major client. For the most part it has been a happy arrangement for both parties. However, for various reasons (including the still ailing economy), starting this year they hired a fresh college graduate in-house, and asked me to teach him all 'secrets' of my code, even though they have the source code by contract. The implicit (although never openly stated) goal is of course for him to take over the project and hopefully reduce cost, at least in the short-term. I say 'hopefully' because I am pretty sure that, because they are unfamiliar with the software industry, they underestimated what it takes to make quality, production-ready code. I am not afraid of losing this particular client, as I have many others, but I want to ask Slashdot: how do you handle this type of situation — training someone whom you know will eventually replace you at your job?"

cancel ×
This is a preview of your comment

No Comment Title Entered

Anonymous Coward 1 minute ago

No Comment Entered

292 comments

You're a contractor. Your "secrets" are yours (5, Insightful)

Anonymous Coward | about a year ago | (#43217453)

Give him the source code. Have him go over it. If he has any specific questions, answer then succinctly and accurately. But keep in mind that as a contractor you have no obligation to share any of your coding "secrets" with anyone, or teach anyone else how to code. Don't let your ego and desire to brag about how clever your coding solutions are make you forget that you are under no obligation to train anyone to take your place (no matter how much junior may flatter you).

You've given them the deliverables, you've presumably fulfilled your contract. Nowhere in said contract does it say anything about training other coders, I presume. Be professional and polite (don't refuse to answer questions they have about the code, for example). But also be firm about the limitations of your contract (it doesn't include answering questions like "Hey, can you teach me how to do this neat trick like you did?" and "Can you teach me how to do good memory management?").

Re:You're a contractor. Your "secrets" are yours (4, Insightful)

geekboybt (866398) | about a year ago | (#43217521)

While I agree mostly with what you've said, keep in mind that, as a contractor, he's been asked to provide a different service, to train the new guy, and is being compensated as both parties deem appropriate. I completely agree that the submitter shouldn't work for free, but if he's amicable to this agreement (as he appears to be) then there's no reason he can't continue. He's made his objections about hiring a newbie to do it, but it's their code to do with as they please.

Re:You're a contractor. Your "secrets" are yours (4, Insightful)

the_B0fh (208483) | about a year ago | (#43217615)

Geek boy has it right. You don't have to train him in comp sci, but showing him the ropes about the app is within scope.

Did you actually *read* TFA? (1)

DerekLyons (302214) | about a year ago | (#43217813)

While I agree mostly with what you've said, keep in mind that, as a contractor, he's been asked to provide a different service, to train the new guy, and is being compensated as both parties deem appropriate.

Nowhere in TFA does the submitter state that he is being compensated, let alone that he's happy with the agreement.

Re:Did you actually *read* TFA? (1)

Alan Shutko (5101) | about a year ago | (#43217949)

He's a contractor. If they're not paying his hourly rate, he doesn't have to do the work.

And (2)

gr8_phk (621180) | about a year ago | (#43218063)

And as I understand from contractor friends, you bill for "time and materials" not finished code. If you quote a deliverable you better be a good estimator and good at documenting the requirements up front, etc... To eliminate the uncertainty you bill for time and materials, and at that point it doesn't matter if they have you writing code, writing a manual, teaching, or shoveling shit.

IMHO he's best to document and teach everything he can to make his customer happy. If you want job security through obscurity get a direct position at a big company and take on something complex that nobody wants to touch. Of course then they won't pay so much, so you'll want to be a contractor. ;-)

Re:Did you actually *read* TFA? (1)

the_B0fh (208483) | about a year ago | (#43218025)

Yes. He is a contractor. That means hourly rate. He is not asked to do overtime and teach the kid on his own time.

Re:You're a contractor. Your "secrets" are yours (3, Insightful)

eth1 (94901) | about a year ago | (#43217847)

While I agree mostly with what you've said, keep in mind that, as a contractor, he's been asked to provide a different service, to train the new guy, and is being compensated as both parties deem appropriate. I completely agree that the submitter shouldn't work for free, but if he's amicable to this agreement (as he appears to be) then there's no reason he can't continue. He's made his objections about hiring a newbie to do it, but it's their code to do with as they please.

Yeah, if you're getting paid to teach him your code, why not? Also, if, as you seem to think, they've bitten off more than they can chew, you might end up getting paid to teach him, then keep the contract anyway, when they realize it's not going to work. That might not happen if you just shove the code at them and leave.

Re:You're a contractor. Your "secrets" are yours (4, Insightful)

VAXcat (674775) | about a year ago | (#43217987)

And, if you're friendly about it all, you can count on years of providing support to the new guy, which should bring in a lot of money.

Re:You're a contractor. Your "secrets" are yours (5, Insightful)

Fluffeh (1273756) | about a year ago | (#43218005)

Can't agree with this more. We had a similar experience withinmy company when a lot of the in-house support and dev guys were replaced with (much) cheaper contractors. They did the entire handover nicely, showed the new guys the ropes and moved into other roles or other companies. The new contractors of course are giving the quality of service as is being paid for - so many of our systems are suffering constant delays, SLAs are being missed and there is a strong push from within the business side to re-hire some of the folks that were let go. Of course, now to get them back, the salaries will have to be extra competitive as we want those exact folks back.

Sometimes cheaper is not really cheaper. I would say do a great job of handing over the project as best you can, let the new guy take the reigns. If it works out, great, if not, the company will probably want you back in short order anyhow. You can even look at it as an opportunity. Why not offer to stay on with a retainer, let the new guy handle all the gruntwork, but offer to explain or guide him/her for an hourly fee if needed. Assuming the do improve over time, you will be able to work in a new company at your normal rate and still get a small fee from this older company.

Re:You're a contractor. Your "secrets" are yours (1)

CanHasDIY (1672858) | about a year ago | (#43217567)

This.

Alternatively, you could go the Total Dick route and feed him a bunch of bullshit, just to watch the poor kid's wheels spin.

Schadenfreude!

Re:You're a contractor. Your "secrets" are yours (1)

Anonymous Coward | about a year ago | (#43217681)

Exactly, I mean nothing is better than proving to the company they should never let you back in, right?

You are being paid to do a job. They said, "Hey, we would like you to do XYZ while we contine to pay you." You said "Yes". So you should now do XYZ. if you didn't want to, then you could have said "No, sorry, not in my contract." they would then go "oh, ok. Finish up and the door is over there. Bubba will show you out."

Re:You're a contractor. Your "secrets" are yours (4, Insightful)

assertation (1255714) | about a year ago | (#43217595)

Basically, be a professional, be pleasant, do what you are obligated to do, but don't volunteer to go further.

Sounds about right.

If someone is replacing you, they can figure the "beyond obligations" stuff out for themselves.

Re:You're a contractor. Your "secrets" are yours (1)

Anonymous Coward | about a year ago | (#43217683)

I think the solution needs to be gauged on interaction with the new graduate.

If he shows signs of being a dick, give him some left handed screwdriver type assignments. Even if he isn't a dick, every graduate should be given something like this until they realise having a degree means just that and nothing more.

Be aware that if he is a dick, it is highly likely he will also be smart enough to destroy your reputation after you are gone, uncovering 'programming errors' in your work. Does your contract provide ongoing maintenance of your original code?

Re:You're a contractor. Your "secrets" are yours (0)

Anonymous Coward | about a year ago | (#43218041)

Even if the college grad isn't a dick, it's human nature to write off anything you don't understand, and anything that's wasn't done the way you'd do it, with a "the last guy was a crappy programmer" proclamation.

Be a Professional (5, Insightful)

Anonymous Coward | about a year ago | (#43217697)

Your a contractor. You should have lots of business ahead of you if you try and be professional with each and every client. Teach these developers as well as you can and to the best of your ability. (Unless you dislike training others enough you don't even have a rate you'd be willing to charge...) The people you have done business with in the past will likely want to do business with you again if you are professional and priced correctly. This includes the developers you train. They may end up wanting to hire you when they are in another job later.

Don't be a jerk. Be honest with your customers, too. If the developers have limitations try and express what they will be able to do well without over selling them.

Re:Be a Professional (5, Insightful)

TheRaven64 (641858) | about a year ago | (#43217829)

It's a shame this is at 0, because it's exactly what I would say. If it's a major client finishing up a piece of work, you want them to consider you for future pieces of work, and that includes building their next system, or extending this one when it's beyond the ability of the person that they've hired to maintain it. And even if this customer never needs more work from you, people move between companies, and you want them to think, next time they embark on a big project, 'at my last company, we had this really great consultant who shipped us working code and then trained our in-house staff to maintain it. We should see if he's available'.

Re:Be a Professional (3)

funwithBSD (245349) | about a year ago | (#43217915)

Train him up.
If he can't you know they will be back to get additional support.

If he can really run with your code, hire him away, put him to work on projects that make you money. =)

Re:You're a contractor. Your "secrets" are yours (1)

bobstreo (1320787) | about a year ago | (#43217731)

I'd go more with:
Request formal performace evaluationas and professional references as a requirement for training.

Negotiate any additional support charges (hour/day/job) for future support once existing contract is fulfilled.

Train within reason.

Leave.

$$Profit

Re:You're a contractor. Your "secrets" are yours (2)

Synerg1y (2169962) | about a year ago | (#43217743)

Agreed, just be available to answer any questions. It would also be nice to show where stuff's at, if you set up a process that touches 3 servers arbitrarily, you should share, but maybe only when the need for the knowledge arises. Don't schedule a meeting for something like that, wait for a manager to acknowledge the need for training, and then do it. Basically, my point is nobody makes more for training somebody. And interestingly enough, they won't replace you if they're not confident in your replacement, so probably expect at least another 6 months.

Re:You're a contractor. Your "secrets" are yours (0)

Anonymous Coward | about a year ago | (#43217789)

Inform them that the current contract does not include any provisions for training. Since training is a high demand and lucrative industry, a new contract will need to be signed with an appropriately higher contracting rate.

Re:You're a contractor. Your "secrets" are yours (1)

the_B0fh (208483) | about a year ago | (#43218065)

So, basically, blackmail them? That's going to work out so well.

You do realize that a contractor's work ends some day, right?

Re:You're a contractor. Your "secrets" are yours (2, Insightful)

SpaceMonkies (2868125) | about a year ago | (#43217837)

Your reputation is worth more than your ego. Be kind, be polite, and helpful ... to a point. Make a 30/60/90 day 'grace period' to answer "hey, can you remind me..." questions. Do this via email so it's all documented - use the excuse of "this way, you have it for reference". You don't need to bend over backwards for your 'replacement', but as a contractor, your reputation and network are paramount.

Re:You're a contractor. Your "secrets" are yours (2)

fermion (181285) | about a year ago | (#43217983)

I would agree that you have sold the code, not the expertise that wrote the code. I also think that there is a responsibility to document what you have done. As in any professional situation a person versed in the craft should be able to figure out what is going on.

What I would say is that contractor is exactly that. There appears to be other contracts, so I don't see what the problem is here. Be professional, answer questions, be forthcoming, show any spots where something tricky is going on, explain the business rules, and bill for the hours.

It may be that this gambit does not work out and they come back and say that still need a experienced professional. I think it would, however, be best if that decision were made because the situation was tricky and they needed an experienced professional, not just because the code is obtuse.

Easy answer... (0)

Anonymous Coward | about a year ago | (#43217501)

Put your training rate at +25% over your normal hourly rate.

Re:Easy answer... (0)

Anonymous Coward | about a year ago | (#43217677)

Also, depending on how new the new guy is, it may well be the case that teaching, coaching, reviewing takes longer than it would do to do the job yourself. Means twice as expensive for the company, and most of the money going to your pockets.

Perfect!

Be cooperative (4, Insightful)

kawabago (551139) | about a year ago | (#43217515)

They will probably need you back when the newbie crashes and burns.

Re:Be cooperative (1)

Anonymous Coward | about a year ago | (#43217621)

And if he doesn't crash and burn, they'll think all the better of you when he succeeds and they need more help on another project.

Then you can charge them more.

Re:Be cooperative but (0)

Anonymous Coward | about a year ago | (#43217631)

Don't forget to jack your rate up WHEN the N00B crashes and burns.

If he's genuinely good enough to cope, not an issue.

As a contractor (1)

i kan reed (749298) | about a year ago | (#43217527)

You are obligated to only fulfill the terms of your contract. Part of being a contractor is doing things however you want as long as you are not in violation of your terms.

Re:As a contractor (5, Insightful)

Anonymous Coward | about a year ago | (#43217715)

This can be categorized into 'how to kill the goose that lays the golden eggs'.

Developers get fired all the time - and yes the company, the manager, the new developer will all go through a period of fighting fires. But you will never be irreplaceable. At the end of the day, they dont wanna keep paying $100/hr for ever, they will hire a $80K developer for sure.

If you are good and try your best to at least give the new developer some idea of how to do things, they may call you back for other business. Otherwise, they will remember you for screwing them over. IT industry is a big world, but slowly reputation does travel.

So tell them how much time it will take in addition to what you have allocated for development, and then copy the development manager and send the developer the docs & source code and ask him to ask you questions anytime. Set aside some time for one-on-one meetings to help him understand the code if possible. Keeping the development manager in the loop about training is probably the most important part of this deal.

You train them (5, Insightful)

Anonymous Coward | about a year ago | (#43217541)

I am always in-favor of being a trusted agent. This way you might get a lead on the next contract as someone who can be trusted.

Re:You train them (1)

Anonymous Coward | about a year ago | (#43217835)

I am always in-favor of being a trusted agent. This way you might get a lead on the next contract as someone who can be trusted.

This. As someone who has on several occasions trained their replacement (once because the work was being offshored, a couple times because I was leaving on my own, and once because I was moving to different job duties within the company), it's always best to be the upstanding actor. Sometimes the replacement simply doesn't work out, but you don't want that pointing at you. Sometimes new opportunities open up in the meantime, and hey, since you're now free of this duty maybe you can have a look at it....?

The point is, don't let fear of change make you a dick. Do the right thing to the best of your ability. If you leave, leave with your reputation intact. You've had a good thing for a long time at this place, so don't burn that bridge just because you're afraid. If they have plans on letting you go regardless, cutting off future options isn't going to make your future job prospects any better. You'll lose a referral at the least, or even future business with the same company.

Re:You train them (0)

Anonymous Coward | about a year ago | (#43218035)

My sister trained an outsource to replace her, which she didn't want to do, but did anyway and did the best she could. She's back in the same place managing the outsourced account. She has worked with that same company multiple times and has never left on bad terms they just keep calling her back. She's a mechanical engineer.

Re:You train them (4, Insightful)

Trepidity (597) | about a year ago | (#43217851)

It might even get you more contracts at the same place, despite their intent to replace you. There are pretty good odds that at some point in the future, the person you trained is going to run into some problem where they'd love to get your input on it. Unless the system is quite simple and exceptionally well documented, that's almost inevitable. So there's a good chance the company will want to pay you a nice consulting rate for some hours in the future, regardless of what they think their plan is. And if the person you train was happy with your mentorship, they'll be a good internal advocate for steering those contracts your way.

Let the new developer lead the training. (5, Insightful)

Dareth (47614) | about a year ago | (#43217555)

If you actually are willing to take on the job, then I would suggest you let the new developer lead the training. See if the new person is self motivated and willing to learn. Guide the conversation where it needs to go, but make the new developer do the homework and show they got the prerequisites.

Re:Let the new developer lead the training. (1)

rtfa-troll (1340807) | about a year ago | (#43217721)

See if the new person is self motivated and willing to learn.

And; if this does turn out to be true; something completely rare; he's probably completely wasted on this company so either hire him yourself or recommend him to your friends. Wait, of course, until you have completely trained him so you get to spend maximum consulting time on it.

What's the problem? (1)

Anonymous Coward | about a year ago | (#43217557)

You are a contractor. Your employer is paying you to train your replacement. So train him well, depart on good terms, and have a good reference for your upcoming interviews. Or don't train him, and leave now. Your choice. Did I miss something?

Re:What's the problem? (-1)

Anonymous Coward | about a year ago | (#43217801)

The whole politics thing, maybe some pubes.

I love doing that, actually (5, Insightful)

rebill (87977) | about a year ago | (#43217559)

My primary goal as a contractor is to "put myself out of a job". It can be scary to let go of an existing income stream, but no job is a guarantee. If I walk out of a site with a happy customer, they have an incentive to hire me back ... and I get to work on something new (to me), rather than being stuck maintaining the same code for years.

There are risks, but if your replacement flames out, they can always come back to you, later.

Re:I love doing that, actually (5, Insightful)

Anonymous Coward | about a year ago | (#43217685)

+1

Another way to look at this: Your value to the client goes up a huge amount when you're no longer a liability.

I begin documenting my projects for the inevitable client take-over as soon as possible, and the hand-off process is great all around.

I am almost always kept around as a senior resource ( this is more fun ) or as someone to escalate to, but when I'm not, I consider it a job well done and move on.

Not being able to move on, update skills, etc is the kiss of death in tech consulting. Fear the golden handcuffs, not the young replacement.

Re:I love doing that, actually (1)

bryguy5 (512759) | about a year ago | (#43217859)

This is spot on. You don't really want to be stuck doing maintenance on this codebase the rest of your life do you?

Give it away happily, It is someone else's problem. If you do a good job you can hope for other more interesting work from that company or another. If you just try to hold onto the project and keep control you'll be stuck making your own work environment worse and worse.

Your a contractor do a good job, hand it over to someone else to maintain. Let them know that editing is always easier than creating and if there is any other project you want them to work with or if they need continued advice or direction let you know. You can get paid for making drawings on a whiteboard and not have to mess around with the actual coding..

Re:I love doing that, actually (0)

Anonymous Coward | about a year ago | (#43217705)

My primary goal as a contractor is to "put myself out of a job". It can be scary to let go of an existing income stream, but no job is a guarantee. If I walk out of a site with a happy customer, they have an incentive to hire me back ... and I get to work on something new (to me), rather than being stuck maintaining the same code for years.

There are risks, but if your replacement flames out, they can always come back to you, later.

^^^ This. You want your employer to feel that they did the right thing by hiring you. Over-communicate and make sure that they have everything they need to be successful.

You want to have them as a reference. If they feel, "yes, he did great work but when it came time to hand-off to another employee he made it difficult for us to work with him."

Re:I love doing that, actually (0)

Anonymous Coward | about a year ago | (#43217781)

My primary goal as a contractor is to "put myself out of a job". It can be scary to let go of an existing income stream, but no job is a guarantee. If I walk out of a site with a happy customer, they have an incentive to hire me back ... and I get to work on something new (to me), rather than being stuck maintaining the same code for years.

There are risks, but if your replacement flames out, they can always come back to you, later.

Oops. Clicked too soon. Continuing....

^^^ This. You want your employer to feel that they did the right thing by hiring you. Over-communicate and make sure that they have everything they need to be successful.

You want to have them as a reference. If they feel, "yes, he did great work but when it came time to hand-off to another employee he made it difficult for us to work with him." If they feel that way when you leave then you are damaging your reputation as a contractor.

Your value should be based on (a) what you can do and (b) your values as a consultant/contractor. If you try and make your value based on what you've done and knowing the "secret sauce recipe" then it will likely catch up with you and hurt you long term.

Re:I love doing that, actually (2)

pnutjam (523990) | about a year ago | (#43217709)

Everybody has been trained by someone older and more experienced. This is how a society moves forward. If we stick to what we know and hoard our knowledge we stop learning and our accomplishments die with us. Have some kids and train some young people. It's a rewarding experience to be a mentor.

Re:I love doing that, actually (1)

omnichad (1198475) | about a year ago | (#43217845)

I wish that were true. I have never been trained by someone older and more experienced. I have been that person (not older, but more experienced). But unless you count Googling specific problem cases, then no I haven't had that opportunity.

Re:I love doing that, actually (5, Insightful)

MillerHighLife21 (876240) | about a year ago | (#43217735)

Totally agree. I've always gone into projects with the goal of automating things (right down to outage buffering, failover, etc) to the point that they don't need me anymore. I take it as a point of pride and my work reflects it.

If you're taking any other approach, namely one that will force your client to remain attached to you I'd have to question your ethics, motive, and ability because what you're doing is creating a dependence on you that is borderline blackmail (if that's something you're doing).

So to the original question, help with a smile on your face, show him how the more complex pieces of the code work, document where possible and generally make sure that the tools are there for the project to continue to go on without you. They're either going to recommend you to other people because of how professionally you handled the transition and what a good job they did or they're going to be calling you back shortly when new guy isn't delivering at the rate you did. Drop off a copy of Mythical Man Month when you leave. Just leave it laying around the office somewhere. :-)

Re:I love doing that, actually (1)

sirchuckles (2870233) | about a year ago | (#43217759)

The people ( & company) you train will always view you as the expert, and return to you for help/advice/new project work.

Re:I love doing that, actually (1)

Synerg1y (2169962) | about a year ago | (#43217825)

so... have they ever hired you back? Yours is not my (or other contractors) understanding of how the industry works, but nice happy thoughts though.

Re:I love doing that, actually (1)

codebot (80901) | about a year ago | (#43217843)

Absolutely agree.

Part of contracting is handing over the completed work and being 'done.'
Be professional and work with the new person to answer questions they may have.

Maintenance is easier than development (or at least it should be) so using less-experienced people in that position can make sense.
Handing over the project leaves you free to move forward to ever newer and more interesting projects.

Part of the joy of contract work is learning and using new tools.

Also (2)

Sycraft-fu (314770) | about a year ago | (#43217925)

Usually if a company hires someone cheap n' incompetent to replace you because you cost too much, you'll find future work in fixing what they break. If you were a dick about it an the company feels you tried to screw them, they'll look for someone else. However if you did what you were asked and did it well, they may hire you back.

Remember as a contractor you are not an employee, but you are always a future contract hire if they like your work.

Re:I love doing that, actually (2)

yurtinus (1590157) | about a year ago | (#43217927)

This this this!!!

I'm sad this wasn't the first post. You need to look at it from the right perspective. If you do a great job on the software and a great job on the training, in the long run you've saved that company money as opposed to being a contractor who milks money out of them and leaves them unsatisfied. Most companies will remember that. They'll refer new business toward you, and you'll be first on their list when they need something new that they can't do in house. You've freed up your time to work on other clients *and* will likely see more occasional business from this client. The next call you get from this client will be because they *want* you, not because they *need* you.

So absolutely yes - train this new kid as best you can. Put yourself out of that job if you can. Unless you're a one-trick pony who only knows how to support some niche legacy product, it really can be a great opportunity for you and should be treated as such.

Re:I love doing that, actually (0)

Anonymous Coward | about a year ago | (#43217979)

What are the odds that if the new kid fails, he won't blame it on the contractor writing shitty code and management won't believe him if he does? Even for experienced pros, that's the go-to excuse, while some kid out of college who's only worked on projects with extremely limited scope and extremely limited edge cases like you get in academia is going to be much more likely not to know what real world code looks like.

The Dilbert Way (3, Funny)

Anonymous Coward | about a year ago | (#43217575)

Like this: http://dilbert.com/strips/comic/2004-02-07/

Re:The Dilbert Way (2)

hardburlyboogerman (161244) | about a year ago | (#43217687)

LOL! I've actually had this happen.Guess what.The replacement turned out to be so incompetent that the client lost his ass.Then he wanted me to come back and try to repair the damage the replacement had done.By then,I had moved on to another job that paid much better.Told him"you made your bed,sleep in it"

As Wil Wheaton says ... "don't be a dick". (4, Insightful)

Anonymous Coward | about a year ago | (#43217577)

Your reputation is worth more than your ego. Be kind, be polite, and helpful ... to a point. Make a 30/60/90 day 'grace period' to answer "hey, can you remind me..." questions. Do this via email so it's all documented - use the excuse of "this way, you have it for reference".

You don't need to bend over backwards for your 'replacement', but as a contractor, your reputation and network are paramount.

Re:As Wil Wheaton says ... "don't be a dick". (1)

hardburlyboogerman (161244) | about a year ago | (#43217769)

Yea,but when the client was a pure asshole about the replacement to begin with,I have NO sympathy.BTW he is long out of business now and serving 5-10 for attempted robbery.

Re:As Wil Wheaton says ... "don't be a dick". (1)

number11 (129686) | about a year ago | (#43218043)

Yea,but when the client was a pure asshole about the replacement to begin with,I have NO sympathy.BTW he is long out of business now and serving 5-10 for attempted robbery.

Who knew that robbery was so lucrative that robbers needed IT consultants for the back-office work?

I mean, unless he was a banker or something like that, but they don't get jail time, they get bonuses.

Play it smart, you have the expereince (0)

Anonymous Coward | about a year ago | (#43217581)

Size up your replacement and drag out the releasing of information, especially vital bits.

Put a pile of books in front of him and let him start with the basics to slow him down and wear his resistance, after all they just left college and their books, now to have to face more books again. LOL

This way they always have to turn to you, perhaps the kid will screw up and they will have to replace him.

Get to start the whole game all over again. LOL

Offer them a training contract (1)

Anonymous Coward | about a year ago | (#43217603)

Simple: if training their staff to do software development was not part of your scope of work under prior contracts, then offer to negotiate a new contract with them that does include that service. This being a dramatically different kind of work, you may want to charge different (higher) rates for that service than for doing the actual software development.

Is training in the contract? (2)

Red Herring (47817) | about a year ago | (#43217605)

First, is training included? If not, well, make it worth your while. Generally when I've done (much smaller) projects, I generally make sure that the contract I sign lays out that the payment is for the code, and specifically covered training regarding the operation/implementation of the project. Bringing a fresh person up to speed on the code that I provide is not part of the contract, but can be for the right amount of money.

Since I also work full-time at my "real" job, are you sure that this isn't just them wanting to bring the project in-house, more under their control? It might not be about the money, specifically, which means that this might open other opportunities with them on other projects, or even a full-time job with them (if you want it.) Looking at it from the point of view of my real job, there are times when I want ta project done by a contractor/temp, and there are times when I want it done/supported in house. It's usually more about the strategic vs. tactical value of the project than the pure "how much am I paying the guy" number. Make sure that you understand the motivation of the client, so you can better position your next move...

Give that college boy a IT / codeing skills test (0)

Anonymous Coward | about a year ago | (#43217617)

Give that college boy a IT / coding skills test the last thing you want is come guy who is all theory does not take you work mess up and you take the fall.

Give the kid as much as he can take (2)

sackofdonuts (2717491) | about a year ago | (#43217635)

He will absorb what he/she can and then with the new found skills find a better job someplace else. You will be called back at which point you can raise your rate. Everybody wins!

You're a contractor (0)

Anonymous Coward | about a year ago | (#43217637)

and you're getting paid to train a monkey. What's the problem?

It depends.. (1)

nanospook (521118) | about a year ago | (#43217639)

On your personal relationship with the client.. do you go out for beer together, understand their situation, get why they are doing this? Or do you feel like you have given your all, only to be tossed aside? You might cooperate fully, or cancel your contract and offer to start a training one at higher rates. Depends..

Write documentation (4, Insightful)

concealment (2447304) | about a year ago | (#43217661)

You're on a per-hour, right?

You're going to walk him through the code; answer questions; answer the phone; bill a minimum for each. This is just good consultant practice. After that, you're on a per-hour basis to fix what he can't. No problem there, because these are the conditions under which you formed the contract.

However, you might want to pitch the writing of some documentation so he has a roadmap to your code and a description of how each (major) function/routine works. That's more hours for you, and less helplessness for him; this is important because when you're on another contract, you really don't want to take a couple hours out to put out fires at a dead-end gig (for you).

Same Way You Should Do Everything Else For Them (3, Insightful)

SirLurksAlot (1169039) | about a year ago | (#43217673)

You do it well. You've obviously already determined that they're planning on cutting costs by getting an in-house developer to take over, and I'm assuming you know that means they're not planning on keeping you on that particular project forever. So rather than doing a half-assed job and leaving the newly-minted dev with the codebase, a handshake, and "good luck!" do them a favor and help them learn everything they should know to do a great job. You really have nothing to lose by training the new guy well; you've got other clients lined up, if you do a good job this client may have you come back in the future (when the economy has more fully recovered) and do more work for them, and you'll have built another relationship with a developer who remember that you took the time to help them out.

A few thoughts (4, Insightful)

onyxruby (118189) | about a year ago | (#43217703)

If you can't be replaced you can't be promoted. If you can't be replaced you can't move on to something better without hurting your client. If your hurt your client by your leaving you will be remembered in a bad way.

be cool ... be smart (1)

Anonymous Coward | about a year ago | (#43217729)

Done this a few times ... become the new guys best friend - be as helpful as you can and make sure he and your bosses know the effort you are putting in.

After you leave, keep is friendly contact with both .. when the new guys need some help (or the client needs another project) then the job is yours.

Final tip .. if you can keep access to the workplace. Lots of smaller companies can be fairly relaxed about this if your still talking to the bosses ...

Teach Him (3, Informative)

Harlequin80 (1671040) | about a year ago | (#43217749)

I know this will be screamed down by the psychotic anti-corporates on this site, but teach him.

No CS grad can compete with an experienced developer in the short term. You teach them and they will see how far short they are of being able to replace you. Take it like they had given you anyone else to train without the implied potential replacement side.

I don't get this argument on this site in particular. We scream for open source, free information, anti-copyright but the second we are asked to pass on any information of our own the response is the equivalent of closing the source, giving no documentation, and threatening lawsuits.

Re:Teach Him (0)

Anonymous Coward | about a year ago | (#43217879)

We scream for open source, free information, anti-copyright but the second we are asked to pass on any information of our own the response is the equivalent of closing the source, giving no documentation, and threatening lawsuits.

If it weren't for the double standards, there wouldn't be any around here.

Contracts are mostly a short term proposition (1)

roman_mir (125474) | about a year ago | (#43217755)

Did my share of contracts, some lasting over 3 years and some only going for a couple of weeks and many things in between.

That's the point of being a contractor - nothing is permanent, you get a different treatment and you get paid as much as you can manage given the market, and no bullshit, like pensions and benefits and all that nonsense. You get to deal with your own taxes without anybody withholding your money from you, that's the beauty of it.

Great! (1)

Teun (17872) | about a year ago | (#43217779)

Exactly what I am doing!

I have evolved into a full-time trainer, travel all over the place to collect airmiles for my next holiday.
Of course I'm hired to (help) teach smart cookies to become The Best in field, they are not competition, they are going to pay my ticket.

Because our management is not stoopid I'm also required to pick up the phone at unholy hours to support the new guys.

*shrug* (1)

painandgreed (692585) | about a year ago | (#43217791)

Billable hours are billable hours. You could always charge a different rate for training as opposed to coding. However, billable hours after they replace you are at tripple the normal rate.

Re:*shrug* (1)

Bomarc (306716) | about a year ago | (#43217931)

I had a company call me after (trained) and let go, asking for help. When I said to RTFM, the response was "You are not a team player".

Well duh, I was kicked off the team!

Well, first of all... (1)

Afty0r (263037) | about a year ago | (#43217795)

... you should inform them that day rates for training are 2-3 times day rates for remote development, and start from there...

Re:Well, first of all... (1)

Bomarc (306716) | about a year ago | (#43217937)

No, don't tell them BEFORE he leaves. Save this info for when they need to call him back.

Shoulders (0)

Anonymous Coward | about a year ago | (#43217797)

We all rely on those who came before us. As Einstein said: “If I have seen further than others, it is by standing upon the shoulders of giants.”
If you indeed have other clients, money is not a factor so I suggest you have a moral obligation to pass on your hard won knowledge and insights to a younger generation.

Disgraceful (0)

Anonymous Coward | about a year ago | (#43217803)

How are the next generation of programmers supposed to learn anything if all the older generation do is ensure job security?

Those of you unwilling to impart your knowledge, wisdom and love for programming upon the coming generation; you should be ashamed of yourselves.

Look for another job (0)

Anonymous Coward | about a year ago | (#43217807)

Look for another job. You don't want to leave them in a lurch to the point where it generates ill-will, because your reputation is at stake; they're sending a signal that they want to get rid of you. Do your best to make it an amicable split; but by all means make it a split.

Don't hold onto the beans.. (0)

Anonymous Coward | about a year ago | (#43217823)

I've been in the industry more than 17 years. I am annoyed when people try to make them selves important or indispensable by "holding onto the beans".

Contractors are whores... I do not mean this as a slight - as I prostitute my knowledge and tech experience as well (contractor). Your being paid, provide good service.

I'm with Rebill. Try to put yourself out of a job. Do fantastic work. Our industry changes fast. Our world is shrinking all the time. Word will spread and your reputation will set you up for better paying, more challenging gigs.

Personal Experience (0)

Anonymous Coward | about a year ago | (#43217863)

From personal experience in the same situation, I say give the newbie as much information and help as he can handle.

  Do as much as you can to bring him up to speed as soon as possible.

  In every case except one, I've found this brings more work, not less. Often, the newbie catches fire and flames out in a few months. He can't usually handle all of the problems that come up, and often will quit within a few months because the problem is harder than he thought.

  If he is one of the good ones that will eventually be a consultant, you've made a friend. If not, the people that hire you know have a positive feeling about you and will hire you back later when times get better. Or be forced to keep you when someone unexpectedly bails.

However, all generalizations are wrong, including this one, an this could be the one that goes south on you for no reason of yours. One went south on me. Within 3 months they were bankrupt. Another went south. Within six months they were out of business.

Keep looking forward (0)

Anonymous Coward | about a year ago | (#43217867)

The last project I worked on at my old job was an especially tricky piece of code, I was eventually the only maintainer, and responsible for having written at least 60% of it myself.

There was ~sort of~ a hand over when I announced I was leaving the company. The replacement was inexperienced and had no clue about the frameworks used, and I could tell it'd be problematic at best. My best 'fix' to the problem was having management go through the trouble of maintaining my user ID, login, secure access, and set up a 'when we need help' line - a contract with a few quick fill in the blank sections - in case they needed me to come back and do some work at a premium, which they assured me they wouldn't.

It did take 3 months, but then I got that call. They had a few problems - not that the devs assigned couldn't figure it out, but ... uh... they had to be put on higher priority items, yeah, that's it - so if I could nail those out ... etc.

So, stay friendly, train your replacement as well as you can, and make sure they have your card and know they can call on you. They might not every time, but when they do, they already have accepted that premium rate for disruptive requests. I've never had anything bad come from maintaining a good professional relationship with my previous employers, be it contract work or other.

The time to do so (0)

Anonymous Coward | about a year ago | (#43217883)

From my experience it takes a few years to teach someone the depth of knowledge that you are expected to pass on. Since this is not likely to happen, be prepared to be asked back for more in depth training after you and the paying contractee mutually agree that the newbie is ready to take on the world.

Ethics of Progress (1)

ZombieBraintrust (1685608) | about a year ago | (#43217891)

As programmers it is our ethical duty to destroy our own job. We reuse open source code because it take less hours to reuse code than to reinvent it. We test our code, so there is less bugs, so we bill less hours to the client. We write good documentation so other people can understand our code when we leave. We use standards and design metaphors for the same reason. Training other people is the same concept. We do a good job so we can move on to other things. Things that are more interesting and worth our large paychecks.

How to have a safe job (1)

millst (635068) | about a year ago | (#43217905)

I wise programmer once told me... The person with the safest job in the world is the person who is always looking to do themselves out of a job. In other words... When you put the clients best interests at heart you are far more valuable to them than someone who holds onto things, hides things and makes it generally difficult because you want to protect your job. Perhaps they wouldn't be looking to replace you if you had actually gone to them with a proposal to hire a graduate to replace you. Companies tend to hold onto people that do that sort of thing and get rid of the ones that are in job protection mode. I have found this out several times now and am reaping the rewards because companies really value what you bring to them and offer to pay you significantly more. Now, every day I come to work the first thing I think of is, how can I do myself out of a job. How can we automate, make more efficient or reduce the costs of the activities I'm doing. Sometimes you get a look of shock when you submit a proposal that effectively eliminates your job. However, without fail I have been re-deployed to other, higher paying roles to do exactly the same thing over and over again.

Open Kimono (0)

Anonymous Coward | about a year ago | (#43217907)

I've always worked by the philosophy of "Open Kimono". Open books, no secrets from the customer, and open source. They hired you for "CONSULTING". A consultant provides professional and expert advice. As a consultant, you should have deeper level of expertise than would be feasible for them to retain in-house and that is why they hired you. If you are still working for them for 3+ years then they realize that they have retained a very expensive employee and they could be liable in some situations if they treated you as such. It would be professional of you to train your cohort to the best of your ability. Don't screw people over, that would be immoral. Do the right thing and plant a seed for the company to succeed based on the professional services you provided.

Play the game (1)

RedLeg (22564) | about a year ago | (#43217929)

First, if it's not already explicitly in scope for your existing contract, negotiate a "train my replacement" clause or task, at a premium over what you're already billing. Be frank with your customer that you both need to realize that they are asking you to train your replacement. You might be surprised to hear them say "no, we just want additional staff". If that's the case, negotiate for a long term contract of your own as a condition of training.

Then, mentor the young pup. Treat him like your son or daughter. Teach him everything. You can't teach experience though, so you're ahead no matter what. During this time, evaluate the person's capabilities, including the capability to listen and learn. Think of this as having an intern on somebody else's dollar.

If it all goes south and you lose your customer, you might be able to pull him with you (assuming he's worthy).

THEN you're in a nice bargaining position.

Red

Been there, done that (5, Interesting)

sideslash (1865434) | about a year ago | (#43217943)

As a contractor I've been through this more than once, and actually had very good experiences training / mentoring customer employees to "take over" the programming of my projects. In one case I met weekly with a guy over many months, and took him from hand-holding up to completing major releases. I don't see it as a threat, because if you're already sharing the source code (which I always do), then you're explicitly offering that the customer can take over the job in the future. So -- assuming that mentoring is a service you want to offer -- do the best job you can, and have fun. And it is a tremendous amount of fun to teach when you are good at what you do, have some communication skills, and also have a beginner student with decent aptitude along with a serious attitude toward learning. I had all of those. /toot-own-horn

Good luck, hope it goes well for you!

Do your best to help (0)

Anonymous Coward | about a year ago | (#43217959)

Do your best to help the client achieve their goals, even if it puts you out in the cold. I've found that by doing so, * enthusiastically*, I've secured far bigger contracts with the same clients after they saw (on their own) the error of their ways.

Lets look at the possible long term outcomes (0)

Anonymous Coward | about a year ago | (#43217963)

The way I see it there are really two possible scenarios here. You've already decided that they want to replace you with a cheaper option so you are assuming your days on the contract are numbered.

Scenario 1- You resist being replaced. Doesn't really matter how you resist but ultimately the goal would be to make it take longer for the new programer to take over. Net result will be that you get a little more billable time now a the cost of damaging your reputation there. That means they likely won't rehire you later when they want or need someone to come in again and they aren't going to help you get any more business.

Scenario 2- You facilitate being replaced. Again, it doesn't really matter how. You do get replaced for this project at this time but you maintain and possibly even improve your relationship. Down the road this can lead to more jobs there, referrals for other jobs and just generally more opportunities in the future. You never know where that new programmer or a manager you worked with there could end up.

Unless you really need the work and money now Scenario two just seems like a much better option. The hardest part of contracting for most people is not doing their current "job" but making sure they have another one lined up. A good relationship is worth a lot more long term than a couple more months(if even that) of work right now.

negotiate support (0)

Anonymous Coward | about a year ago | (#43217975)

If you do leave, be sure to negotiate a) your rates for training someone else and b) your support rates in case they need your advice/skills some time in the future. Most clients are not mature in this regard and might expect you to support your product forever and for free; you will need to educate them on how this works. It is a lot better to negotiate support in advance than when you are needed. It will feel awkward right now, but in the end, it leaves everybody happier. Most consultancy firms will do the same by the way: negotiate a price for the signed-off product and subsequently agree a price for future support.

Make sure that the client has signed off on your work ("Yes, we're happy with it"), as that will prevent future problems.

In summary: Take care of your own interest and don't be a dick to the client.

Let's face it. (2)

nickserv (1974794) | about a year ago | (#43217977)

We're people and we suck. The only thing that matters is what this employer can do for you when you finish working there.

Are they going to be an asset for networking or as a reference? Are they going to get you more work by recommending you? Are they going to be bringing you back for more work?

Your answers to these questions will dictate how much time you should spend supporting the new hire.

It's just business.

They hired you as a developer (3, Insightful)

Arancaytar (966377) | about a year ago | (#43217991)

If they want you to train employees instead of just code, you should insist on a new contract and negotiate a much higher rate.

Charge, but be helpful (0)

Anonymous Coward | about a year ago | (#43217995)

If you are paid by the hour, I would be as helpful as possible, but charge for every hour.

As others have said, I wouldn't try to teach him general coding skills. You won't be able to anyway, not unless they are keeping you around for a long long time.

But I would go the extra mile and try to give them better service than they are minimally entitled to. Don't just give minimally answers, try to make sure he understands what he is doing, rather than just repeating it.

He either can do the work or not as well as you can or he can't.

If he can, he will want more than the minimal pay they are offering. If he can't, they will call you back for the 'special cases' - which chances are will be a better use of your time than dealing with the easy stuff all the time.

Oh, and when they DO call you back - raise your prices. Your contract with them has ended, you are entitled to up your price - especially as you should be dealing with higher level work.

Load More Comments
Slashdot Account

Need an Account?

Forgot your password?

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>
Sign up for Slashdot Newsletters
Create a Slashdot Account

Loading...