Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Assume that you are working at a company as a sole developer, that is producing a single piece of software.

Now assume that a fantastic job with better pay is offered to you.

At what point in the development cycle for the project you're on is it unreasonable or uncouth to leave your current position, specifically as a sole developer on the project?

share

locked by maple_shaft Jul 30 '13 at 10:56

This question exists because it has historical significance, but it is not considered a good, on-topic question for this site, so please do not use it as evidence that you can ask similar questions here. This question and its answers are frozen and cannot be changed. More info: help center.

1  
I would say at the stage that both agree your boss and yourself. I think you can go between 20 to 30% above your contract notice period. If your boss is impossible to satisfy, the answer is probably at the end of your notice period in the contract. –  user2567 Dec 13 '10 at 16:00
14  
Work on that acceptance rate –  Matt McCormick Dec 13 '10 at 19:58
20  
@Matt McCormick: Hi Matt, thanks for the comment. That has been discussed in depth here, but primarily on meta. Relevant questions concerning acceptance rate are here: meta.programmers.stackexchange.com/questions/105/… and here: meta.programmers.stackexchange.com/questions/1/… but there are more. You haven't posted an answer yet. If you have one I'd be happy to hear it and vote it up. –  Steve Evers Dec 13 '10 at 21:15
1  
@Matt and Snorfus: But there are 17 reputation points at stake. Think of the economy! –  Mark C Dec 14 '10 at 6:22
2  
@IAdapter Maybe that's legal in America, but not in most European countries. –  quant_dev Apr 16 '11 at 20:00
show 5 more comments

15 Answers

up vote 100 down vote accepted

At what point in your life is it unreasonable for your employer to lay you off?

share
3  
While it is smart to look out for yourself (Which is basically what I think you are saying)... you also have to look out for yourself by not burning bridges unnecessarily. What scares me is that this wonderful nugget of truth is up-voted so heavily. –  WernerCD Dec 13 '10 at 21:53
10  
@WernerCD: It's just business. I'd give the company I was working for a chance to match the offer, and if they chose not to do that, then I'd shake their hand and tell them I'd be happy to help bring my replacement up to speed, but that they'd have to pay me if they hired him outside of my two weeks notice. –  Satanicpuppy Dec 13 '10 at 22:00
20  
A very good point. Its not a romantic relationship--its a job. Don't burn bridges, but don't avoid advancing your career out of a fear of offending. –  Stargazer712 Dec 13 '10 at 22:13
11  
I've worked for companies who were very touchy feely, big on staff morale and did everything the book says you should do to keep staff happy BUT when they lost a big account (as in 60%+ of revenue big) they had no hesitation in losing people. As @Satanicpuppy says, it's business and don't forget that. Or at least if you do then remember your loyalty will only ever be reciprocated while it suits them. –  Jon Hopkins Dec 14 '10 at 9:29
4  
I disagree with this 0 - 1 mentality: either you loyal till death, or you completely don't care about a relationship. A good employer will eat some short-term cost to prevent layoffs; yet, they will lay you off when times are really hard. Similarly, a good developer will give up some good opportunities to stay and move a project to a phase where it's easier to hand over; yet, he will leave if the new opportunity is just too good to pass. –  max Apr 30 '12 at 18:01
show 6 more comments

You're either indispensible or not.

If you're the former, there's no "good time" to leave – but that doesn't mean you shouldn't. Your employer should be taking steps to ensure that no single member of the team can get hit by a bus and derail the project. If they aren't, the problem is on them, not you.

If you're the latter, any time is a good time to leave.

In both cases, no time is any better than any other. They'll all be equally disastrous, or merely inconvenient. Professionally speaking I'd give them whatever you're contractually bound to, but at least 2 weeks notice (I gave my last employer 4 because they're a small shop and I felt bad about leaving a team I loved working with.) Spend that time transferring knowledge and finishing up anything that can be neatly wrapped up in that time.

The caveat to this is if you're working in a startup and you're a founder or other equally vital member of the team without whom some financing or major sales deal is going to fall through, realize that while you may not be obligated to stay, nobody's ever going to want you to be their cofounder again.

share
1  
+1 very good answer, it's not "cool" to leave in dust the people with who you've enjoyed working in the past. –  ComputerSaysNo Dec 14 '10 at 10:04
3  
It's amazing how indispensable you can be when you are going to leave. But never when it's salary/bonus time. –  Martin Beckett Apr 30 '12 at 17:15
add comment

