Sunday, November 13, 2016

"Should I Stay or Should I Go Now?" and Other Bits of Career Advice

“Your time is limited, so don’t waste it living someone else’s life. Don’t be trapped by dogma — which is living with the results of other people’s thinking. Don’t let the noise of others’ opinions drown out your own inner voice. And most important, have the courage to follow your heart and intuition. They somehow already know what you truly want to become. Everything else is secondary.”
Steve Jobs. Stanford University Commencement Speech. June 12, 2005.

“I seldom end up where I wanted to go, but almost always end up where I need to be.”
Douglas Adams. The Long Dark Tea-Time of the Soul.

"I know I've got the kind of personality where when I'm here in Europe I miss New York, and when I'm in New York I miss Europe. I just don't want to be where I am at any given moment. I would rather be somewhere else. There's no way to beat that problem, because no matter where you are... It's chronic dissatisfaction: Anhedonia."
Woody Allen. Wild Man Blues.

Ever since I retired a couple of months ago, I've been getting a lot of requests from former colleagues for career advice. These usually boil down to a few broad categories. I figured it might be useful to write them down.

Caveat Emptor: I don’t claim to have made good choices in my own career, only to have learned from making bad ones. Hindsight is 20/20. My only hope is that others don't make the same mistakes I did. And, if you don’t like my advice, remember: It’s worth every penny you paid for it.

Should I stay or should I go now?

Perhaps the most common question comes from colleagues who are, for one reason or another, disillusioned with their current employment situation: either because they feel trapped in a dead-end job or a declining company or because they feel their contributions are not valued by upper management. Let’s just say there is a lot of discontent in the industry right now.

My advice, simplistic as it may seem, is to echo Steve Jobs and tell you to do what you are passionate about and not to worry too much about the financial aspects of the decision. We all make mistakes in life but I, for one, would rather look back fondly at all the things I’ve learned while trying out new experiences than remorsefully at opportunities missed. Every job comes with a dose of daily frustrations. Don’t run away from those problems. Run towards something you feel passionate about.

I will refer you to my previous blog about priorities. If you are aligned with the company strategy, believe in what you are delivering to the customer, have a strong team of collaborators around you, and can’t wait to get up in the morning to go to work - then, by all means, stay. In all likelihood, the grass is not greener on the other side. Another 10% or 20% annual compensation will not change your life. And I bet the other company has as many, if not more, problems than your present employer. If, on the other hand, you feel miserable every day when you go to work, if you feel you’re stuck in a rut and are not learning anything new, if you disagree with the strategic direction of the company, if you see key decisions being made for political reasons - then I guess you know what to do. Go find something you can be passionate about again.

Here's another factor to consider: I claim that 99% of all software written today will be obsolete, abandoned, irrelevant, or otherwise replaced within the next five to seven years. Okay, maybe that statistic is intentionally high to catch your attention. There is a bit of hyperbole in that statement, but not much. And I’m not talking just about consumer software, but also enterprise and cloud software. I wish the creative process wasn't so wasteful, but I'm afraid that rate is only accelerating. So, ask yourself, what's the most important thing you can do for the next five years of your career? Maintain software that was architected a decade ago, became legacy five years ago, and will be around for at least another five years? Any successful platform has a large ecosystem that will keep it alive for that long - even if on life support. Or would you rather roll the dice and try working on “new stuff”? Remember what Enzo Torresi said about software: “The reason that God was able to create the world in seven days is that he didn't have to worry about the installed base."

I want to do my own startup - I have a great idea for xyz.

Stop. Think. There are already thousands of startups out there. I bet there are already a dozen working on exactly the idea you have. Is your idea for a product or a business? If the former, don’t bother. It almost certainly won’t result in a sustainable company. If the latter, are you a business savvy entrepreneur or just another smart engineer? If the latter, don't bother. Smart ideas are great and there are a lot of smart guys in the industry, but history is littered with the corpses of all the cool technology startups that have failed to gain traction with customers because they didn’t think through the business model.

The reality is that the potential for long term success for a brand new startup (two guys in a garage) is pretty low. There are so many things you have to get right: the technology, the business model, the marketing aspects, customer acquisition, competitive positioning, talent retention, maintenance burden, patent protection, regulatory compliance, service availability for cloudy companies, you name it. Screw up any one of these angles and your chances of success are significantly reduced. Even if you get all of this right, you could get hacked and you end up on the front page of the New York Times explaining why and how you failed to properly secure some server that contained your customers’ confidential data.

Don't start a startup unless you’re pretty damn sure you know what you are doing. Also, based on the same logic above, I would argue: Don't go to an existing startup in an attempt to “get rich quick”. The odds are stacked against you. Go because you believe in the mission and believe you can work really hard for a few years and learn a hell of a lot.

Private or Public? Clouds, that is.

Run, don't walk, away from any company recruiting you to work on shrink wrapped on-prem software. The days of the private cloud are numbered as are the days of legacy shrink wrap software that needs to be installed, maintained, and managed by an IT department. All of those companies are busy trying to figure out how to move their software to the public cloud.

If you are working for a hardware company, I feel for you. As the industry figures out how to offer anything-and-everything-as-a-service and as hardware becomes more and more commoditized, it’s no wonder that hardware companies are struggling - even the ones who are trying to “add value” with their “differentiated software stacks”. Proprietary software tied to a specific vendor’s hardware is a recipe for obsolescence. No, thank you.

The last company I worked for, Cloudflare, offers DDoS-protection-as-a-service, Firewall-as-service, DNS-as-a-service, Load-Balancing-as-service, Failover-as-service, Caching-as-service, you name it. Just take out your credit card, go to their website, and you can sign up for any of those services in just a few minutes. No need to buy any hardware or maintain a random collection of servers and routers and switches and disk arrays in your own data center, no need to hire an IT staff to manage aforementioned infrastructure. Oh wait. Did I say take out your credit card? Never mind. They offer most of these services for free. Why would I want to run my own data center full of servers and stale software, again?

"Private cloud" is just a euphemism for “IT department unwilling to let go of the past”. Even companies in heavily regulated industries are busy trying to figure out how to get out of running their own data centers. The public cloud is the future, no question in my mind. And the only way to win there is to be “cloud native”.

No comments:

Post a Comment