Many of this advice echoes The Passionate Programmer[1]. However, I believe it should also echo this one[2]: Don’t waste your time in crappy startup jobs
Maybe more importantly, it should echo You Weren't Meant to Have a Boss[3].
An even more disruptive perspective actually came from Bret Victor[4]:
There are many ways to live your life. That's maybe the most important thing to realize in your life, that every aspect of your life is a choice. There are default choices. You can choose to sleepwalk through your life, and accept the path that is laid out for you. You can choose to accept the world as it is. But you don't have to. If there's something in the world that you feel is a wrong, and you have a vision for what a better world could be, you can find your guiding principle, and you can fight for a cause. So after this talk, I'd like you to take a little time, and think about what matters to you, what you believe in, and what you might fight for.
Are you a software engineer at a company with a languishing flagship product where any attempt at innovation is prematurely killed in the name of optimizing quarterly profits?
Stuff like this bothers me and I think paints an unfair picture of a corporate environment. Corporations aren't some Disney dichotomy of either being incredibly encouraging of change or a supervillain who purposefully punishes developers in order to line their own wallet.
The reality, I think, is that the vast majority of companies are in the middle. Change is good; change for the sake of change often goes against business principles. Why is a company shunning your 'innovation'? Is it because its unfeasible, or costly? Does it not integrate well with the product line?
Products have lifecycles. One of the states is the milking state, where you minimize investment in that product to maximize profit (put another way, the incremental value of new work is less than or equal to zero). Anybody would be stupid to continue dumping money in those.
The problem is that state occurs right before product death. If you aren't investing that milk money somewhere new, your company is in a death spiral, regardless of how much money there is coming in today.
So if your company is only milking and not investing, then, yes, leave, immediately. Personally, I've not seen that happen often, but I have seen it.
I'd leave also if the company's definition of "investing" is limited to some combination of polishing, enhancing, or repackaging the same milk money projects repeatedly. Its almost as dangerous as just sticking to the milk money projects (unless your company is a government contractor).
Textbook definition of the last company I worked at.
A gigantic monolithic struts1 Asset Management product with 19k LOC in some of its JSP files. All they ever did with it was pitch it to companies, get us some minor web services to add to it and move on to the next company.
I couldn't even persuade them to use Agile or start to use Unit Testing, let alone start something new. When I suggested in some brief down time that we make something new, I was actually laughed at by the senior sales guy/project manager who was my boss.
God I hated that place so much. So glad I work somewhere that actually builds things and has a decent business strategy.
Well, obviously some of what he's saying is marketing appealing to emotion, but those corporations do exist. If you think you work at one, then it might be time to go, as something led you to that perception.
There is no hard and fast rule for when to leave a company, but the one rule that works for me is: it's time to go when it isn't fun anymore.
>Think of any reason why you’re tolerating your current job and ask any prospective employer to beat it.
What about a great team, reasonable hours, lack of red tape, and flexibility in technical choices? All reasons I love my current job and things I don't think a potential employer would give an honest answer about anyway. That's the biggest friction, for me at least.
Yup, I loathe the deception involved in the interview-hire process. People lie to each other with smiling faces, from both sides.
Just once I'd like to walk into an interview and have them say 'We want to work you like a dog so that we can make a million dollars and then fire you', and be able to reply 'That's fine, I am more interested in the color of your money than your ideological purity'.
The line between contractors and regular employees is virtually nil, at least in technical jobs. In at-will states you have no protection at all, the only difference is who pays the taxes and benefits from the employer side.
That would be nice, but how many employees would they get that way. Thankfully, companies have ways they signal that they behave this way: if they focus a lot on "company mottos", if they deify their founder[s], if they start using words in a way that seems to be different than the English meaning (e.g. "Family" to mean "coworkers"), etc., etc. Basically if they try any brainwashing techniques and/or the people doing the interview seem to be a bit too "pro" for the company.
It's just not true. Not for everyone. I've worked with people in the past who would shine in a new role, and I keep telling them to quit their job and move on to something better. But I've also worked with people who think they're good programmers but really aren't, and those people should thank the lord with both hands that they got the job they have now.
Alternate title: How to become delusional and get fired from your solid job that pays all your bills and allows you to save for retirement and invest, too.
My main observation, also from personal experience, is it's possible for someone who is otherwise content and on the right track in life to become confused by the kind of rhetoric utilized in this article.
I'm all for saving money and working on side projects until you have the stability to undertake a dream without significant risk.
This is sort of reminiscent of those billboards proclaiming "Life is short. Get a divorce."
Go talk to some people who've made the leap to founding their own companies or going for that bigger position. The pressure increases and the race never ends. Sometimes it's nice to just be able to knock out code on interesting problems without constantly worrying about your next move. Engineer comp is going up, way up. I don't think the right next step is to turn engineers into hyperpolitical MBAs.
Ironically I believe that we need technically competent people on the business side more than ever. When an industry gets "Hot", it attracts pretenders, and that can only hurt us.
The article starts by listing a couple of problems, at least one of which most software engineers will identify with.
Most of us have sometimes had our ideas turned down and a lot of companies do that for wide variety of reasons - not just to maximize quarterly earnings. Most of us have had our projects cancelled midway and usually the communications may not have been as you would have expected.
These don't make your jobs "crappy". Any company will have to make tradeoffs between the longterm vision and the short term earnings. I think quitting is not a good reaction to any of the above problems.
I would also try to address some of the allegations he makes about a company being "crappy".
Being profitable and stable means a lot of things. They are not a crutch that people hold on to. It means that there are people who are paying for what you make. It means that your team mates are doing a good job of selling what you make. It means that you are made something what people want. For most of us the pay is a small part of the equation on the job satisfaction. If I am making something that is profitable with people that I like and the company is trying its best to provide me some small perks,the low pay may hardly matter.
He also goes on another tangent expressing different frustrations about working in a company namely having "idiots with no technical background ... just because they have an MBA".
There are two different and unrelated points here. Why would someone without a technical background be an idiot? Why wouldn't he be competent to lead a team? Is your company hiring managers solely based on degrees? Does your company hire engineers just because they have a computer science degree? Would you have a person run a team just because he has a technical background?
There are a lot of reasons why people hate their companies. There are a lot of reasons why people love their companies. It is a good thing that the authors is trying to minimize the hateful relationship through your startup. However, he has provided no convincing argument to why some of the things that he listed make the company "mediocre" or "crappy" and why it is worth leaving the company.
IMO you need to have a technical background in order to lead a technical team.Otherwise you will fail to distinguish between making software and shoveling snow.
I fully support leaving a job that is not satisfying, but I can't recommend creating a profile on a web site that implies that you regard yourself as a rock star who requires a leather furnished tour bus and a bathtub filled with chilled champagne before you can consider joining an unworthy enterprise. I assume any employer desperate enough to scope out talent that has this attitude is probably the kind of place I don't want to work at.
Maybe more importantly, it should echo You Weren't Meant to Have a Boss[3].
An even more disruptive perspective actually came from Bret Victor[4]:
There are many ways to live your life. That's maybe the most important thing to realize in your life, that every aspect of your life is a choice. There are default choices. You can choose to sleepwalk through your life, and accept the path that is laid out for you. You can choose to accept the world as it is. But you don't have to. If there's something in the world that you feel is a wrong, and you have a vision for what a better world could be, you can find your guiding principle, and you can fight for a cause. So after this talk, I'd like you to take a little time, and think about what matters to you, what you believe in, and what you might fight for.
[1] http://pragprog.com/book/cfcar2/the-passionate-programmer
[2] http://michaelochurch.wordpress.com/2012/07/08/dont-waste-yo...
[3] http://www.paulgraham.com/boss.html
[4] http://gumption.typepad.com/blog/2012/03/principle-centered-...