At the point your contract forbids it.

You should honour your contract but beyond that you have no obligations. This may seem harsh but I promise you that if times were tight the company would show little loyalty when it was thinking about letting people go and you need to have the same attitude.

Personally I'd speak to the new company, explain the situation, see if they'll wait a little longer for you than they might have wanted (without you endangering the role and the relationship). During that notice period work your socks off on the project for your existing company if you feel you owe them that but beyond that you need to think of yourself.

The exception to this would be if the company has been very loyal to you (and by that I mean genuinely above and beyond) but I'm guessing that that isn't the case here.

share
add comment

In my experience all employment contracts are "at will" - that is, the employer can terminate employment at any time, without notice and without cause. As some past employers have been fond of mentioning, "You have no right to a job!". And that's fine.

But on the flip side employers have no rights to the continued service of their employees. You can bail at any point if you want to, and employers should have no expectations otherwise. If you find a "better job" - i.e. one which pays better; where you're not harassed for being gay/straight/male/female/short/tall/ugly/pretty/scrawny/Porky/Daffy/Bugs/Elmer/etc; where you don't get called at 2 A.M. every night; where you don't have to drive 100 miles to/from work; or whatever you consider "better" - perhaps including no job at all - you should take it. Nobody in a business should be indispensable - I believe it was the management guru Tom Peters who recommended immediately firing anyone considered "indispensable" on the grounds that they were just a problem waiting to happen, and the pain of losing said person was better to be faced now than later. And likewise, no job is indispensable. If there's a "better" offer out there, take it. In my experience you're less likely to regret the things you've done than the things you didn't do.

Share and enjoy.

share
2  
+1: I am constantly being harassed for bing Elmer. I think it's a load of Fudd, but I deal with it anyway. –  Steve Evers Dec 14 '10 at 14:50
    
I always wondered what the flip side of 'at will' was. If they can fire you on the spot and march you out of the building - are you allowed to leave with no notice? If you're an airline pilot, can you resign halfway through a take-off ;-) –  Martin Beckett Apr 30 '12 at 17:12
    
@MartinBeckett - leaving with no notice is "burning bridges" but, yes, it's the flip side of "at will". Employers can tell you to get out, now, and you can toss your badge on the desk and say "Adios!". Note that getting that last paycheck, etc, can get sticky if you bail without notice so plan your emotional crises in advance, please. –  Bob Jarvis Apr 30 '12 at 19:17
add comment

I think if you are getting ready to go live in the next two weeks with a major project, then a good company would wait for you for a up to three weeks while you go live and handle any intial problems. After all they wouldn't want you to abandon them at that stage.

No matter when you go. leave documentation so someone can pick up where you left off.

share
    
+1: So within 3 weeks of some important event? What about 4? 5? In your opinion, what is the cut-off (all other things being equal)? –  Steve Evers Dec 13 '10 at 16:37
1  
I'd say with in 3 weeks of the critical event would be the cutoff, people won't wait for you much longer than that (you need at least a week of initial support time). –  HLGEM Dec 13 '10 at 16:39
add comment

If you are not under contract, you should (in theory) be able to leave at any point in time. That is what you can do. Now, on to what you should do.

  1. Don't Burn Bridges - Explain to your current employer why you are leaving and that it's not personal. Be sure to give adequate notice (depending on the scope of the project 2-6 weeks) and make sure you leave on good terms. You never know when or where you might meet again.
  2. Document, document, document - If you aren't already documenting your work, shame on you. Beyond the personal help documentation affords you ("WTH was I thinking when I wrote that!?"), it allows your company to move on in your absence. Imagine if you died suddenly. How would your company deal with that situation? This is honestly no different (from the company's perspective. You're still breathing and getting a raise.) and they should have no problem finding a competent developer to replace you.
  3. To Bargain or not to Bargain - You may be in a situation where you are offered more money to stay with the company rather than leave. Or maybe you want to use this offer to make them understand your worth to the company. How you deal with this situation is up to you, but let me offer a few words of advice. If you do twist your current companies arm and get more money, understand that there can be repercussions of this. They might see you as someone who is not a team player and only cares about himself. This makes it so much easier to fire you.
  4. I'll be around - No matter what happens, make them aware that any help they need, you will do what you can to help them (within reason). When the new guy comes in, train him. If you're still working there, that's expected. But even after you leave, be available. "Sure, I'll train the new guy. This is my hourly rate." But don't overextend yourself. If they are relying on your knowledge to complete the project and are taking advantage of you, remember that you owe them nothing and that you no longer work for them.
  5. Sweat the small stuff - Be sure they file your W2/1099 on time. If you are under any NDA's/non-competes, be sure that you have them in writing and signed when you leave. These two things are big and can come back to bite you if you forget them. I once worked at a company that did neither of these and when I got fired, I didn't have the contract I signed when I started working there. In theory, they could have modified my contract to their liking and sue me for working in their 'territory.' And pissing of the IRS is far worse than a boss scorned, I think we can all agree.

