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

292 comments

  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 Anonymous Coward · · Score: 0

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

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

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

    12. 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
    13. 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.
    14. 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!
    15. Re:You're a contractor. Your "secrets" are yours by Anonymous Coward · · Score: 0

      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.

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

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

    18. 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
    19. 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.
    20. 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
    21. Re:You're a contractor. Your "secrets" are yours by Anonymous Coward · · Score: 0

      Sometimes cheaper is not really cheaper.

      Or, put another way: the (total) cost of something may not be the same as simply as its price.

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

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

    25. Re:You're a contractor. Your "secrets" are yours by leenks · · Score: 0

      mod parent up

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

    27. 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.
    28. Re:You're a contractor. Your "secrets" are yours by Anonymous Coward · · Score: 0

      This is silly. Every time I've trained a replacement, I've done as good a job as I could, and within a short period my "replacement" went and got a better job, meaning that I made more money because I had to negotiate a new contract (and also because I was busy with my new projects).
      I don't see how any good programmer would be worried about this.

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

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

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

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

      What's with copying AC replies?

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

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

      It should probably be "I charge twice as much fro training, 4x for secrets"

    35. 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.
    36. Re:You're a contractor. Your "secrets" are yours by Anonymous Coward · · Score: 0

      blackmale

      Subconscious racism and sexism? :)

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

      There was an excellent article on this matter a while ago (I think in the Linux Magazine, around the year 2000. It was about going solo as a Linux consultant.) The main pieces of advice I still remember and can vouch for:
      1. Don't fall in love with your client.
      2. Don't fall in love with your code.

      Your client is not your family. He acts upon his own interests and you'll never know what considerations have led him to this business decision. It means absolutely nothing that he was nice to you and that you had good relationships. He will turn on a dime in a second if that serves his business interests. Don't try to figure out his thinking (hey, it could be that the student they hired is a relative of somebody in the management). Consider your own interests and be prepared to move on.

      Do not overestimate your ingenuity and uniqueness. You haven't developed Windows-9 or Mac OS-Y for them. Programming skills have a shelf life of about 2 years and that's how long it takes for a fresh graduate to become a real pro, more or less. Business doesn't care how geniusly you developed that project. It's a business transaction: back when you were negotiating about the contract, they decided to hire you. Now something has changed. Renegotiate or move on.

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

      In your dreams!

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

      The OP's author works for himself, which makes your experience working for MSP (whatever it is, - it is not you) absolutely irrelevant.

    40. 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.
    41. Re:You're a contractor. Your "secrets" are yours by Anonymous Coward · · Score: 0

      take the reins

      . Like a horse. "Reign" is what kings do. Similarly, "give someone free rein". Not having a go at you especially; the rein/reign confusion is a particular bugbear of mine.

    42. 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
    43. Re:You're a contractor. Your "secrets" are yours by Anonymous Coward · · Score: 0

      The fly in the ointment will be six months of 'free' calls after you leave.

      Make sure it's understood that those future calls will be billable hours (minimum).

      Generate a P.O. to cover it.

      Fair is fair.

      jr

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

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

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

    48. Re:You're a contractor. Your "secrets" are yours by CodeBuster · · Score: 0

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

      He'd probably have more success teaching his dog to speak Spanish. There are good reasons why most people who begin a Computer Science degree at university don't complete it. It takes a certain kind of person to "get it" and those who cannot "get it" rarely turn that around simply by working harder at it.

      They both should take the time to write down specifically what needs to be done.

      Could you write down all of the things that you did in the 10,000+ hours of study, learning and doing that it took you to acquire the expertise and even if you could does the company seriously expect that bob from accounting can just pick up this "code thing" no problem?

      It has been my experience both are going to end up very unhappy if they do not.

      A more experienced contractor, if they did agree to this, would be wise to avoid open ended commitments. Exactly what will be taught and how should be specified in the contract. Anything not in the contract won't be taught. Whether or not the student successfully learns the materials or not has no bearing on whether or not the contractor gets paid. Finally, there is a limited amount of time available for questions and or a limited number of questions allowed after instruction is complete. Anything more than that and you're asking for trouble. Personally, I'd quote them such a high rate on this contract that hopefully they'd take the hint and quit pursuing it.

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

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

    51. 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
    52. Re:You're a contractor. Your "secrets" are yours by Anonymous Coward · · Score: 0

      A comp sci degree is several tens of thousands if not hundreds of thousands of dollars in the traditional setting in terms of cost, a verbal agreement is not binding in such an instance as contract law limits the value of a verbal agreement in any state to a few hundred.

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

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

      Fantastic reply. Mod up to 11.

    55. 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
    56. Re:You're a contractor. Your "secrets" are yours by Anonymous Coward · · Score: 0

      How do ANY of us think we know what we're talking about, especially "within scope"! Have ANY of us seen his contract?

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

    58. 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
    59. 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
    60. 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. Easy answer... by Anonymous Coward · · Score: 0

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

    1. Re:Easy answer... by Anonymous Coward · · Score: 0

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

      Perfect!

  3. 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. Re:Be cooperative by Anonymous Coward · · Score: 0

      And the post crash and burn contracting rate is triple the original rate.

    4. Re:Be cooperative by Anonymous Coward · · Score: 0

      If you have to train your cheaper replacement, you make sure he will crash. Use every excuse to delay or interrupt the "training". You supposedly have some real work too - allow it to get in the way. If you get too much time, train him in great detail. But only in the least important parts! You will seem ok, and it will seem like mr. Cheap aren't up to your standards. which is important that they learn.

    5. Re:Be cooperative by Anonymous Coward · · Score: 0

      Interesting, how people here contradict themselves. First they argue about morals and professionalism, then they say: "that newbie will fail and they will call you back any way." If that newbie fails after your "teaching" it means that you did a bad job as a teacher.

  4. 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 Anonymous Coward · · Score: 0

      Before you assume companies want to pay $80K/year vs $100/hour you might want to check with your accountant.

      That $80K/year + benefits is not a deductible expense. That $100/hour likely is.

      Makes the math much different - if you have been billing 20 to 30 hour weeks there is good chance you ARE cheaper.

    6. Re:As a contractor by Anonymous Coward · · Score: 0

      Why would they call you if they've got an $80K in-house developer (trained by you :-) ???

    7. Re:As a contractor by Anonymous Coward · · Score: 0

      Indeed, if the OP gets injured in a car crash, will that client pay his bills?
      There is nothing wrong in protecting your interests.

    8. 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.
    9. 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
  5. 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.

    3. Re:You train them by Anonymous Coward · · Score: 0

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

    4. Re:You train them by Anonymous Coward · · Score: 0

      that's what they want you to think as they suck out your brains to go on the cheap. Later noob, see you in the funny papers.

  6. 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();
    2. Re:Let the new developer lead the training. by Anonymous Coward · · Score: 0

      Yeah, because spending the company's money training a guy you're going to steal is in no way going to end badly.

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

  8. 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 Anonymous Coward · · Score: 0

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

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

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

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

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

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

    6. Re:I love doing that, actually by Anonymous Coward · · Score: 0

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

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

      Oops. Clicked too soon. Continuing....

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

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

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

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

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

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

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

    11. 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
    12. Re:I love doing that, actually by Anonymous Coward · · Score: 0

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

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

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

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

    17. Re:I love doing that, actually by Anonymous Coward · · Score: 0

      Maybe. If the dev manager isn't the one signing the check or you have no current business relationship, with that person, that person already could give a flying fuck about you. The dev mgr may or may not advocate for you, but at this point it may have little sway at the money level, who sees simply an ongoing expense that just got reduced and his boss wants to go to the Bahamas soon and now can. Granted, if you're doing minor bug fixes and maintenance now, they could feel comfortable enough handing future work to anyone else even if the FNG replacing you can't get up to speed. Just look at ERP (eg, SAP, etc) consultants...they get the initial implementation out the door, but nothing stopping the company from hiring someone else to do future work and support.

    18. Re:I love doing that, actually by Anonymous Coward · · Score: 0

      As a software manager, I love to hear the attitude of "put myself out of a job". I WILL hire you again if you have the right attitude, and it may be at the current company or not. A contractor is hired to provide a deliverable that is understandable to the company hiring you. If you need to train someone it its nuisances, and be paid to do it all is good.

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

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

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

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

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

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

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

    3. Re:The Dilbert Way by Anonymous Coward · · Score: 0

      http://dilbert.com/fast/2004-02-07/

      Dilbert Fast. It's for people who aren't total fucking retards.

  10. 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
    4. Re:As Wil Wheaton says ... "don't be a dick". by Anonymous Coward · · Score: 0

      when you're getting punched in the gnads, you don't give them GPS coordinates

  11. Play it smart, you have the expereince by Anonymous Coward · · Score: 0

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

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

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

    Get to start the whole game all over again. LOL

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

  13. 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"
  14. Give that college boy a IT / codeing skills test by Anonymous Coward · · Score: 0

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

  15. Re:Be cooperative but by Anonymous Coward · · Score: 0

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

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

  16. 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
  17. 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!

  18. You're a contractor by Anonymous Coward · · Score: 0

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

  19. 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?
  20. 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).

  21. 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!
    1. Re:Same Way You Should Do Everything Else For Them by Anonymous Coward · · Score: 0

      and the world is full of unicorns and rainbows. In real life, they're dicking you over, ,you don't help them to do it.

  22. 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 Anonymous Coward · · Score: 0

      Sorry for pissing on your parade, but if the client has hired somebody else to replace you, you will be the last person they consider for future projects. People learn programming skills very quickly and that rookie student will become a seasoned pro in a year.

    4. 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.
    5. Re:Be a Professional by Anonymous Coward · · Score: 0

      Why do you think that student is a "monkey"? He might be as smart as you are, but just willing to work for a lower pay.

      In any case, you never really know what considerations have led the client to his business decision to hire him. And by the "client" I mean the business owner. Not the IT director, not the product manager, but the person whose name is on the corporate charter, - the guy (or gal) who signs the checks, so to speak. Which leads me to the next question I wish I could ask all those people who give advice here: do you sign your own paycheck? The answer to this question makes huge difference.

      I can spell out a bunch of realistic follow-up scenarios of you being screwed up in the OP's situation, even without assuming that the client is dishonest. It's business. Your business contact thought he would have a budget for the next project, - next day he finds out that he doesn't. Their boss woke up one morning and decided to have a Web-2.0 thing by the 1-st of next month, so the management scrambled and hired you, and you delivered a top-notch product. Now that business owner is looking at the sales figures and he doesn't see any difference, - here go your "future projects". As a matter of fact, dangling "future work" in front of contractors is the oldest trick in a book of how to get a discount.

      I don't mean to say that you have to be "mister nyet", but you have to protect your interests, because nobody else will do it for you. Think as a businessman, not as a programmer or a community leader.

    6. Re:Be a Professional by Anonymous Coward · · Score: 0

      This is the amusing open source conundrum: on one hand, we tell everyone to open source their code and sell their services in modifying and applying the code for clients (because information should be "free"), but on the other hand, we tell the contractor to hide his secrets and block them from using another party to modify the code.

      You can't have it both ways! You can't say "code must be open and free" but "services must be secret and locked up". You might as well just close source and sell the closed source stuff. Talk about hypocracy. I realize you are saying what I am saying, but this whole thread is tough to swallow.
             

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

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

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

    1. Re:Teach Him by Anonymous Coward · · Score: 0

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

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

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

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

    as a joke."

    --
    Solving Unix problems since 1989...
  28. 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."
  29. *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!

    2. Re:*shrug* by Anonymous Coward · · Score: 0

      You were not on the team in the first place. They just tried to get something from you for free, and when it failed they said something nasty. Don't be upset about it.

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

  31. Shoulders by Anonymous Coward · · Score: 0

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

  32. Disgraceful by Anonymous Coward · · Score: 0

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

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

  33. Look for another job by Anonymous Coward · · Score: 0

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

  34. 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 Dahamma · · Score: 0

      I take it then you've never actually been a contractor? Here in the real world, they get asked to do stuff that's not in the contract. That's why you *have* a contract - to limit the scope of work.

      Ad hominem followed by actually supporting my point? Impressive for one paragraph. Yes, he's a contractor and has a contract, that was the point. And yes, I have done contract work, and when asked to do *significant* additional work I billed for it. If this were an extra hour of his time, big deal, he wouldn't be posting the question on slashdot.

      Learn the difference between assumptions and facts.

      And learn that assumptions are the only reason the human brain functions in any meaningful capacity at all. You may not realize it, but you make thousands of assumptions a day. And why does that work so well? Because they are almost all correct.

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

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

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

    11. 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."
    12. 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."
  35. Don't hold onto the beans.. by Anonymous Coward · · Score: 0

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

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

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

  36. This discussion... by Synerg1y · · Score: 1

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

  37. Personal Experience by Anonymous Coward · · Score: 0

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

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

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

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

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

  38. Keep looking forward by Anonymous Coward · · Score: 0

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

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

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

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

  39. The time to do so by Anonymous Coward · · Score: 0

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

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

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

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

    1. Re:How to have a safe job by Anonymous Coward · · Score: 0

      It's no different for "permanent" hires. You're paid to do a quality job to further the interests of your employer. So far, this attitude has served me well even though I've had to train my replacements.

      Now, I hope my employers have their customers' interests in mind the same way instead of just trying to make a buck...

  43. Open Kimono by Anonymous Coward · · Score: 0

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

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

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

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

  47. Do your best to help by Anonymous Coward · · Score: 0

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

  48. Lets look at the possible long term outcomes by Anonymous Coward · · Score: 0

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

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

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

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

  49. negotiate support by Anonymous Coward · · Score: 0

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

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

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

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

    1. Re:They hired you as a developer by Anonymous Coward · · Score: 0

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

      FTFY

    2. Re:They hired you as a developer by Anonymous Coward · · Score: 0

      more responsibilities equals more pay

    3. Re:They hired you as a developer by Anonymous Coward · · Score: 0

      This is the amusing open source conundrum: on one hand, we tell everyone to open source their code and sell their services in modifying and applying the code for clients (because information should be "free"), but on the other hand, we tell the contractor to hide his secrets and block them from using another party to modify the code.

      You can't have it both ways! You can't say "code must be open and free" but "services must be secret and locked up". You might as well just close source and sell the closed source stuff. Talk about hypocracy.

  52. Charge, but be helpful by Anonymous Coward · · Score: 0

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

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

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

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

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

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

  53. 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 Anonymous Coward · · Score: 0

      it doesn't matter if they have you writing code, writing a manual, teaching, or shoveling shit.

      Actually it does matter. Try contracting a surgeon to work at a hospital, and when they turn up telling them they have to clean the operating theater. The tasks assigned must be in line with the job description in the contract.

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

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

    4. 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.
    5. 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
    6. 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.

  54. If the new guy is good, he'll move on.... by Anonymous Coward · · Score: 0

    And they'll want you back.

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

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

  58. Train him well and retain trust of client by Anonymous Coward · · Score: 0

    I've done consulting for 15 years for a wide variety of industries including the high end firms (rates ranging from $250 to $388/hour). These rates are simply unaffordable and unsustainable in the long term and your clients should and have the right to demand a great transition. You should increase trust by doing a great job in the transition and take pride in doing it well. Don't just put the onus on the newbie to ask the right questions. Go out of your way to document things in a way that will support the transition, and do it well. For instance, if you have a database that your code relies on, try using a database documentation tool (such as DBDesc) and enter the required database metadata to enable auto-generated high quality, hyperlinked documentation for every table, view and field and even give them some useful diagrams -- and of course bill them for that. Create a nice table of contents with links to the various needed documents so they can quickly find the info they need. In my experience this sort of work is perceived as high value and the client won't mind paying for it. In my experience doing great transitions greatly increase trust, and results in more work from the same client because they know you are not out to bill them as much as possible on each project. For some this is counterintuitive but I've seen this virtuous cycle unfold as described many, many times.

  59. 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 Anonymous Coward · · Score: 0

      There are no such standards! You have to explain how to use your software, but when it comes to the internals - it has to be spelled out in the contract. When you buy a new car, does the manufacturer teach you how to build a car? Do Microsoft or Apple teach you how to write an operating system? Don't be an idealistic pushover. Standing for your business interests doesn't mean being unprofessional, and if that client does not welcome you because you protect your interests - that client is not worth working for. Look for another one.

      "They have been a client for years" - so what? That fact doesn't guarantee in any shape or form that they will be your client tomorrow.

    2. Re:High road by Anonymous Coward · · Score: 0

      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.

      If you help dicks that are dumping your ass, then I'm glad it makes you feel like a professional because you are truly an idiot.

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

  60. 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
  61. 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."
    1. Re:Path to promotion by Anonymous Coward · · Score: 0

      Why don't you just ask them whether you are indeed being promoted, instead of trying to project your philosophical ideals on a real world situation?

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

  63. 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?
  64. 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.
    1. Re:Write by Anonymous Coward · · Score: 0

      Well known places? Like in the SOURCE CODE? No one has the guts to rip good comments from the code itself, and if you have the best commented code ever, with your name on it, that's the best future advertising you could have, as it won't get lost.

  65. Wrong angle. by Anonymous Coward · · Score: 0

    By posting this message here on Slashdot I'm going to assume you lack sufficient balls to directly call the client out on their shenanigans (which is my recommended/preferred method of dealing with a situation). You'll find that calling shenanigans on the client will often be the most direct route to solving the situation.

    BUT if you must play it close to the vest - here is what you should do:

    First thank your client - because by asking you to educate another it is anecdotal evidence of you reaching a mastery level of skill - which *should* correlate to a higher billable rate.

    So in a polite, brief email - you should inform your client that you've been giving them a much lower rate - in part because you enjoyed working with them, and along the way you had the freedom of moving as fast as you could, without needing to consider how you should go about keeping other people in the loop. Since the status quo has been altered and it is outside the original scope of work in the contract. You are now in the unenviable role of mentoring/possibly debugging another persons work as such your new rate is 30% higher - and if you find yourself having to babysit the young tyke the rate may go higher, or you may terminate the contract - remind them you have other clients who are requesting more of your time.

    If the client grumbles (and they will) then simply say that your life's calling was to mentor/audit/steward young padiwans you would have pursued a different career than contract programmer. Remind them you would have taken a job with a larger company that had better benefits, and more stability, and stock options - not pursued the nomadic life of a contract programmer. If you wanted to code in tandem you would have chosen a partner - but instead they chose your new dancing partner, and as such this is now the new rate.

    If the client is really unhappy with your level of work or you aren't as good as you think you are - then you should expect to get fired on the spot.
    But if you don't get fired - then you should immediately begin plans to sabotage the young bloke. Crush him under your iron fist. Be sure to leave the billable rate higher after the little tyke fails and the body been properly disposed of -- if they hire another n00b then raise the rate again (be sure to remind the client how much time you wasted on the last guy) each time ratchet down productivity by about 7%, and also increase the poor coding practices by the same ("job security") .. eventually they'll figure it out. A great spot to use this black magic are on input variables, database column names -- one of my particular favorites is to negate a database column and it's purpose. Beating the slaves does not necessarily correlate to an increase in productivity.

    One of the most beautiful examples I've ever seen of how to sabotage the next guy is in the eBay trading API.
    It's a *critical* response status that is in camel case -- it says: NoPaymentError -- depending on how you read it -- it could mean "Oh Shit -- NO PAYMENT -- ERROR!!!" or "All's well - there was No Payment Error" -- little gems like this insure the next guy is screwed. It's critical, but also obvious, but also totally non-obvious. The documentation for the field simply says "Will be set to the payment status of the order"
    Be sure to assemble that string in different parties of the code ex. "No"+"Payment"+"Error" so it's not grep'able, worst case - make it mean something different based on the one or more other columns in the same table.
    If you ever feel threatened, change the meaning of it.
    Use lots of cryptic regular expressions whenever possible.

    Clients who trust their entire project to a single developer without peer audits, documentation review or formalized testing save *A TON* of money - but they also assume a huge amount of "technical debt" which accrues with interest, and comes due the moment they try and pull shenanigans like this.

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

    1. Re:You're now officially the BOFH with a PFY by Anonymous Coward · · Score: 0

      That sounds like a great way to either get fired or be on the receiving end of a lawsuit.

  67. service contract it must become by Anonymous Coward · · Score: 0

    You go form an hourly contract to a support service contract. $125/hour minimum. take your new free time to get some new customers.

  68. 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.
  69. Welcome to contracting by Anonymous Coward · · Score: 0

    This is how it always works at government agencies. They have in-house staff that can do the job for 50% of the cost of contract staff, but they have civil service exams which prevent managers from installing inexperienced friends. There are established rules and procedures for discipline and relieving employees that do not apply to contractors. You can't fire an employee because he irritated you, but you can end a contractor's contract at any time. This drives poor quality managers the contractor route so they can hire inexperienced friends and colleagues, have the in-house staff train the inexperienced contractors that are billing three times what the in-house staff cost, and generally treat the contractors like dirt without fear of having a grievance filed against them.

  70. my perspective from a long career by Anonymous Coward · · Score: 0

    I encountered this situation more than once in my life already. I was told by my boss at the time very directly that he was going to replace me with a team of people from India. He figured five Indian programmers overseas would amount to my skills. He flat out told me that I might as well get paid to manage / teach them to replace me since it was going to happen whether I liked it or not. He was pretty blatant about this, and not shy to insult me in this manner even though I had created their entire product from scratch by myself. I simply gave my notice and offered them two weeks, and they were shocked. On my way out they had brought an Indian contractor in and had him sit down with me and I helped him catch up to speed as best as I could out of professional courtesy. The contractor asked me for my email address and asked if he could contact me about the project after I was gone. I told him he could not contact me after my contract was through. And, he was stunned and said, "But, it's the professional thing to do." To which I replied, "No. The professional thing to do is to walk away." I got another job immediatley, was paid well and not required to undermine myself. I've been happy ever since. I also had another situation similar to this a very long time ago after I got out of college and had a job working with a private organization that developed security clearance-related software. They replaced me with an engineer from India who had only lived in the U.S. for less than two weeks. I know this because on my way out I asked him how long he had been here. I was really surprised by his answer due to the nature of their work. Anyways, don't ever let anyone step on you, have some balls. Companies don't care about you, you owe them no favors beyond what they're paying you to do within reason. That's my recommendation.

    1. 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
    2. Re:my perspective from a long career by Anonymous Coward · · Score: 0

      I'm the parent poster, just came back to reply to this. I tried that tactic once and it backfired on me, they felt I was trying to fleece them and it soured any future interaction with them. It's better to just let it go and if they love you they'll come back I've found.

  71. Charge 2x or 3x to train the guy by Anonymous Coward · · Score: 0

    At the end of the day they have the right to replace you at least in good old America where our Republican Party has worked hard to weaken labor rights(rant over). Having said that, training requires additional effort. So tell them sure and do a 2x or 3x raise in your rate till he/she is trained. When they replace you then if they need you charge them the 2x or 3x to assist.

  72. Eliminate your job. by Anonymous Coward · · Score: 0

    Your job as a contractor is to eliminate your job. If you're good at what you do you will keep trying to eliminate your job and they will keep you on for the next project, and the next, etc. The wrong attitude is that you want to keep the job going as long as you can, that's a sure way to get black listed and find out they've replaced you with someone who is half as good, but "gets it".

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

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

  76. negativity by Anonymous Coward · · Score: 0

    I do understand why some of you value your knowledge, as it is the tool of which you live. But having done many many years of things outside of the scope of my contract, I have to say your going to write yourself right off the job. Bottom line they will get rid of you and see if the cheap kid can float. If not hire somebody on the spot at a higher pay rate than yours to deal with it and never look back.

    Having said that...I kinda enjoy helping a new kid in the field. Any of you can attest the experience gained from an experienced pro in 2 weeks to somebody green can make the difference between an uprising star and somebody viewed as incompetent. Ignorance is not bliss, the more you know the more you realize you don't know.

    Love the hours, get paid, help the kid, feel good about putting somebody on the right path for a decent living.

  77. 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."
  78. Re:You're a contractor. Your clients are *everythi by Anonymous Coward · · Score: 0

    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.

    More likely the client will ask the new coder to make changes, he'll blame any mistakes, bugs, etc. on the original poster and the bosses will think he's (the original poster) is a crap developer. I've seen this happen many times to contractor friends.

  79. 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.
  80. I would by Anonymous Coward · · Score: 0

    1. Directly ask them what their intentions are with the new programmer.
    2. If it is to replace you and you want to work there then point out the quality and experience you bring
    3. If it is to replace you and you don't want to work there or they don't listen to you on point 2. then look for work elsewhere.

  81. Never do it more than minimal. by Anonymous Coward · · Score: 0

    If they wanted in house they should have had a guy with you from the get go.
    This guy wont even be able to code. Mark my words.

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

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

  84. Your Job Replacement? by Anonymous Coward · · Score: 0

    You are being paid to write code, not to train up the staff - for FREE, tell them to go fuck !

  85. Document all interactions by Anonymous Coward · · Score: 0

    Be sure to document topics covered. Answer all questions that new guy has and be sure to document that all Qs where answered. Your reputation depends on it. Once you leave and things start falling apart the blame game will begin.

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

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

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

  89. short the company stock by Anonymous Coward · · Score: 0

    substitute the source code for imaps

  90. Write Three Letters by Anonymous Coward · · Score: 0

    Give her the following three letters, with instructions to open and read one per each major incident, in order:

    Letter 1: Blame me.

    Letter 2: Take responsiblity yourself.

    Letter 3: Write three letters.

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

  92. Do your best by Anonymous Coward · · Score: 0

    You should do your best to train the person effectively, acknowledging your client's intent, and assuring them that, despite your knowledge of the likely outcome, you are going to do your very best to bring them up to speed. At the right time, you should have a frank conversation with your client. Once its clear that you both know what's happening, you should work together on things like a plan and a timeline.

    Go over the design with the new guy, go over the code with the new guy, help him create documents that will help him when future problems come up. Document the "first places" to look for certain kinds of problems.

    You should feel free to suggest to your client why you think that replacing you with New Guy is a mistake, but make sure to reassure them that you will not only not obstruct, but be as helpful as you can be during the transition.

    Your professionalism and reliability are part of the value that you offer -- the reason why you are worth hiring. You should either do the work or not do the work, but you should never intentionally do less than your best because you are unhappy with the situation. If you don't think that you can put everything into the training, then you should have a frank conversation with your client about what you can or can not offer in the way of said training.

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

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

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

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

  97. Depends what you are contracted for. by Anonymous Coward · · Score: 0

    If you are contracted to produce code, and teach them to use it, do that. Assuming teaching your direct, lower-cost replacement wasn't part of the original contract, you can say NO. If you want to do it, make sure you negotiate a contract for that. Don't do it for free. Helping yourself become obsolete is not a service you have to provide. Don't ever feel you are under any obligation to this, unless it was part of the original contract.

    It's just like an employer saying that since you spend some late nights in the office, could you do the janitorial work, too?
    Of course not!, (unless that was part of the original contract... and that would be an interesting contract...).

  98. You don't have a choice by Sla$hPot · · Score: 0

    If you refuse to cooperate you will lose in the long run. Bad will never earns you respect.
    I you manage to replace your self, then you have added value to the company. And they might come back for you when they need help in the future.
    If you are as good as you claim. Your replacement might call for your assistance on new project, since your are viewed as a mentor. Someone you can rely on.

    1. 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.
    2. Re:You don't have a choice by Sla$hPot · · Score: 0

      The original post was written by a contractor.
      As a contractor you need to play differently than an intern or a regular employee.
      Respect is important, it sets the bar for how much you can ask for when doing assignments.
      If you are not respected by the company, you won't receive any calls. It's as simple as that.
      If you work as a regular employee, things are a lot different.

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

  100. 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!
  101. think outside the box by Anonymous Coward · · Score: 0

    if you can get a copy of the young kids resume, do what you can ,then 6 month to a year from now, get his resume to a head hunter. Then kid takes a job elsewhere and they come back to you for more work.

  102. Just Say No by Anonymous Coward · · Score: 0

    Tell them flat out that you are hired to code and not hired to be a teacher or a baby sitter. Just say no. If they press it get a crossword puzzle and relax. Can they afford to fire you?

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

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

  105. Its your job by Anonymous Coward · · Score: 0

    I spent 10 years working myself out of a job at every client site I went to. It's why you get more work. Clients don't recommend you if you have to stay and hand-hold their systems forever, they recommend the guy who came in, fixed things, made it better, and left - or if relevant - continues to fulfill a role that they want.

    If you have concerns about the project/idea they are proposing (in this case, concerns about the candidate they want to use), then you raise those concerns, and if they say "do it anyway", you have two choices, walk away, or do it. In some cases, the right answer is "walk away", as being associated with a disaster, even if you predicted it, is a bad thing. But in this case, you train the guy. Any "disaster" aspect will fall on his shoulders, assuming you train him well.

    But my main point is, your job, as a contract IT support, is to work yourself out of a job. Sure, there is ongoing work, but it should be minimal, and doable by anyone. The reason they'll keep you doing it, is you do a very good job.

  106. Make your customer successful by Anonymous Coward · · Score: 0

    I always try to make my customers successful when hired to do a job. Everything is in scope if its within reason for your compensation.

    Even if this particular scenario means the end of your gig, you'll leave with a good reputation with the individuals you work with and create unpredictable numbers of new opportunities in the future.

    And, given what I'm heading here, it sounds like the kind of situation where there's no way they can get rid of you in the end in any case. If you do everything you can to deliver their requests, they will feel good about deciding to keep you on board and value your work more.

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

  108. Antipodes rule OK by Anonymous Coward · · Score: 0

    Done it 3 times in my career. They were always Australians, sunny, 'No Worries', and the annoying thing was that they always did better, simpler. Come to think of it, what's 'management succession'?

  109. 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.
  110. 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.
  111. 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.

  112. Bah, how boring by Anonymous Coward · · Score: 0

    It is AC's like this that are the bane of IT, little nobodies who are better at reading contracts then at coding.

    A good coder, or in my case, a good developer has no competition to fear. Because sadly, there are not that many good developers out there. A good developer can be easily spotted, he/she is the guy/girl who doesn't fear positive discrimination to bring women/foreigners/kittens into the work place because to him/her/it they are NOT competition but co-workers who can help reduce the workload somewhat. If you are any good, I can find you a job before the day is out... of course... if you are any good... so can you. Only the not so good are jobless.

    So... what would I do? I would train the guy, if he is any fun to train. I he isn't, I wouldn't and I also would simply say so and not take a contract to do so. It is the only way to remain sane in this job, say NO to jobs you don't want to do. Only do those jobs you enjoy doing. If you are any good, you can pick the jobs.

    Because the trick to become good, apart from having some skill, it to be enthusiastic about your job. It doesn't matter what it is. I seen supermarket checkout workers who enjoyed their job and were very good at it because they enjoyed it and treated their customers friendly and worked fast. And then you are the one who gets the bonus hours where you are payed more and are promoted to team lead.

    Same with a coding job, if you enjoy the work, you are going to do your best and be better then someone just filling the hours. But you can only do that on projects you enjoy.

    So. Train the guy if you enjoy it, don't if you don't. And don't play political games about it if you don't enjoy playing political office games and do if you do.

    As for how much you can train someone and whether it is realistic for them to learn everything you know... prepare to be disappointed. I just took over a project from a guy who also though training me was going to be hard.

    Within a month he was gone and so was most of his code and all the performance problems with it. It might shock you, but even if you are good at your job, you are not unique. Lots of other people are good too. You are replaceable.

    And on a further note, if your system requires years of training to understand... maybe you should have designed it better and documented it better. Frankly if I hear someone brag how hard it is for a new person to learn their system what I hear is "I wrote spaghetti code!".

  113. If the newbie crashes and burns on HIS system? by Anonymous Coward · · Score: 0

    Really? I wouldn't. They hired him to build a system not to build himself a little empire. If the newbie crashes and burns on HIS system, HE designed a bad system. If I ask you to build a car and then a newbie driver takes it out and crashes because the brakes are in the boot, I will indeed need you back. IN COURT!

    People who think the newbie is going to crash and burn when they are booted out are sad little men who have an over-inflated ego. Your ex-employer will do fine without you, your ex-girlfriend will do fine with you and when you have run away your parents will NOT be SOOOO sorrry, they will dance in the streets to celebrate their regained freedom.

    If your system crashes and burns, they won't blame the newbie. They will blame you. Your system, your ass.

  114. "Training developer" == "Engineering support" by Anonymous Coward · · Score: 0

    The "training developer" requirement effectively means "engineering support" (seen offered by a big sw vendor) which is a totally different service from the contract sw development, very possibly not covered by the OP's original contract. Of course engineering support may be gladly offered by the OP at its respective terms.

    The WTF in this situation is the client asking the contractor to voluntary extend his scope in order to reduce his own fee, while the client's total work requirement is not reduced, and of course while keeping the quality of service constant at the level provided by the contractor at its prime rate.

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

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

  117. Cost of "saving" money by replacing professional by Anonymous Coward · · Score: 0

    Reminds me of when I was replaced at a company because Management foolishly thought they could "save" money by replacing my 20 years of experience with a fresh college graduate. The day after I was gone, the new guy quit. End of the story: they ended up replacing me with 2 full-time programmers.

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

  119. you don't by Anonymous Coward · · Score: 0

    You don't... Plain and simple -- this kid is your direct competitor. Only reason to do this is to make a present to your employer (assuming you'll get smth in return). Otherwise -- not. We work for corporations -- soulless profit-optimizing machines, it is imperative to operate with them on similar terms when dealing with them (or be at disadvantage).

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

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

  122. Find a better option by Anonymous Coward · · Score: 0

    I agree with every comment I read about remaining professional and adhering to the terms of your contract, but if training a replacement is not in your contract, then I think it is actually a breach to ask you to do it.

    They may be/have been a really good client, but they are creating a better option for themselves. There is nothing wrong with that per-se, but you should do the same. Although there must be far more eager young graduates than there are bigger and better clients, and that makes the prospect daunting, don't kid yourself. They have asked for a lot more than an expert senior coder. They are asking you to hand over some (presumably) very valuable intellectual property.

    IMHO The sooner you find - or cultivate - a better option for yourself, the better. Whether it is a new client, starting a business, or something else, now is the time to do some soul searching and get moving.

    Is it just me or do others bristle at the term "secrets"? If I have "secrets" (like my bank routing number), they are secret for a good reason.

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

  124. Heisenberg!! by Anonymous Coward · · Score: 0

    Do it the Breaking Bad way.

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

  126. Hmm. I'd stick to not doing a lot of training... by Anonymous Coward · · Score: 0

    Is training going to look good on your resume? Or is it a waste of your time?

    If you want to keep getting called back to work clean up after this noob, keep training him.

    Or you could either re-negotiate with them since training is not your profession, or get out now. If they didn't mention this would be part of your work on their project, they have no reasonable expectation that you should do it. Is the "other tasks as assigned" loophole usually included in the legalese on a contract gig?