Saw a great post by Kathy Keating, on a slack of which I am a member. This is how she suggests thinking about whether to stay or go at a given position:
1) Are there ethical issues? Leave.
2) Are there leadership issues?
2a) Can I have transparent/open dialog and is there hope that the leadership issue can be addressed? Timebox length of stay.
2b) No dialog. No hope of addressing issues. Leave.
3) Are there systemic company process issues?
3a) Company knows and is addressing the issue. Timebox length of stay.
3b) Company is fine being a mess. Leave.
4) Do I have career growth?
4a) No. Leave.
4b) Yes. Stay if no other blockers.
This is a lightweight framework to consider when you have a bad day or week at work. It’s important to acknowledge that:
- I (and most other software developers) are very privileged when it comes to job expectations. (My SO worked in healthcare and the stories, oh the stories.)
- The grass is not always greener and if you stay you might have credibility to effect change.
I think there are other factors that might play in here like type of work, location of work, and compensation, but in general I love this flow chart of how to decide whether or not to stay in a job. If there are other items that are important to you, add them into the decision tree, but having something like this will make it easier to make a hard decision like leaving a company.