I hope this help and keep us posted on how it goes.

share
add comment

I agree with the other points that most companies would not consider your situation if they needed to initiate layoffs but I wouldn't go overboard and just leave without any notice. I think the best way (and what I have done) is try to put myself in their shoes and think "What is a reasonable amount of time that they would need me for?"

Then go to your current boss, explain the situation that you will be leaving but say that you would like to help them with a graceful transition. Then ask him how much time they would need you for still.

If he comes back with something ridiculous like 6 months when you were thinking that 3 weeks would be appropriate then you need to hold firm and counter with your reasons why 3 weeks is appropriate and what you are planning to do in those three weeks to help ease transition.

I think most people would be reasonable at this offer. Unfortunately, there are unreasonable bosses and if they are not budging at 6 months, you need to remember that you have all the leverage. If they make valid points why you should consider staying longer than what you thought, you should take that into account but if they only want to keep you longer because "it would be a hassle" then I would ignore their request.

EDIT: SnOrfus, this is an incredibly subjective answer based on your situation. Your question is lacking enough details to give an appropriate answer.

However, I am in a similar situation so I will give you my input. I am the sole developer on a system that is in production with users yet is still being developed. The company is not a software company. They are building this application as a venture into software and seeing if they can sell it to existing customers. There is no one at the company currently AFAIK that could take over from me in an instant if I left.

If tomorrow, a great opportunity came my way I would probably offer to stay on for about 4 weeks. Here is my reasoning:

  • My manager and this place has been great to work for so I would want to repay that as well as I could. If they requested another 2 weeks, I would probably be open to staying for 6 weeks total.
  • I think 4 weeks is plenty of time for them to initiate a hiring process and get to the point where they are close to (or already) hiring someone
  • 4 weeks would be enough time for me to document anything that is needed for turnover, fix any bugs and complete high priority feature requests
  • 4 weeks would hopefully cause some discomfort for them which will give them an opportunity to learn in the future not to solely rely on one person

I don't know you and I assume you are a competent developer otherwise you wouldn't be the sole person on a project. However, in my career I have sometimes overestimated my importance and role to an organization.

Don't worry. Life will go on for them and they will adjust. Look out for yourself.

share
    
