Slashdot Mirror


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

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?"

189 of 292 comments (clear)

  1. You're a contractor. Your "secrets" are yours by Anonymous Coward · · Score: 5, Insightful

    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?").

    1. Re:You're a contractor. Your "secrets" are yours by geekboybt · · Score: 4, Insightful

      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.

    2. Re:You're a contractor. Your "secrets" are yours by CanHasDIY · · Score: 1

      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!

      --
      An enigma, wrapped in a riddle, shrouded in bacon and cheese
    3. Re:You're a contractor. Your "secrets" are yours by assertation · · Score: 4, Insightful

      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.

    4. Re:You're a contractor. Your "secrets" are yours by the_B0fh · · Score: 4, Insightful

      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.

    5. Re:You're a contractor. Your "secrets" are yours by Anonymous Coward · · Score: 1

      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."

    6. Re:You're a contractor. Your "secrets" are yours by Anonymous Coward · · Score: 1

      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?

    7. Re:You're a contractor. Your "secrets" are yours by bobstreo · · Score: 1

      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

    8. Re:You're a contractor. Your "secrets" are yours by Synerg1y · · Score: 2

      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.

    9. Re:You're a contractor. Your "secrets" are yours by SpaceMonkies · · Score: 2, Insightful

      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.

    10. Re:You're a contractor. Your "secrets" are yours by eth1 · · Score: 3, Insightful

      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.

    11. Re:You're a contractor. Your "secrets" are yours by fermion · · Score: 2
      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.

      --
      "She's a scientist and a lesbian. She's not going to let it slide." Orphan Black
    12. Re:You're a contractor. Your "secrets" are yours by VAXcat · · Score: 4, Insightful

      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.

      --
      There is no God, and Dirac is his prophet.
    13. Re:You're a contractor. Your "secrets" are yours by Fluffeh · · Score: 5, Insightful

      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.

      --
      Moved to http://soylentnews.org/. You are invited to join us too!
    14. Re:You're a contractor. Your "secrets" are yours by the_B0fh · · Score: 1

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

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

    15. Re:You're a contractor. Your "secrets" are yours by VAElynx · · Score: 1

      Uhh, this would be great if he was working for a salary.
      He's a contractor, he's getting paid the same even if he teaches a guy instead of coding.

    16. Re:You're a contractor. Your "secrets" are yours by Geoffrey.landis · · Score: 3

      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.

      I would say exactly the opposite. I assume they are in fact paying you to train him, but assuming that they are, and that the person you've been assigned to train is intelligent and teachable-- then, do your best.

      First, training the next generation is, or ought to be, part of everybody's job; it's to everybody's advantage that the next generation be capable and competent. (They'll be maintaining the infrastructure when we're in nursing homes shaking our canes at the doctors.)

      Second, teaching people, assuming that they're intelligent and want to learn, is fun.

      And, third, you're training someone who will go on in the industry-- he won't be at your customer's place forever, you can count on it-- and if you train him to be competent and useful, he will move onward and upward and at every spot he goes, he's going to be crediting you as a really great programmer. And, the better he is, the better he makes you look./ He's not taking business away from you-- he's generating business for you.

      --
      http://www.geoffreylandis.com
    17. Re:You're a contractor. Your "secrets" are yours by MightyYar · · Score: 1

      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.

      If you consider yourself to be a professional, you will always do work that you take pride in. As you get older, it's amazing how small the world becomes - your reputation needs to precede you. At worst, you leave this job with everyone happy with you. At best, you have a new code monkey that sees you as a guru and future consultant and a former client who would happily recommend your work. There is nothing better for your word-of-mouth than having a brilliant protege.

      --
      W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
    18. Re:You're a contractor. Your "secrets" are yours by K.+S.+Kyosuke · · Score: 2

      That doesn't necessarily equate to blackmailing anyone. For example, imagine that person X is a great developer, output-wise, but bad with people ("weird guy"). It may very well be that X doesn't consider himself a good teacher. Now, you might argue that the best of developers should be good a communicating their knowledge and skills, but Bill Joy's "That was simple, I read the specification and wrote the implementation" comes to mind.

      --
      Ezekiel 23:20
    19. Re:You're a contractor. Your "secrets" are yours by Will.Woodhull · · Score: 4, Insightful

      As a contractor you bring your knowledge and experience, and the skills you have derived from that knowledge and the wisdom you have derived from that experience, to your client.

      You can only teach your client's employee some of the knowledge that you have acquired. You cannot teach him your skills, in the same way you cannot teach someone new to bicycling how not fall over. He can only acquire skills through his own experience. Similarly, you cannot teach your wisdom; like skills, that is not transferable between human beings.

      You and your client need to be clear about the limitations involved in this situation. Probably you need to be talking about a different kind of contract with the client, where the employee will be doing some of the heavy lifting that you now do while he begins to gain experience, but you will continue to provide the experience and wisdom that avoids costly mistakes. This would be similar to a traditional master - apprentice approach, but with a third party (the employer) paying the apprentice.

      --
      Will
    20. Re:You're a contractor. Your "secrets" are yours by drolli · · Score: 1

      My thoughts: Besides i dont know if the contrector also does education: Do they know in how many billable hours teaching "all secrects of your code" may result? If yes: CYA, get it in writing that you are paid for "teaching all secrets of the code" instead of "automating and stnadardizing your build/packaging/deployment processes". After the new guy tries to graps "all secrets of your code" and fails to get the first proper build, bill them for the rest.

    21. Re:You're a contractor. Your "secrets" are yours by Dahamma · · Score: 1

      Schadenfreude is more of a passive thing. I think that's more along the lines of good old sadism.

    22. Re:You're a contractor. Your "secrets" are yours by gandhi_2 · · Score: 1

      That's like saying a teacher not wanting to be a programmer without a new contract is like blackmale.

    23. Re:You're a contractor. Your "secrets" are yours by sgt+scrub · · Score: 5, Insightful

      I disagree. If they are entering into an agreement that includes training he is indeed needing to "train him in comp sci". The article doesn't mention that there was a written agreement; but, if the customer is verbally specifying the desire for training there is an oral agreement. They both should take the time to write down specifically what needs to be done. It has been my experience both are going to end up very unhappy if they do not.

      --
      Having to work for a living is the root of all evil.
    24. Re:You're a contractor. Your "secrets" are yours by DogFacedJo · · Score: 1

      I'd go much further than just giving the kid the code, docs and offering to answer questions. First off, the firm is not crazy at all to want multiple people, at least one in-house, who know the system; If and when you move on, even a junior dev with familiarity is better than a fresh contractor, the source, and the stack of docs quickly printed.

          I'd take this as an opportunity to keep the system alive after I go off to other things - I'd do what the firm and new bloke are hoping, and try to explain: The design decisions, the calls which paid off, the decisions which might need to be revisited later, and the parts where we are stuck with the decision, as it is not likely going to be worth changing, but the irritation will still be there whenever the area needs a poke.

          I'd try to spend a fair number of hours per day pairing with the bloke - having him type in the simple stuff, whether a bugfix, or some grindy code. Depending on the actual current work - different amounts of time will need to be set aside to design, mull, research, debug, etc... alone. Progressively more interesting changes can be handed off as familiarity grows.
          The win would be the opportunity to spend a lot of time working closely with someone on a system I know and like. I love being able to pass on design decisions verbally when coding with someone, being able to express actual doubt about stuff which grew hair, to answer questions on fine grained issues that couldn't be in the external docs, and didn't fit into a place in the source and detailed design docs. To complain about daft requirements that came late and made a mess of things... all with the code in front of us.

          Afterwards - I am free to move on without shafting the client, but I have two sweet connections : the dev who I now know how to work with, and the firm for whom I am still someone who knows the system, and that can work either independently or with their current dev.

      Both were valuable for me in the past.
         

    25. Re:You're a contractor. Your "secrets" are yours by sjames · · Score: 4, Funny

      If the pay is by the hour, be SURE to train him in comp sci. At least fill in any gaps in his education, in great detail.

    26. Re:You're a contractor. Your "secrets" are yours by bdwebb · · Score: 5, Informative

      This is an extremely rational viewpoint to take. I work for an MSP in our projects division implementing complex network environments and a ton of virtualization for our customers and we frequently take our projects to a managed level as the OP appears to have done as well. We have found that after a customer environment has stabilized, these customers tend to be growing in size and scope over the term of our initial managed service agreement and eventually want to take most of the management in-house as a result. Ultimately while they may be extremely satisfied they perceive a threshold at which the recurring managed services costs get close to one or two lower level technicians that they can hire to maintain and grow with the company at an equal or lower cost.

      Ultimately, we are contractors and we are not obligated to train their employees but we do so willingly because not only are we being paid for the time we invest into their engineers but we actually end up being able to free up resource time when done for newer projects and we do not require a staff of hundreds to turn projects AND support every one of our recurring customers. Of course the training is out of scoope of our managed services agreement and therefore we are paid time & engineering to support and train their new staff members but when done we have about a 99% success rate of then selling block-time agreements for supporting those customers and about 75% of the time, once the block of time has run out, a new block of time is sold thus continuing a managed services style engagement but with less hands-on involvement in the day to day 'my printer is not working' style simple issues that the staff techs can then handle.

      Ultimately the new technicians are either going to be motivated knowledge sponges or, more commonly, will stagnate and reach a comfortable knowledge level within their own environment and continue to rely on our company to provide troubleshooting & support for critical issues beyond the scope of their abilities. In either scenario, I see the following benefits to our company:

      Motiviated Knowledge Sponge
      - Is able to quickly adapt to environments and continues to expand upon knowledge level
      - Has been brought into an environment where his primary resource for knowledge of his daily operating environment was our company and therefore he knows he can rely on us for critical scenarios he cannot resolve or for new project deployments
      - Continues to be a close contact or resource as his career progresses, likely with other companies which garners more project work for our company
      - May see the benefit of potentially becoming an employee of a company such as ours and pursue a career with us and essentially the training cost of this employee has been subsidized by a separate entity at that point. This one can be iffy because some clients don't like having their employees hired away but most times the technician has progressed to the point that he is already pursuing higher pay than his current company is willing to shell out. We can return to a managed style services agreement, gain an knowledgeable and motivated technician, and he is still associated with their company by proxy and therefore the innate knowledge he has of the now more complex customer environment allows him to interface with them more easily and resolve trouble tickets rapidly while still being used as a technical resource for other contracts or projects.

      Stagnant, Satisfied Technician
      - Has been brought into an environment where his primary resource for knowledge of his daily operating environment was our company and therefore he knows he can rely on us for critical scenarios he cannot resolve or for new project deployments
      - Continues to be a close contact or resource as his career progresses, likely with the same company which garners more project work for our company
      - Typically does not have time (or in some cases, the desire) to escalate his knowledge level to critical troubles

    27. Re:You're a contractor. Your "secrets" are yours by bdwebb · · Score: 2

      Or if the company is not amenable to the retainer idea, sell them a block of hours so you have a guaranteed dollar amount of revenue at your desired billable rate for them to use if they need or not. Ultimately I think you'll find that about 75% of the time companies will continue to purchase blocks of hours from you for critical support because they will see the value in having a backup resource to supplement their newer technician's knowledge. Also, there is perceived flexibility of using you only when needed as well as the idea that 'well we've already paid him for these hours, might as well use him' which turns out to happen more frequently than anyone thinks will happen.

      Once you get under 5 hours of support time left in that agreement all it takes is one critical issue to take you over the zero threshold and if you build into the agreement an emergency service rate for out-of-agreement hours required you'll find that the first time that happens the company understands the need for your services MUCH more implicitly and you will continue to have signed agreements for blocks of hours well before your current block of hours is fully utilized just to ensure that you are continually available to support their environment.

      It is a win-win-win - you train the technician and become his go-to resource for future work/projects/critical support, the company knows they can still rely on you for critical issues, and you begin work on a new project or with a new company while still supporting your previous employer/client on a semi-regular basis.

    28. Re:You're a contractor. Your "secrets" are yours by Registered+Coward+v2 · · Score: 2

      If you consider yourself to be a professional, you will always do work that you take pride in. As you get older, it's amazing how small the world becomes - your reputation needs to precede you. At worst, you leave this job with everyone happy with you. At best, you have a new code monkey that sees you as a guru and future consultant and a former client who would happily recommend your work. There is nothing better for your word-of-mouth than having a brilliant protege.

      Not to mention someone may move to a new company or position where they need your skills and remember you as "the guy who helped us out and left us in a great position even when he knew he was training his replacement;" or have a friend who says "I need..." and recommend you. It's part of being a professional, as you correctly point out.

      --
      I'm a consultant - I convert gibberish into cash-flow.
    29. Re:You're a contractor. Your "secrets" are yours by Lumpy · · Score: 1

      Start him out with Logo and Pascal...

      --
      Do not look at laser with remaining good eye.
    30. Re:You're a contractor. Your "secrets" are yours by Glendale2x · · Score: 1

      I'd say "what's to teach?" They have the source code, and presuming it's documented or well commented, well then that's that. There aren't any secrets. Whether or not the replacement is up to the task at hand is a totally different issue and I'd say is not the poster's problem in the least. If the new kid is worth anything and can actually program then he can easily learn all the "secrets" by reading the code and learning from it. Help familiarize him with the unique points of the particular project? Sure. Teach him how to program? Nope.

      --
      this is my sig
    31. Re:You're a contractor. Your "secrets" are yours by ancientt · · Score: 2

      Oh, I like this suggestion. Experience and knowledge isn't a matter of secrets, it is a product of time, effort and study. If you're to train a replacement to handle your work with your competency then by all means attempt to spend the time on the education and experience it takes to match your own. It's practically a job for life. (Even if you train to today's competency, you won't catch up to the level you'll have after doing that training.)

      Unless your secret is that you're overpaid or an idiot. If that's the case and you want to continue to get paid for it, then lay traps, misdirect and discourage. If you can get him to quit in disgust after damaging various things and costing the company loads of money only to swoop in for the rescue yourself, then you're set.

      If you're unfamilar with either, you should read The story of Mel and The story of Terry Childs.

      --
      B) Eliminate all the stupid users. This is frowned upon by society.
    32. Re:You're a contractor. Your "secrets" are yours by j_kenpo · · Score: 1

      I have to agree with this. I was a consultant for several years. I've had to go over this same exercise numerous times. Be professional, use standard terminology, and make sure your code is documented and commented. If the new guy doesn't understand basic things like design patterns or standard algorithms it isn't your job to teach them, but point them in the right direction to learn. Point them to a good program logic and design, OO, book on the platform (Spring, Struts, .Net MVC or whatever), or design patterns book. When they realize that is what it will take to understand the platform, they will usually take it on themselves to learn. 9 times out of 10, the company will pick you up again in the future. You will be surprised that despite the snarky comments about the young guys failing and the company having to bring you back, the new guy will probably still be on board, they will work beside you in future engagements, and if you do the above you will be pleasantly surprised to find out that the "new guys" were your biggest cheer leaders for re-engagements. Don't let an inflated ego and hurt feelings get in the way of providing exceptional customer service.

    33. Re:You're a contractor. Your "secrets" are yours by hedwards · · Score: 1

      If he's a contractor and it isn't already in a contract, then he shouldn't be doing it and doing it would likely be illegal. You cannot work for profit entities for free in any state I'm aware of.

      So, it's a good bet that he will be paid. I'd say that if the person asking this question has already turned over the code, and thinks that the cost savings for the company are going to be insufficient to replace him, to just go along with it. Take whatever money the company is offering knowing that the good will is likely to pay returns if he needs to ask for more money in the future. If he can point out that it wasn't cost effective for them to do it in house, he'd be more likely to get the money he asks for.

      But, without knowing specifics it's really hard to say how wise of a move this is going to be or how much the good will would be worth it. Ultimately if they're dead set on replacing him with in house talent, he might as well take the money and look for more work elsewhere.

    34. Re:You're a contractor. Your "secrets" are yours by Sangbin · · Score: 1

      When it comes down to it, if your area of expertise requires keeping your knowledge secret then you're fucked. In the end, someone younger and hungrier will always be able to meet or surpass the knowledge level you have unless you keep moving forward and your old 'secrets' will be common industry knowledge.

      Just wanted to let you know that I have this paragraph printed and posted on my cube. Too few people realize that monopoly on knowledge, if such thing is even possible, is very short-lived. It's a great motivation to know that there are others who are marching forward equally as diligently as I. Cheers to that!

    35. Re:You're a contractor. Your "secrets" are yours by Mr+Z · · Score: 2

      There are a lot of good points in this thread. It's worth noting that there's no direct replacement for experience. You bring N years of experience to the job, and the only thing that can bring you N years of experience is N years of doing the job. While you can teach some the broad lessons (and, I would say, teach them specifically in the context of this app; you're not a professor and you're not teaching a class), there's no replacement for experience.

      When I was fresh out of college, I could write programs that did very interesting and useful things. Now it's *mumblety* years later, and I know for a fact I would write my programs far differently now, with generally much better outcomes in maintainability, scalability and flexibility. Much of that was learned through trial and error—ie. experience. That only comes with time and practice.

    36. Re:You're a contractor. Your "secrets" are yours by wvmarle · · Score: 1

      This.

      Plus the, presumably, excellent reference this employer can be for other jobs (or even a direct source of other jobs - either in that company, or elsewhere in the business).

    37. Re:You're a contractor. Your "secrets" are yours by YttriumOxide · · Score: 1

      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.

      Funny you say that, since in all my years of coding so far, my default assumption is, "damn, everyone else is so much better than me - the reason I can't wrap my head around why they did it this particular way in this code is because they're better than me"... at which point I dive in, spend a lot of time trying to get a feel for what they did, and in 60% of cases DO learn something interesting and new to me that justifies why they did what they did (in the other 40% it seems they really were just crappy coders; or working under a deadline turning proof-of-concept code in to very messy production code; or whatever).

      Part of it might be that I'm a self taught coder. Never formally studied; just lots of books, online examples/tutorials, and now somewhere around 25 years of experience/practice (10 years of it being my "day job" as opposed to just a hobby). I know there's a lot of theory that I don't get as well as someone who has just been in university studying it - but I also know that a great deal, if not most of it is stuff I can or already do understand, just don't know a lot of the terminology or formalised concepts.

      (note: 60/40 figures are gut feeling figures only - I haven't actually recorded each instance to determine the real ratio)

      --
      My book about LSD and Self-Discovery
      Also on facebook as: DroppingAcidDaleBewan
    38. Re:You're a contractor. Your "secrets" are yours by unixisc · · Score: 1

      Not just that, it's not your job to teach him how to code. He knows what he knows, so you can just outline what your approach has been, and tell him to use his experience in enhancing it for future requirements.

    39. Re:You're a contractor. Your "secrets" are yours by ElizabethGreene · · Score: 1

      Fantastic reply. Mod up to 11.

    40. Re:You're a contractor. Your "secrets" are yours by lsatenstein · · Score: 1

      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?").

      ===
      Your system knowledge, coding secrets and development knowledge are your skills to keep for yourself. Do not give anything away. Do not put your value as a skilled developer aside because you like the college grad, (which happens often).

      Here is the analogy. You have a pizza business, and your customer comes along and asks you to train a person who will learn your business in order to open up a competing pizza business. That business that opens will undercut you. That training will impact your livelihood. So, you know you have to say no, and leave on good terms.

      --
      Leslie Satenstein Montreal Quebec Canada
    41. Re:You're a contractor. Your "secrets" are yours by Cederic · · Score: 1

      If you can't work for profit entities for free, half the open source movement would be in prison. Schools would have no trips. Millions of people word be in prison.

      OK, this is the US. Scratch that last one.

      But seriously, no unpaid work? No volunteering? No helping out? I don't believe you.

    42. Re:You're a contractor. Your "secrets" are yours by CanHasDIY · · Score: 1

      Oh, go find a sense of humor, Phillistine.

      Preferably a decent one.

      --
      An enigma, wrapped in a riddle, shrouded in bacon and cheese
    43. Re:You're a contractor. Your "secrets" are yours by CanHasDIY · · Score: 1

      Schadenfreude is more of a passive thing. I think that's more along the lines of good old sadism.

      Oh, yea, guess you're right; I tend to confuse the two when there aren't any whips or leather gimp suits involved...

      --
      An enigma, wrapped in a riddle, shrouded in bacon and cheese
    44. Re:You're a contractor. Your "secrets" are yours by Hognoxious · · Score: 1

      I disagree. If they are entering into an agreement that includes training he is indeed needing to "train him in comp sci".

      Rot. If I hire a chef I may need to show him the specifics of our menu, but I'm not running a C&G or HND in catering. Training someone on the specifics of a custom in-house app is most definitely not not comp sci.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  2. Be cooperative by kawabago · · Score: 4, Insightful

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

    1. Re:Be cooperative by Sparticus789 · · Score: 2

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

      FTFY

      --
      sudo make me a sandwich
    2. Re:Be cooperative by Anonymous Coward · · Score: 1

      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.

  3. As a contractor by i+kan+reed · · Score: 1

    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.

    1. Re:As a contractor by Anonymous Coward · · Score: 5, Insightful

      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.

    2. Re:As a contractor by iiii · · Score: 2

      Parent post is well stated.

      There really is no benefit to becoming adversarial or doing anything to undermine the future success of the project. And there are many possible down sides, including your rep within that company and your broader rep.

      Continue to provide them the best value you can. It sounds like right now that value might be to advise them on the level of complexity of their codebase and the level of talent and experience needed to maintain and continue development on it. Even if that doesn't change their minds, you are on record with your attempts to help them steer a better course. And then, whatever their decision, do the best you can to transition knowledge and prepare the new guy for success.

      If you leave with them knowing that you did everything you could to help them make good decisions, and you did everything you could to help them be successful given the decisions that they made, they'll be much more likely to call you for the next project. Or maybe the CTO will call you when he finds a challenging project at his next company. If you help people out, even when there is no angle for you, and create a history of doing this, you'll find that people want to work with you and there are more opportunities coming your way.

      If you burn these guys, and do it again somewhere else, and create a history of that, you'll eventually find that people don't want to work with you.

      Building a good rep and a network of people who recognize your value and enjoy working with you is a long-term investment worth making.

      --
      Light cup, beer drink, thin so chain, neck turtle fat, man I won't say it again
    3. Re:As a contractor by aaarrrgggh · · Score: 1

      Moreover, if they can get someone on staff to do the work that is only worth $60/hour to them, you stand a better chance of getting the work that is worth $140/hour to them. Win-win. We have a consultant do projects because we don't have the manpower to do it internally, but he will always have work from us where it makes sense.

    4. Re:As a contractor by Firethorn · · Score: 2

      But you will never be irreplaceable.

      I'd argue that, as a company, I don't want ANY one individual, not even the CEO, to be counted as 'irreplaceable'. What if the OP was killed in a car crash tomorrow? Had a heart attack or stroke?

      The kid might only be able to do some things with the software, but he could reduce an emergency to an urgent situation as he keeps the system operating long enough for a new contractor to figure out the program.

      --
      I don't read AC A human right
    5. Re:As a contractor by gstoddart · · Score: 1

      I'd argue that, as a company, I don't want ANY one individual, not even the CEO, to be counted as 'irreplaceable'. What if the OP was killed in a car crash tomorrow? Had a heart attack or stroke?

      Which would be great if companies would staff accordingly.

      But I suspect many of us have seen places where they only have one or two people who do literally everything, and won't invest in having more people or training.

      Sometimes, companies set themselves up for massive failure by causing one person to be irreplaceable, and then suddenly discovering they can't when they need to.

      Most businesses are very short-term in terms of planning. I suspect this one is no different.

      --
      Lost at C:>. Found at C.
    6. Re:As a contractor by Firethorn · · Score: 1

      You don't have much choice if you're a start up or something, but I'd argue that as you transition into a stable company you need to work on redundancy and failure tolerance.

      Most businesses are very short-term in terms of planning. I suspect this one is no different.

      Sadly true.

      --
      I don't read AC A human right
  4. You train them by Anonymous Coward · · Score: 5, Insightful

    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.

    1. Re:You train them by Anonymous Coward · · Score: 1

      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.

    2. Re:You train them by Trepidity · · Score: 4, Insightful

      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.

  5. Let the new developer lead the training. by Dareth · · Score: 5, Insightful

    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.

    --

    I only look human.
    My mother is a halfling and my dad is an ogre, so that makes me an Ogreling
    1. Re:Let the new developer lead the training. by rtfa-troll · · Score: 1

      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.

      --
      =~ s,(.*),<sarcasm>$1</sarcasm>,g if any_point_you_wish();
  6. What's the problem? by Anonymous Coward · · Score: 1

    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?

  7. I love doing that, actually by rebill · · Score: 5, Insightful

    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.

    --

    Chivalry is not dead, it's just frequently misspelt. - M. Langley

    1. Re:I love doing that, actually by Anonymous Coward · · Score: 5, Insightful

      +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.

    2. Re:I love doing that, actually by pnutjam · · Score: 2

      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.

    3. Re:I love doing that, actually by MillerHighLife21 · · Score: 5, Insightful

      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. :-)

      --
      "Don't teach a man to fish, feed yourself. He's a grown man. Fishing's not that hard." - Ron Swanson
    4. Re:I love doing that, actually by sirchuckles · · Score: 1

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

    5. Re:I love doing that, actually by Synerg1y · · Score: 1

      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.

    6. Re:I love doing that, actually by codebot · · Score: 1

      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.

    7. Re:I love doing that, actually by omnichad · · Score: 1

      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.

    8. Re:I love doing that, actually by bryguy5 · · Score: 1

      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..

    9. Re:I love doing that, actually by yurtinus · · Score: 2

      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.

      --
      +1 Disagree
    10. Re:I love doing that, actually by religious+freak · · Score: 1

      I agree. Take the high road. If you show you can deliver all the way through and successfully provided the initial value, your client will remember this when they need another new system. You can also keep an eye out for the next gig once your replacement gets his stuff in relative gear. Exit gracefully and don't burn a bridge.

      That'll get you a referral more than a "figure it out for yourself kid" style as some advocate. It'll also do right by the kid who is in the position we all were in at one point. If you do that enough times you'll probably find yourself with the best kind of work and a great network of happy, former (future) coworkers.

      --
      If you can read this... 01110101 01110010 00100000 01100001 00100000 01100111 01100101 01100101 01101011
    11. Re:I love doing that, actually by pnutjam · · Score: 1

      So you just climbed out of the womb knowing everything?
      Your parents and teachers didn't impart any knowledge to you? You never read a book to learn something, guess who wrote that book. This attitude is one of the problems.
      You sound like Craig T. Nelson, "I've been on food stamps and welfare, nobody ever helped me."

    12. Re:I love doing that, actually by ogdenk · · Score: 1

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

      Unless your replacement is charismatic and convinces them that the reason he flamed out is because of your "shitty unmaintainable code". After he's been there a while as a real employee instead of an "outside contractor", they'd likely believe him.

      This is a common problem with IT monkeys. "VMWare? What a retard, we need to go Hyper-V and get rid of that free Linux crap and replace it with $10,000 windows packages. See! There's Windows VM's on there too. He should have gone all Windows. Linux isn't compatible."

      The sad thing is that in this area, people like that make good money screwing up networks for $50/hr and I have to justify sound IT decisions because of them. I'm about f**kin' sick of the posers. I don't want to see IT regulation and licensing. Posers are making it necessary. Especially where small businesses who can't afford or simply haven't bothered hiring IT staff are concerned.

    13. Re:I love doing that, actually by omnichad · · Score: 1

      What on earth are you talking about? No, by the time a book can be written it would already be obsolete. In many of my areas of expertise, I learned by direct experimentation and firsthand experience.

      No, my parents and teachers taught me nothing about my field. You said trained. Not raised or received primary, secondary, or post-secondary education. Now you're suddenly expanding this to having ever learned something from someone else. But no, the vast majority of what I know in my field did not come from school at all.

    14. Re:I love doing that, actually by rebill · · Score: 1

      Yes. My track record is not perfect, but that's okay.

      --

      Chivalry is not dead, it's just frequently misspelt. - M. Langley

    15. Re:I love doing that, actually by pnutjam · · Score: 1

      Yes, i said trained. Potty-trained, trained in manners, trained to behave, trained to learn. These are all valid areas of training and I bet you have benefited from them. You think your whole life was trial and error? Someone modeled that behavior for you, and yes that is a form of training. Pass it on. Teach a young person to be curious and figure things out.

      Open a mind, yours included. (I know your type...)

    16. Re:I love doing that, actually by omnichad · · Score: 1

      OK. Done troll. Clearly going way off-topic now.

    17. Re:I love doing that, actually by pnutjam · · Score: 1

      Topic is training, but I"m clearly making you uncomfortable.

  8. The Dilbert Way by Anonymous Coward · · Score: 3, Funny

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

    1. Re:The Dilbert Way by hardburlyboogerman · · Score: 2

      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"

      --
      Geek Hillbilly
    2. Re:The Dilbert Way by ferret4 · · Score: 1

      what are Proctologists doing on Slashdot?

  9. As Wil Wheaton says ... "don't be a dick". by Anonymous Coward · · Score: 4, Insightful

    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.

    1. Re:As Wil Wheaton says ... "don't be a dick". by hardburlyboogerman · · Score: 1

      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.

      --
      Geek Hillbilly
    2. Re:As Wil Wheaton says ... "don't be a dick". by number11 · · Score: 1

      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.

    3. Re:As Wil Wheaton says ... "don't be a dick". by hardburlyboogerman · · Score: 1

      No,he resorted to robbery after his business failed.And This aint NYC or DC,we jail crooked bankers here in SE KY

      --
      Geek Hillbilly
  10. Offer them a training contract by Anonymous Coward · · Score: 1

    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.

  11. Is training in the contract? by Red+Herring · · Score: 2

    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...

    --
    #include "standard_disclaimer.h"
  12. Extra Duties Means Extra Pay by Dr+Damage+I · · Score: 1

    So jack your rates up and do the best damn job you know how to do.

    --
    "Cursed is he who rises early in the morning..." Isiah 5:11
  13. Give the kid as much as he can take by sackofdonuts · · Score: 2

    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!

  14. It depends.. by nanospook · · Score: 1

    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..

    --
    Have you fscked your local propeller head today?
  15. Write documentation by concealment · · Score: 4, Insightful

    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).

  16. Same Way You Should Do Everything Else For Them by SirLurksAlot · · Score: 3, Insightful

    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.

    --
    God, schmod. I want my monkey man!
  17. Be a Professional by Anonymous Coward · · Score: 5, Insightful

    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.

    1. Re:Be a Professional by TheRaven64 · · Score: 5, Insightful

      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'.

      --
      I am TheRaven on Soylent News
    2. Re:Be a Professional by funwithBSD · · Score: 3

      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. =)

      --
      Never answer an anonymous letter. - Yogi Berra
    3. Re:Be a Professional by v1 · · Score: 1

      Knowledge and experience are not synonymous with skill. An experienced, trained monkey is still a monkey.

      If all the monkey needs to do is push the same buttons over and over again, he'll probably do very well at it. He may even enjoy it. But if that's the kind of job they have you doing, that'd drive me crazy anyway. If that's all they want to replace you with, you're better off being replaced anyway, there's no future there for you. The monkey may end up actually having skill, or maybe not. What you train him to do may be all he ever does till the day he retires.

      On the other hand, they may want you to train up their monkey so they can drop the maintenance cost of that project, to clear up the checkbook for the next project they're getting ready to start... using you. (keep you maintaining an established project, and hire a monkey to start the new project... or train the monkey to run the established project, and have YOU start the new one... they cost the same, which makes more sense?) That's what you want to see. Run around their company getting new projects off the ground and moving, train a monkey, hand it off, and on to the next project. That's a great way for a company to grow and for you to have stable business from them.

      --
      I work for the Department of Redundancy Department.
    4. Re:Be a Professional by TheRaven64 · · Score: 1

      People don't (or, at least, shouldn't) hire consultants for routine maintenance. They hire them because they have skills that the company doesn't need full time. It is fairly common to hire consultants to do the initial design and implementation for a new system, and then have someone in-house to the maintenance. I've worked with companies that did this. Part of the job is ensuring that they have enough documentation that they don't need to call you back for simple bug fixes and feature enhancements. If they're happy that this works, then they'll call you back the next time they need something that's beyond their in-house capabilities, either because they are lacking the expertise or the manpower.

      --
      I am TheRaven on Soylent News
  18. A few thoughts by onyxruby · · Score: 4, Insightful

    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.

  19. be cool ... be smart by Anonymous Coward · · Score: 1

    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 ...

  20. Teach Him by Harlequin80 · · Score: 3, Informative

    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.

  21. Contracts are mostly a short term proposition by roman_mir · · Score: 1

    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.

  22. "We have purposely trained him wrong by DougOtto · · Score: 1

    as a joke."

    --
    Solving Unix problems since 1989...
  23. Great! by Teun · · Score: 1
    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.

    --
    "The likes of Facebook and WhatsApp are free to those whose privacy is of zero value."
  24. *shrug* by painandgreed · · Score: 1

    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.

    1. Re:*shrug* by Bomarc · · Score: 1
      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!

  25. Well, first of all... by Afty0r · · Score: 1

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

    1. Re:Well, first of all... by Bomarc · · Score: 1

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

  26. Did you actually *read* TFA? by DerekLyons · · Score: 1

    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.

    1. Re:Did you actually *read* TFA? by Alan+Shutko · · Score: 1

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

    2. Re:Did you actually *read* TFA? by the_B0fh · · Score: 1

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

    3. Re:Did you actually *read* TFA? by Dahamma · · Score: 1

      Wha? Did *you* actually read TFA? (actually, summary, there wasn't even an attached article).

      For the most part it has been a happy arrangement for both parties

      He actually used the word "happy" in the summary! And said he's not worried about losing the client.

      And as far as not stating he's being compensated... he's a contractor. He does work for a client and bills them for his work, and he clearly states he's still working for the client, but one day they might end the contract to save money - which means he's still getting paid. Having to state contractors get paid for their work is a bit like having to state you are living on the planet Earth.

    4. Re:Did you actually *read* TFA? by leenks · · Score: 1

      Or daily rate. And yes, some contractors do work beyond the contracted hours if they get more out of the project than just the money...

    5. Re:Did you actually *read* TFA? by DerekLyons · · Score: 1

      Yes. He is a contractor. That means hourly rate.

      Assuming he bills by the hour.
       

      He is not asked to do overtime and teach the kid on his own time.

      Assuming that "teaching the kid" is within the scope of the contract.

      There's a difference between 'facts' and 'assumptions' - you might study up on the meaning of the two words, as you're a bit unclear on the differences.

    6. Re:Did you actually *read* TFA? by sjames · · Score: 1

      A normal contractor, if asked to do something will either bill at the standard pre-agreed rate or insist on a side agreement to get paid. That's a reasonable thing to expect is happening here. Why would we assume he is working for free when that would be such an odd state of affairs?

    7. Re:Did you actually *read* TFA? by the_B0fh · · Score: 1

      You might want to check out the bit that says "other duties as assigned" or sometimes, "other reasonable duties" that is normal in staff augmentation contracts.

      Does it mean you have to work extra hours? No, it means the time spent mentoring the new guy takes time away from your development time.

      As it is, I would see that as part of the assignment if you worked for me. If you disagree, there's the door.

    8. Re:Did you actually *read* TFA? by Lumpy · · Score: 1

      I'd be out the door before you finished your sentence... Good luck teaching the kid my "secrets" yourself.

      --
      Do not look at laser with remaining good eye.
    9. Re:Did you actually *read* TFA? by the_B0fh · · Score: 1

      You honestly think that what you do is so special that any competent programmer is unable to do it?

      People like you make me sick.

      I have made it a point in my career to teach people what I know, and as a result of that, I've had my salary doubled in less than 2 years, been promoted, etc. I liked that. And the people I worked for appreciated having a deeper bench strength, and when I moved, they kept in touch.

    10. Re:Did you actually *read* TFA? by Hognoxious · · Score: 1

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

      Well, apart from where it says: "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" and "For the most part it has been a happy arrangement for both parties."

      I'm going to be uncharacteristically charitable and assume that English is your third or fourth language rather than that you're a drooling flid.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    11. Re:Did you actually *read* TFA? by Hognoxious · · Score: 1

      A tidy handover is good PR. Conversely, storming out like a little brat as the idiot GP suggested is likely to get you sued and/or blacklisted.

      Chances are somebody at the old client/employer will know someone at the new one. Which means there won't be a new one.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  27. This discussion... by Synerg1y · · Score: 1

    Is full of people who've never had a real job before... why?

  28. Ethics of Progress by ZombieBraintrust · · Score: 1

    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.

  29. It's a new contract by chuckugly · · Score: 1

    It's a new contract for new services, I'd think there might be a new price/rate attached.

  30. How to have a safe job by millst · · Score: 1

    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.

  31. Also by Sycraft-fu · · Score: 2

    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.

  32. Play the game by RedLeg · · Score: 1
    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

  33. Been there, done that by sideslash · · Score: 5, Interesting

    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!

  34. Let's face it. by nickserv · · Score: 2

    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.

    --
    Less *is* more.
  35. They hired you as a developer by Arancaytar · · Score: 3, Insightful

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

  36. And by gr8_phk · · Score: 2

    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. ;-)

    1. Re:And by ShanghaiBill · · Score: 1

      And as I understand from contractor friends, you bill for "time and materials" not finished code

      This depends entirely on the contract. When I hire contractors, I never agree to "time and materials". If they won't agree to compensation tied to the completion of specific milestones, then I find a different contractor.

    2. Re:And by Belial6 · · Score: 2

      I have done both kinds of work. For deliverable contracts, I charge ~3X as much as I estimate it will take, and make the requirement that I have complete control of the environment for the deliverable. It only rarely taken, which is good because when you charge by the deliverable, you have to be a total hard ass about the spec changes, and if it isn't in the spec, I get to choose how it works. This tends to make both me and the client less happy with the outcome.

    3. Re:And by Lumpy · · Score: 1

      Smart people pay T&M. silly people demand what you ask for and pay a lot more for the end result compared to T&M.

      --
      Do not look at laser with remaining good eye.
    4. Re:And by TENTH+SHOW+JAM · · Score: 1

      Erm.. No. Deliverable milestones transfer the risk to the contractor. If I pay $BIGNUM and get Exactly what I ask for, and don't have to worry about it, it beats 3 * $SMALLNUM for "Time and materials" where I accept the risk for it not coming in on time.

      --
      A sig is placed here
      To display how futile
      English Haiku is
    5. Re:And by sideslash · · Score: 1

      That works if you have a competent contractor _and_ you are a competent customer. However, in many software projects the customer doesn't really know what they want/need when they start. Then, instead of helping them iterate a bit and learn what they need, the contractor has to spend his time saying "no, that's not what I estimated". Fixed bids are a huge problem for the agility required on such projects, and can cause them to fail in very bad ways.

      Almost all my contracting work has been T&M, and has involved cautious feature creep as the customer's understanding of their needs evolved. The one major fixed bid project I did happened to be a success, because it was managed on the customer side by highly competent engineers who knew exactly what they needed.

  37. Done this .... by nblender · · Score: 1

    Your job as a contractor is customer satisfaction within the bounds of the law. I've had long projects that I've completed or come close to completing, and then been asked to instrument a hand-off to a junior member. I've been paid to mentor the junior member and been called in to solve problems that were over his/her head with him/her watching while I solved the problems, answering questions as they ask. In at least one situation, the handoff was to free me up for a new project the customer was just about to start. They wanted me off the mostly complete project so I could start the next. In one other situation, the junior that I mentored eventually left that company, went to a new job, and then recommended me for some contract work at his new company.

    People aren't stupid, they know when you're being a dick; even if you're being professional about it.

  38. You're a contractor. Your clients are *everything* by yurtinus · · Score: 2

    I can't disagree more, as this poster put it - if you've done a good job on the software and a good job on the training, you'll have a happy client more likely to recommend you or consult with you in the future. You'll have a client that wants to call you for their next project, instead of being stuck calling you for support on their past projects. Don't look at it as the client trying to replace you with somebody cheaper - look at it as the client freeing up your time for more valuable and interesting tasks than maintaining an old project. Do the best you can, try to save that company money, and you'll be viewed as an asset to them and see greater long-term gains from them and others they recommend you to. Do a halfhearted job and you'll be viewed as a leech just hanging out for more money - they'll be anxious to get rid of you. You say it's been a happy relationship for both parties, don't ruin it for your ego.

    For a group that fosters the FOSS movement, why would you all be opposed to getting *paid* to train somebody else to maintain your old software? Let it go and move on to bigger and better things!

    --
    +1 Disagree
  39. Your getting paid to do a job, do it. by dlmarti · · Score: 1

    If they are paying you your rate, WTF do you care if its teaching someone or coding? Do you honestly believe that your all that? Get over yourself, and do your job. Last job I quit, they called me for a year with questions. Simple shit, as long as it was less than an hour I didn't even charge them.

  40. High road by Concern · · Score: 4, Insightful

    I don't agree that you should get legalistic about what is and isn't in your contract. If you're writing software, answering questions about it and helping others understand it is part of the basic standards and practices of the profession. If you're a contractor, training up internal resources to take over your project is totally ordinary.

    They've been a client for years. Take good care of them. If they want to move the role full-time, in-house, that's a good growth step for them.

    If you're the kind of contractor who's hostile to that, and looking for ways to resist and debating what's in your contract, or being unprofessional when it comes to transitioning your role, expect not to be welcomed back, and don't look for them to give a glowing reference.

    If you act like a pro, and take good care of them, then you're helping your reputation and chances for future work.

    --
    Tired of Political Trolls? Opt Out!
    1. Re:High road by tlambert · · Score: 1

      I don't agree that you should get legalistic about what is and isn't in your contract. If you're writing software, answering questions about it and helping others understand it is part of the basic standards and practices of the profession. If you're a contractor, training up internal resources to take over your project is totally ordinary.

      They've been a client for years. Take good care of them. If they want to move the role full-time, in-house, that's a good growth step for them.

      If you're the kind of contractor who's hostile to that, and looking for ways to resist and debating what's in your contract, or being unprofessional when it comes to transitioning your role, expect not to be welcomed back, and don't look for them to give a glowing reference.

      If you act like a pro, and take good care of them, then you're helping your reputation and chances for future work.

      Good will can not be underestimated. I still get calls from a referral from a flower shop where my "automation solution" for their problem was a 3x5 card file, because I did not jerk them around and try to put in a computer system where it wasn't actually needed. I didn't charge them because I was able to draw it out for them in the initial consultation after they explained the problem they wanted to solve.

      When I contract, I have different rates for different roles. I charge one price for development, I charge a different price for documentation beyond the basic design documents necessary to do development or internal source documentation, which are work product, and I charge a different price for hand-holding.

      So if you want my development services, that will cost you one price, but if you want me to write a product manual or built in help system, that's a different cost. If you want to in-source like these guys appear to be doing according to the OP's vague suspicions, I'll be happy to answer questions at my normal hourly rate, with a set minimum per session, but if your new, cheap person can't get the code from the concise comments and design documents, then me holding their hand in-house to get them up to speed is not going to work.

      Software development is not like welding, where you do an apprenticeship, become a journeyman,, etc.. You go to school for a reason, and you do internships for a reason. Code familiarity with a given project, unless the code is hideous, is not something you "give" to someone, it's something the grok or they don't grok because of their innate ability and prior training.

  41. You're a professional... by emag · · Score: 1

    You're a professional, so there's really only one way to approach it: professionally. As a contractor, there's always the possibility that your services will no longer be required anyway. Show them they're making the wrong choice by approaching it as you would any other work. No holding back any tricks, no keeping secrets, no letting the new guy flounder (much... he needs to get his wings). Answer as fully and thoroughly as you can when asked about anything. Your actions with this will be one of the last things this customer may see for some time. If at a future date they realize they need someone with your skills, you want them to remember that good impression you left them with, and not someone who spent the last few weeks/months in a snit acting like a child.

    --
    "The urge to save humanity is almost always a false front for the urge to rule." --H.L. Mencken
  42. Path to promotion by Ferromancer · · Score: 1

    Think of it another way. You are not training your replacement. You are being promoted to team lead or architect. This might be a lesson in whether or not your code is easy to maintain, or easy to learn, and how well you can mentor junior programmers on your team.

    --
    "Worker bees can leave
    Even drones can fly away
    The Queen is their slave."
  43. Negotiate by Ant2 · · Score: 1

    Currently you are retained by the client as a developer. Continue within that role as long as that is mutually agreeable.

    You should also discuss the possibility of training your replacement. I would suggest a different billing rate for that.

  44. Watch out by GNUALMAFUERTE · · Score: 3, Insightful

    You might get lucky, but here is my experience with this issue:

      - You act nicely, and teach the noob the "secrets" of your code
      - You go away, the noob didn't understand shit, he gets lost.
      - He eventually will either screw up big time, or just fail to produce new deliverables
      - He gets pushed, blames you (he'll either say your code sucks, or he'll say you are keeping "secrets", or in any other way trying to protect your job by preventing him from doing his.

    You'll end up forced to tell the customer to STFU and GTFO, or you'll be doing work for free.

    My recommendation:

    If you have fully documented the code (both inside the code, and in a standalone documentation that explains everything from coding style to APIs), tell the customer everything any competent coder might need is in the docs, and remain available for any specific questions the coder might have, under a pre-arranged hourly rate.

    If your product hasn't been fully documented, send them a quote for full documentation, and go back to the previous stage.

    --
    WTF am I doing replying to an AC at 5 A.M on a Friday night?
  45. Write by snadrus · · Score: 1

    Teach him as you write documentation: Literally type notes with him watching. He will forget & probably quit before you get asked back, so you need proof that you did impart "secrets".

    But don't be surprised at some negativity to you when it all goes South. Well-known places (for new devs under new managers) to find your typed-up training info will be key to positive referrals.

    --
    Science & open-source build trust from peer review. Learn systems you can trust.
  46. You're now officially the BOFH with a PFY by HighOrbit · · Score: 3, Funny

    Sounds like to perfect opportunity to be the BOFH vs the PFY. Enjoy! http://en.wikipedia.org/wiki/Bastard_Operator_From_Hell && ofcourse http://www.theregister.co.uk/data_centre/bofh/

  47. whatever you do is probably not going to work by roc97007 · · Score: 1

    As you said yourself, creating good code is not something one would expect a beginning-wage employee fresh out of college to create. At best, your replacement might be able to maintain the code already created.

    So, basically, whatever you do isn't going to be sufficient if the employer needs major changes to the code. Therefore, I guess it depends on your relationship with the contractor. If you say "here's the source code, good luck" and leave, or if you break it down "this is where the majority of the work is done" and "when the program counter wraps, it picks this instruction off the drum at 000, and that's how it exits the loop" ...oops, wrong story... where was I? Oh, yeah, how much you tell him is up to you, as whatever you say won't make a whole lot of difference.

    Parenthetically, isn't it interesting how companies think that years of experience and expertise can be somehow magically transferred to a noob in a few weeks. There seems to be no understanding that programming (or most kinds of engineering) done well, involves a way of thinking, strategies for attacking a problem, in some cases skills in squirreling out information and a knack for implementation, that bears no resemblance to a "collection of secrets".

    --
    Oliver's law of assumed responsibility: If you're seen fixing it, you will be blamed for breaking it.
    1. Re:whatever you do is probably not going to work by TheSeatOfMyPants · · Score: 1

      Parenthetically, isn't it interesting how companies think that years of experience and expertise can be somehow magically transferred to a noob in a few weeks. There seems to be no understanding that programming (or most kinds of engineering) done well ...

      Most professions that rely heavily on experience & talent are viewed that way by outsiders -- you can even see the attitude here on Slashdot aimed at non-STEM professionals like writers, sociologists, or teachers. Very few people seem to be capable of gauging how much effort goes into it unless they've already worked at building up a related talent (or tried, failed, and were honest with themselves why).

      --
      Now mostly at Usenet:comp.misc & SoylentNews.org (it's made of people!)
    2. Re:whatever you do is probably not going to work by roc97007 · · Score: 1

      Parenthetically, isn't it interesting how companies think that years of experience and expertise can be somehow magically transferred to a noob in a few weeks. There seems to be no understanding that programming (or most kinds of engineering) done well ...

      Most professions that rely heavily on experience & talent are viewed that way by outsiders -- you can even see the attitude here on Slashdot aimed at non-STEM professionals like writers, sociologists, or teachers. Very few people seem to be capable of gauging how much effort goes into it unless they've already worked at building up a related talent (or tried, failed, and were honest with themselves why).

      That's fair. Although having had to fight the local school system regarding their handling of my daughter (who is severely dyslexic, but had been diagnosed by her teachers as ADD) I've seen too many teachers who are just going through the motions, more interested in making as little effort as possible than actually teaching children.

      I was thinking specifically of the current vogue of replacing older experienced talent with cheaper graduates, or outsourcing to offshore resources. In the first case, you have enthusiasm and the willingness to work long hours, but little experience, and the company ultimately finds out that they're paying for the same mistakes over and over again as younger kids are hired to replace those who discovered that free-form amorphous coding is a bad idea. In the latter case, management will insist that procedures can replace talent and experience, and they inevitably are left with a mess, that often gets blamed on the employees that were laid off, for not properly documenting their jobs before they lost them. And the fundamental misunderstanding is that you can't turn talent and insight into a set of procedures, else we'd be a lot further along with AI than we are currently.

      Going back to teaching just for a second, a major vendor with which I do business just recently outsourced their online training to India. It's a complete disaster. Classes have become someone reading the overheads to you in an accent you can barely understand, and deferring all questions to technical support. They're not there to teach, they're there to fill a mangerial line item.

      --
      Oliver's law of assumed responsibility: If you're seen fixing it, you will be blamed for breaking it.
  48. You train them the same way you train anyone else. by fatmonkeyboy · · Score: 1

    The way you train a "replacement" is the same way you train any new employee on a software team.

    Start by giving them small tasks. Let them work their way through your backlog of things you haven't gotten around to doing. Bugs are great candidates for new members of the team. Ease them into the code base. Do code reviews with them before check-ins.

    Personally, I like to do some pair programming during the first couple of days to help them set up their development environment and familiarize themselves with how I've been working on the code.

    Unless this is a trivial project, you're never going to be able to impart all of the knowledge you have about it. If they're worth anything (and you're worth anything) it won't be so complex that they can't figure out how to extend / maintain it. Your job is to give them a leg up and ease the learning curve.

    Be open and honest and helpful. The reality is that this new guy is either able to replace you or isn't. If a novice is able to successfully replace you, maybe the project has matured beyond the need for a senior-level developer and it's time for you to move on.

    If that's not the case, it will become abundantly clear in due time and they will treasure you all the more for having seen the difference your skills & experience provide.

  49. Is training in your skill set? by Skapare · · Score: 1

    I didn't think so. It's not in mine, either. Documenting is, though, so I'd let the newbie learn to read.

    --
    now we need to go OSS in diesel cars
  50. Been there done that by Trailer+Trash · · Score: 1

    Years ago a client decided to save money by hiring a recent college graduate. I helped them in every way that I could. About two months later they asked me to help write the support documentation for the firing.

    I've been on the other side, too. I had a client early on (mid 90s) that was paying me $60/hour. They had, according to them, never paid anyone more than $7/hour before. They were explaining this to me as part of a conversation about how I was actually much much cheaper than any of the $7/hour guys because I could easily finish in a few hours a chore that would take those guys a week to do.

    Anybody who thinks that a lower hourly rate means a lower cost is an idiot.

  51. Re:my perspective from a long career by Skapare · · Score: 1

    I would have told them what my rate is for short term consulting on an availability basis. Like $300 hour if I'm not busy. Offer me more to make me not busy.

    --
    now we need to go OSS in diesel cars
  52. I would have phrased it as by Anonymous Coward · · Score: 4, Insightful

    You're a contractor. Make a new contract.

    You're obviously not going to do this for free, so approach it like any of your other services for hire. Work out how much time they want to dedicate to it or just get the to agree to a suitably high hourly rate for your new services, which are now essentially tier 2 support. Be sure to include enough of a 'get out free' clause so that if the new guy rips the code/configuration/hardware to shreds, you're not obligated to clean up his mess. Then just rake it in.

    1. Re:I would have phrased it as by johnsnails · · Score: 1

      Agree with this also!
      It may make them think twice about replacing you also.

    2. Re:I would have phrased it as by mcvos · · Score: 1

      He's not tier 2 support, he's now a trainer. Instead of being a software developer, he now trains software developers, and should definitely charge accordingly.

    3. Re:I would have phrased it as by Hognoxious · · Score: 1

      You're a contractor. Make a new contract.

      You mean somewhere else? Contractors are temporary staff; they're used for one-off specific things (like developing a new system) or for routine maintenance when the client doesn't have enough of right people in-house. Nobody, least of all the contractor, should be expecting it to be a job for life. Handing over is part of the deal.

      I'm sure you and mcvos are both very special snowflakes, but acting like a prima donna will likely get you shown the door. Don't tell me how impossible you are to replace; anybody is replaceable. And don't tell me how much that will cost, either. It's probably not the manager's own money he's spending, but it's definitely his ego you're challenging.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  53. Lucky you, actually. by Rob+the+Bold · · Score: 1

    You say you've got other contracts. You've got a good rapport with the company, presumably a good recommendation as well. Sounds like they're by choice or by necessity moving the project to a maintenance mode rather than active development. (I'm just assuming that because you say you believe they're bringing on a junior guy to replace, not supplement, you.) Again, I'm guessing, but you'd probably rather be doing something more active, so be nice and try to teach the new guy what you know about the project. Of course, you can't just to a full brain-dump, but do your best. Work out a mutually-beneficial support agreement when you do get released. Maybe, if you've enjoyed the work, things will turn around for the company, and they'll have more work for you. If not, at least you're spared the tedious and potentially draining task of going down on a sinking ship.

    --
    I am not a crackpot.
  54. Hand over the knowledge/skills for the project.. by JSombra · · Score: 1

    You train them on the system and the clients business (assume you should have good idea of that), if he is capable of learning such then all is fine and dandy and your job as contractor is done and done well.

    If he not capable of learning to do the job due to basic lack of fundamentals/programming skills you inform the client of such and leave them to figure out what to do. You do not teach him to "program" under any circumstances as training in such from you would probably cost the client more than sending him back to school/hiring someone more qualified. If they have gone so "cheap" that they have hired someone totally unqualified that is the hiring managers problem, not yours.

    "Hand over" is about handing over the the necessary knowledge/skills for that particular project to someone qualified, not about training someone in the basics of design/development

  55. teach him gleefully! by the-build-chicken · · Score: 2

    So, I'm also a high earning contractor whose wages are consistently 30% above market rates, and have been for as long as I can remember...I also have (paid for myself) obtained complementary teaching qualifications so I can offer exactly what you're describing as a "value add" service to my clients. I always have a new contract waiting for me at the end of the current one, I've never been unintentionally unemployed (I like to sit on the beach a lot), I'm regularly re-hired by the same clients that have used my services previously, and usually they bid against each other for my services, I don't work very hard (can't remember the last time I even said the word "overtime") and I make buckets of money...why?

    Because I approach every single contract with the view that at any point I could get a better offer somewhere else and I don't want to burn the current bridge. Every single thing I do, be it code, or architecture, or business process modelling, or teaching/mentoring is highly documented, and at least one full time staff member has had a walk through to the point where, in a pinch, they could get by without me. And every single client appreciates my approach and recommends me wholeheartedly to their business buddies.

    "Knowledge lockin" is a petty and small way to build a career...if you have to rely on it, eventually you will have no career (I have seen it over and over again...cushy contractor locks in his position through knowledge bargaining rather than services provided and sure, he gets 5, maybe 10 very stressful years out of it...then his career is toast)

    And teaching is fun...remember, that kid you teach today is going to be the project manager signing your very hefty invoice tomorrow. Many of the "kids" I taught at one point are now in very senior executive positions...who do you think they recommend when the job has to be done right?

    And finally, the ethical aspect. My art teacher once said to me "Everything you learn in life is taught to you by someone...to die without passing that knowledge on is stealing from humanity."

    My advice, don't just teach that kid...teach the hell out of him...make it obvious that you're more than happy to do it. Understand that, once a contract is coming to an end, it's a natural and expected part of the development cycle for your client to want to fund the maintenance of the project in a more cost effective manner (and who the hell wants to get stuck doing maintenance anyway?). And go out of your way to make it as visible as possible that you understand that part of the development cycle and are enthusiastic to have done such a great job at design that maintenance can be handle by a graduate. And through all this, keep asking...referrals, referrals, referrals.

  56. Re:You're a contractor. Your clients are *everythi by leenks · · Score: 1

    Likewise, and in many cases the new guy is right. Of course, in some cases the new guy doesn't know anything, but there are many bad coders out there earning craploads as contractors.

  57. Not in your contract by cyberspittle · · Score: 1

    Don't burn any bridges,

    1. Re:Not in your contract by Organic+Brain+Damage · · Score: 1

      This is the best advice. Do unto others as you'd have them do unto you and you may be rewarded in the end. When the manager for this company realizes you've done diligent work up to the last second of your contract and that manager moves on to another company after the newbie fails to live up to expectations, he may call you and offer you more work at an even better rate. If you hold out on the replacement and don't give him full training (that you are indeed being paid to do), then you ruin your reputation with the newbie (who knows where he'll end up?) and the manager(s).

  58. On-the-job training by Todd+Knarr · · Score: 1

    Start by giving him tasks maintaining the software. Give him an overview of how things are organized, then give him a task that needs done and answer his questions as they come up. Someone maintaining code will have to know how to figure it out, so let him get started on that now while you're around to answer questions. Once he's done, critique the code with an eye towards how many hidden problems it may have and how well it fits with the system. If he's doing good work, give him progressively more complex tasks.

    Once you've got a feel for how he's doing, good or bad, bring some of the management you work for in on the critiques. If he's doing well, this lets you highlight how well you teach your replacement which can lead to good references later. If he's not doing well, this lets you highlight the problems while you can still demonstrate directly that it's not because your software's poorly-designed or poorly-documented and it's not because you're not clearly explaining the system to him.

    1. Re:On-the-job training by T-ice · · Score: 1

      Agree with this guy. As a contractor, there really shouldn't be any expectation of long term work. You don't need to teach this guy how to develope, just how to maintain your system. That's it. For example, companies buy MS Office all the time, then hire some guy to maintain the entire network. As opposed to pay microsoft to send a guy out from time to time. Microsoft and Cisco etc, have certification standards so that dumbshits can't just say, "oh, I got this" with absolutely no clue. This reduces the risk of dumbshits tarnishing their companies name when said product fails to work. Basically, they wan't you to give this guy a YOURNAMEHERE certification. I do think you should get some reimbursement for any extra time you spend training this guy. Or you could try to offload some of the tedius tasks onto him and finish ahead of schedule, assuming you're paid for the job rather than the hour. I'm pretty sure that they never intended to keep someone that charges as much as you in the long term. You're expected to find other work at your level until they need something new developed. And if your last job looked shoddy because some kid couldn't maintain it, you aren't getting the next one from this company. Why does microsoft keep in business even with windows 8? Companies don't need a hot shot developer to to maintain it, just some kid fresh out of college will do.

  59. Work Ethic Propaganda by MrSteveSD · · Score: 1

    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).

    Why is it that employees are supposed to work hard, be as professional as possible, take pride in their work, be ethical etc? All these virtuous practices are things that largely benefit the employer. It's effectively work ethic propaganda that has been drilled into the population.

    In contrast employers work you as hard as possible for as little reward as possible (often including unpaid overtime which is effectively theft of your time) then dump you for a cheaper college graduate at the first opportunity. Employers do not adopt a strategy that benefits the employee as much as possible, they adopt a strategy that benefits them as much as possible. Why then shouldn't employees be just as ruthless, conniving and unethical as employers?

    "Virtuous" work ethics have been drilled into successive populations over the aeons by those who directly benefit from them, i.e. the powerful. Don't fall for them.

    1. Re:Work Ethic Propaganda by MillerHighLife21 · · Score: 1

      You're talking employers and he's talking about contract work. Contract work is usually hourly so you are always compensated for your time and it's usually paid at a mark up specifically because its a contract and not full time position. As a contract job it's an existing expectation that it will not be long term so why should you handle it any way other that as professionally as possible? That will land you more contract work at the high rate and let you continue your lifestyle.

      A full time employee being asked to train their replacement is a whole different ballgame. That's down right offensive to ask somebody to do in many cases.

      --
      "Don't teach a man to fish, feed yourself. He's a grown man. Fishing's not that hard." - Ron Swanson
    2. Re:Work Ethic Propaganda by MrSteveSD · · Score: 1

      Well the ideas about being ethical etc are often applied to regular jobs, and I thought it was worth talking about that. Increasingly though companies are employing people on contract so the line between a regular worker and a contractor becomes blurred.

  60. I say fine by mysidia · · Score: 1

    You agreed to provide the code, and they decided to replace you -- the rational thing to do is recapture as much profit you were going to lose as you can.

    Negotiate a new rate for the training; under the justification, that your marginal costs are going up -- conducting a training session to professional standards requires extra preparation (a few extra hours of preparation for every hour of training, and additional resources, and time+energy to answer followup questions).

    So get a rate that is 2 to 3x the rate of an hour development work, per hour of training, plus a flat fee.

    Then reach an agreement about duration of the agreement, followup support questions, and future development work -- required retainer, and hourly rate scaled up, when fewer hours of development work are performed.

  61. You are a contractor by __aaltlg1547 · · Score: 1

    You are a contractor. You either take the contract and teach their new hire how to work with and support your code to the best of your ability or you do not take the contract.

  62. Train Him All He Wants by Greyfox · · Score: 1

    Charging whatever rate you do. The next time they call you, just multiply your hourly rate by the number of hours you've lost to this and quote that to them. Sounds like a win-win to me!

    --

    I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

  63. Train your successors with enthusiasm by Anonymous Coward · · Score: 1

    Think about it this way. If you want your application to live on and not end up on the junk-heap of dead/deprecated apps, train someone to keep it alive. I can tell you, there is nothing more rewarding in our industry than knowing that code you wrote 5/10/15 years ago is still useful. Build your apps to last, train your successors with enthusiasm. Do all you can to help them be successful in supporting your app. Be a professional.

  64. Have you asked your client what is going on? by knobboy · · Score: 1

    Maybe they are trying to free you up for a separate project, for instance? At my last job, we had a contractor who did the majority of our programming, as well as some networking/admin. Part of my tasks, as an employee of the company, was to learn some of the networking/admin tasks to free his time up up for additional programming and higher-level network design. It may not hurt to ask the client what their future intentions are, just in case.

  65. Sabotage by Cyfun · · Score: 1

    I've always tried to take the professional and ethical approach to such things, thinking that it would help me to earn trust with the company and the industry, leading to good references and more jobs down the road. But instead it's mostly lead to me being used, abused, and routinely thrown under the bus.

    So as much as I hate to say it, if they asked me to train my replacement, while acting completely professional, I would deliberately mislead them and feed bad information. So down the road when I leave and everything turns to shit, they will beg me to come back and fix the shit that they broke. Doing good work rarely garners appreciation anymore. The only way I've seen much appreciation is retroactively, when they realize what a mistake it was to lose me.

    --
    In Soviet Russia, dot slashes YOU!
  66. Do your best.. more or less by countach · · Score: 1

    I think its usually a bad idea to try and hoard your job by keeping secrets. In this situation, I usually try and do a good job in handing the project over. Admittedly if they are stealing my job - a job that I want to keep, I might not go "all out" in telling every secret, but neither do I hold back important details either. Best to do your best, in all likelyhood this graduate won't work out for them anyway, then at least you'll still smell good.

  67. Suming up by felix+rayman · · Score: 1

    Good programmers work to replace themselves with small shell scripts.

    The people in the comments on this shit article are the other type of programmers.

  68. Re:You don't have a choice by jsepeta · · Score: 1

    Do you want respect or a paycheck? Letting employers push you around and shuttle you out the door to keep them from paying you so much is their objective; it doesn't have to be your objective too. find other work and give notice.

    --
    Remember kids, if you're not paying for the service, YOU ARE THE PRODUCT THAT IS BEING SOLD.
  69. Train him by EJB · · Score: 1

    If you have the time, why not train him? You say you have enough other customers for now, so you don't have to worry about the short term, and when the economy gets better, you did a good service to a customer and they'll think of you again.

    Plus...

    You learn training skills, which is quite marketable.

    If your replacement is really good, he'll probably be a good addition to your network. He'll remember that you trained him, and he'll move on to other positions where he can recommend you. And when he moves on, the company will need you again as well.

    If he's not good, make sure that people can see that you tried. Powerpoints, handouts, recommended books, hours spent pair programming, etc. They'll need you again, make sure they understand that you tried to help them.

    1. Re:Train him by cpslash · · Score: 1

      Sometimes you can't train someone. For example, they've used M$.net but now in this embedded environment, they have no idea what a memory leak is. Or they want to know where the 'embedded' desktop is. Or what command line arguments are. They probably don't know 'C' that well either. I had a guy once who got wound up trying to trace unsigned int (*myfct)(int arg1, int arg2); as he couldn't find where myfct was defined in the code - or why C++ should use virtual destructors, on and on, yikes, you'll go nuts. Furthermore, you have sold your expertise as a designer/developer and not as a trainer. You probably don't have the skills necessary for this so you have no right to charge a premium rate.

  70. Mind Meld before you go. by nickserv · · Score: 1

    Try one of those 'Jedi Mind Melds" before you go. Could save you a lot of time explaining things the old fashioned way. :-)

    --
    Less *is* more.
  71. Dumb by lightknight · · Score: 1

    The keywords were "sizable project." So what you're really saying is that it's going to take him 9 months to just to understand the data structures / schema of this project, before he can began changing anything beyond string level. Typical example of excellent business level thinking: programmers are fungible trade workers, unskilled, and can easily be replaced. I'm guessing it's going to take 1.5 years before they can begin to move forward again, with the help of a few extra developers...

    So...I'm guessing that they will begin to panic in several months, double up with a few extras to try and cover up their mistake, then either try and scrap the project, or do something equally stupid. Now, I could be wrong...they might be hiring a MENSA candidate right out of college, complete with the passion or salary that is required to keep someone like him around...but I'm thinking not; I've known a few people like that...but then, they went on to earn six-figures as their starting salaries right out of college...and you're saying this company is cutting back because of the economy...so probably not. This will be a good lesson for them. Can you name some of their competitors? I have a mild interest in investing in them, and shorting your company's stock, seeing as the new project will probably be a crash and burn in a year's time...randomly guessing the probability to be something like 70% likelihood here...

      I say that as long as they are willing to pay you to train him, do so. It's not like he's getting a copy of your trade secrets, or your thinking processes, or even the books you've read...he hasn't attended the same college, doesn't think the same way, etc. Chances are, he will get a broad overview of what you've done, with some stringy reasons (because the company doesn't want to pay you to train him a minute longer than it has to) why you did what you did, which he may or may not write down, and which will be complete gibberish in 3 months time, save for a few obvious things, like "I did this because this didn't work." It's true, you want businesses where executives know how to perform cost analysis situations...but studies have also shown that businesses run purely by the accounting department tend to do poorly, especially where IT / Technology / programming is concerned. Because you're fighting with Archimedes over a pitcher of water...and whether he can cost justify it to twelve decimal places...

    I mean, come on, anyone who has studied business / economics in general knows that the business community is sick in general as of late. Heavyweights that have survived cataclysmic downfalls, and gotten back up, are being taken out like chumps through homicidal mismanagement. So, if you're a business guy, and you know (because you took business classes, which 'make sense' to you) how to run things, because you were taught how to do this, or it's what you believe, or how you feel things should be done...and that's also how your friends are doing things....but they're dying off like they've contracted the Black Plague...are you going to keep doing what you've been doing? Stick your fingers in your ears, say that your friends just got unlucky, it happens...or are you going to ask yourself if someone slipped you the wrong info? That the reason you're struggling isn't because you don't have what it takes (a separate discussion), but because someone told you that it was a good idea to cut your sales staff right before your sales biggest day of the year, or that you'd make more money by taking out a big loan that through interest and savings, was supposed to make you more money, instead of giant losses?

    --
    I am John Hurt.
  72. Quad your rate. by theNAM666 · · Score: 1

    At least quadruple your hourly rate-- if not more. Your IP is yours. If they want it, make them pay. Otherwise-- you'll get nothing out of this, they'll exploit you, nothing more. That's all there is to it.

  73. Recruitment by bWareiWare.co.uk · · Score: 1

    Look at it as a valuable opportunity. First you get paid to train him on-top of the ongoing development whilst he gets up to speed.
    Then if he is no good (or you aren't a very good trainer) then you haven't lost anything and they will revert to using you for ongoing development.
    Alternatively if he picks it up well, then you will have a good working relationship with a competent and trained professional who fully understands your preferred coding practices, and who you happen to know is still on a rock-bottom contract that he agreed when he had no experience or training. Simply higher him away and grow your consulting business.

  74. professional by ewenix · · Score: 1

    Make sure you have a few 'working' lunches with the new guy AND someone reasonably technical from the client. The purpose of which is to discuss (not at a low level) and issues the new guy has in taking the reigns. This will help make you look more professional and helpful, as well as have a mitigated any damage from you being thrown under the bus after you're gone. Just make sure the client knows the code/app worked as intended/designed before you left, and the new guy claimed to understand it as well as had all his questions answered. If he crashes and burns after you leave then it's on him. You need someone from the client side to has reasonable technical ability, so that they understand the problem if the new guy is asking for you to teach him how to design/code. If the client doesn't understand that, you will definitely be the the fall guy.

  75. Customer Service is still alive by reynost · · Score: 1

    I see many opinions here, but I think the one that stands out most is the concept of customer service. If you treat your customer right, even if that means eventually losing them, you will come out ahead in the future. Word of mouth is a strong marketing tactic, but can also bite you if you don't act properly. For instance, let's assume that you take what I consider the selfish route and decide to only do what the contract states and no more. Your customer will notice and in the future may not use you, but worse they may provide a negative comment to other potential customers. If instead you remain professional, courteous, and service oriented to what's best for your client, they'll be your best marketing department. Remember, companies are made up of people. What happens when a manager or exec from your current company leaves for a new company? The way you treat them will affect their thoughts and decisions about bringing you to a new client with them. As professional engineers and developers, we should always take the high road and act with the best interests of our customers/clients even when it seems as if we're being screwed. It will help you in the future and also keep you from getting ulcers :-).

  76. Were you asked to 'clone' yourself? by cpslash · · Score: 1

    I've 30 years in the software consulting business. Every once in a while, a client will ask me to 'clone' myself so that some college graduate could 'take over'. I tell the client 'cloning' doesn't work, but that if the college graduate has any specific questions, I'll answer them. And, at the same time, I give them two weeks notice. When the contract is done, it's done. Never overstay your welcome. The site/job environment will turn quickly hostile and you don't want to be there when it does. Many times, I'll get a callback from the client, saying they are stuck, and could I come back for a day to unstick the college graduate. I typically decline, as my business model makes its money from long term contracts. Ok, they say, how about two weeks? I say ok but give them a rate that's double as there's an opportunity cost associated with not being available when the next client calls.

  77. Get paid. by Sir+Realist · · Score: 1

    You get paid by the hour, right? So make sure you charge for the hours you spend training.

    Even if training is not your usual balliwick, I'd say in this instance it was good practice to take the job. You're ensuring a happy customer from a job you've already started. If you're concerned about ending up in an endless cycle of training, set a time limit from the outset if thats all you're doing for them.

    The danger though is getting blamed for a poor outcome if your trainee breaks things. If you have concerns about the quality of any code written by the new guy, make sure you voice them politely and unemotionally, and in documentable form. If they continue to have him write code and you think that code is substandard, tell them why, and then asked to be released from the project because you can no longer control the quality of the outcome.

  78. Knowlage horders by Odinson · · Score: 1

    Hate em. I am a sysadmin not a developer, but I always do some light to heavy dev in support of my environment. In my experience if you are really that good you can let the ideas and knowledge flow. Only half of what you say will sink in and that's only if the listener has the conceptual framework to remember the facts in context.

    If they hired the right guy (or gal), he may actually be able to keep up. This will be obvious when you are peppered with smart contextual questions. Rejoice! Everybody is different, but there is a good shot you have an ally for life. Build enough of these and everybody will call you first for the interesting stuff.

    It does sound like you have a bigger problem. Sounds like your client does not realize what an open ended thing they are asking you to do. If they do, can't hurt to clarify. If they don't get it, ask them what they are willing to pay for. Look at the longevity of training one guy vs improving docs. Consider the training and intelligence of the individual. You may need to spend ALOT of time with him. Consider the medium. Email is more defensible and cheaper than phone help, which is cheaper than in person visists, which is cheaper than full time in person training. Offer some cheap email responses for a period of time. That helps you to keep track of how well or badly this fellow is doing. Also ask them how you proceed if you have difficulty communicating with him.

    Once you and your client knows what they actually want from you it won't be uncomfortable, perhaps it will even be fun. You don't really know something until you teach it.

  79. Training Your Job Replacement? by Summitlake · · Score: 1

    Your employer is offering a false choice: sell your talent and experience cheaply until you are deemed no longer needed, else be terminated for insubordination. This is being set up to fail, but you probably have more control over who "fails" than you think. I believe the operative phrase in the business world is still "be cooperative without being forthcoming."