This is basically what I was thinking. But the question of 'What is a reasonable amount of time that they would need me for?' is the part I'm having trouble with. I have no malice with my boss, he's a good guy, but the company isn't a place where I want to be, and the job offer is too much to pass up. With their track record for finding replacements and additional developers, it might not be unreasonable for them to say 3-6 months. Hence my conundrum. –  Steve Evers Dec 13 '10 at 18:53
1  
IMO, this is the best answer. The only thing I would add is that, if your circumstances allow it, you could offer to work part-time as a consultant at a "reasonable" fee, so long as the understanding is that it doesn't interfere with your new position, and that it is a temporary arrangement (perhaps with a set, firm deadline). Just be careful that they don't take advantage of you (don't be "too nice") - you don't want to be working two full time jobs. –  Wonko the Sane Dec 13 '10 at 20:10
    
What is the boss doesnt understand SD and thinks any other code monkey can do the job? why you guys only see a romantic boss? –  IAdapter Jan 9 '11 at 19:27
add comment

Give a notice and get ready for your new job. There's never an unreasonable time to leave a job, and you need to do what's in your best interest.

share
    
best advice here, but remember to hug your boss before you leave, it looks like he's in love with you(read other posts). he doesnt pay you enough, because he likes to think you love him too and its not about the money. –  IAdapter Jan 9 '11 at 19:39
add comment

The best single nugget of career advice I've ever heard is: "Companies are not your friends."

What this means is basically that I agree with most of the other replies here - that you don't owe them anything more than what your contract stipulates. It's just business.

That said, it's just common sense not to deliberately and maliciously drop the project on the floor in the middle of a very critical phase, if you can at all avoid it. But this really comes down to your rapport with your boss, the nature of the project, and your own perception of how big a mess your leaving will cause. There are no hard and fast rules.

share
add comment

I mostly agree with the statement "at the point your contract forbids it."

The initial post doesn't specify whether the application is new, under development by you, or is an existing legacy application.

If you are "numero uno" on brand new development, and there are no other players, and the client is committed to the project, then my opinion is that if your employer/client has treated you correctly, you have a moral obligation to help provide a transition for them to a new resource. This means that you should at least help them interview candidates for your replacement, and you should budget some time for follow on questions from the new guy. Or some other arrangement that allows them to go forward.

The reason is that if you create a "throwaway" without offering even a life preserver to the client, and the client has given you no reason to bail such as abusing the contract, then you are making an amoral decision that most service based businesses live to regret (IE, screwing the customer.)

If the application is an existing legacy application, then the legalistic criteria applies, more or less. People move on, and you should give standard notice but not worry a lot about it otherwise. Your client/boss should always have a contingency plan in place for emergencies and staff losses.

share
    
If you are a "numero uno" employee, than you were certainly offered a contract with a long (e.g. three months) notice period for termination of employment on both sides, and the question is easy to answer: leave after three months. Oh, you weren't offered this? Guess they don't need the security of your services that badly. –  quant_dev Apr 30 '12 at 15:54
add comment

At that stage when your currently completed work is in no way documented yet, or the knowledge is not properly communicated to the new team members yet.

Then again, "a fantastic job with better pay" won't wait forever. Make your best to preserve the knowledge in some way or the other then leave.

Optionally, you could offer to coach the new team members later as a consultant for some extra bucks.

share
add comment

Contract period. Many contracts stipulate 12 weeks of notice as well, so it depends on what your contract is.

The contract will be more or less designed by the business need. Anything more you do will be a favour to the company. Anything less you do will be a favour from the company to you.

share
2  
12 weeks!! In 30+ years I have never seen anything like that. –  Bob Jarvis Dec 15 '10 at 12:20
    
Come to India.. –  Roopesh Shenoy Dec 15 '10 at 12:27
    
But to be fair - it works both ways. The employer is to give you 12 weeks notice period/compensation if they want to kick you out –  Roopesh Shenoy Dec 15 '10 at 12:33
1  
@Bob: Come to Germany –  Simon Feb 14 '11 at 15:22
add comment

A lot of the answers are referring to contract length, whereas it sounds like you are an employee. I just went through this exact scenario.

My thoughts:

  1. Utilizing a sole developer was the decision of the employer. The employer accepts risks inherent in this decision, and those risks are not limited to the sole developer leaving. The sole developer being seriously injured or killed would be a somewhat worse situation for all involved.
  2. By virtue of receiving this other offer, your skills clearly demand a higher salary in the marketplace. I informed my employer of my new offer, and gave them an opportunity to retain me. At this point, though, you must be actually be ready to leave if they can't or won't satisfy your needs. In my case, they offered a substantial raise, but it was still not close to the competing offer.
  3. Be kind. I explained that I really like it at my current employer, but the difference in pay and benefits is too significant to turn down for the support and benefit of my family. I gave 3 weeks notice to allow extra transition time, and offered to help find, interview and orient a replacement, since I am the only one here with the technical expertise to evaluate a potential replacement.

That doesn't mean that you have to do these things, but being cordial and as helpful as possible under the circumstances gives you your best shot at growth, better compensation, and not burning bridges. If your supervisor is a jerk in response to this and calls you names for abandoning him or her and the project, you can't take it personally -- as much as relationships matter, it is still business, and if you gave them the opportunity to match the other offer, then it is all on them, because their ambition exceeds their budget.

share
add comment

Before the point that it is documented enough relative to the quality and completeness of the code.

share
add comment

If you're held responsible for the outcome of your work and your employer has stipulations about how you do your work that prevents that outcome from ever being good (or could lead to total disaster), then any time is a good time.

share
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.