He was a salesman at the company where I had gone to work after graduating from engineering school. And he routinely made my life, and the lives of the other engineers with which I worked, crazy difficult as he made wild promises during the sales cycle that we then had to fulfill in our product on impossible deadlines.
It was the classic tension between sales and engineering. There should have been a class on it when I was in school. I might have called it “Sales Douchebaggery 101” but perhaps the topic would better have been wrapped into a larger course on life as a working engineer. Cost constraints out the wazoo. Adding features to a product under pressure without doing necessary redesign of existing features so they scale and perform. Being bogged down by the avalanche of customer support that follows releasing the resultant buggy product. And all the while, salespeople promising crazy stuff to prospects to get them to sign on the line. Sales happily wrote checks, if you will, that engineers then had to figure out how to cash.
This particular salesman was the king of signing us up to build stuff on impossible deadlines. He seemed to take special glee at doing it. Cynically, we all grumbled to each other that it was about making his commission check as fat as possible. One of the engineers delivered this classic line: “He’s in sales. That means he’s coin operated.” I’ve gotten a lot of mileage out of that one.
And then one day he showed up at work in a brand new Lincoln Mark VIII. It was a stunning car in a pearly white. Lincoln called it “white opalescent,” and it was impossibly deep, almost liquid. I expected that if I touched the car, my fingers would ooze into the body and come back wet. It was mesmerizing.
Yet I was angry and jealous. Here was this guy blithely, happily making engineer lives miserable while piling up a crap ton of dough. I wasn’t going to make that kind of money anytime soon; no new Lincolns were in my future. But this wasn’t really about financial injustice. No, this was about him never suffering any consequences of his actions while living a lifestyle that reinforced his bad behavior. Such bullshit.
That was in the early 1990s. Since then I’ve worked for many other companies, successful and not, and have learned a few key things about sales. First and foremost: celebrate every sale, because they keep your paychecks from bouncing. I’ve lived through that and never want to again.
But second, that company had a lot to learn about product marketing and sales. The sales team was left to fend entirely for itself, with only a vaguely identified target market, no coherent story to tell about the product line, and nothing that generated qualified leads for them to pursue. They earned every closed deal from the ground up: cold calls, relationship building, and then doing what they had to do — including making stuff up — to get a yes so they could meet their quotas. It had to be brutal for them. So no wonder this guy was so giddy every time he closed a sale. He worked his butt off for it.
And third, and most importantly, back then I was content to grumble and that didn’t help my company at all. Learning how to estimate, negotiate scope, determine minimum viable product, set and manage expectations, and manage projects has been much more effective for me and for the places where I’ve worked. It’s helped sales teams know that Engineering is in their corner helping them succeed — and helped them better understand what Engineering is capable of delivering so they make fewer bad promises.
Today I don’t sweat that fellow his Lincoln. Seeing this one in a restaurant parking lot recently in sort of sad condition reminded me of him. I looked him up on LinkedIn. He’s still selling in that industry, for a company we all derided then as being the last place you’d want to work. Looks like his career had a similar trajectory to this Lincoln: still going, but not looking all that great. Fortunately, I’ve grown up enough to have empathy for him.
I regularly take photos of old parked cars and write about them for Curbside Classic, a site that tells these old cars’ stories. This post is heavily based on a post I wrote there a couple years ago; read it here.
When you leave a job, you leave behind the relationships and reputation you’ve built, and the mastery you’ve gained over the work. It’s hard to leave them behind, and it takes a lot of time to build them back in your new gig. Even when you’re positive it’s time to go, it’s hard to lose all of that. It might make you hedge your bets and stay.
It’s said that people don’t change until the pain of staying the same is greater than the pain of changing. I think it’s similar when you contemplate changing jobs: the difficulty of staying or the benefit of the new job needs to be greater than the challenge of rebuilding relationships and expertise.
Bad reasons to stay
You might also resist leaving because you feel you’d let your coworkers or customers down. But if you stay for that reason, you are taking on too much responsibility for the company’s functioning. It’s the company’s responsibility to make sure it can function if anybody exits. I’ve seen people at all levels move on, from associate engineer to CTO and even CEO. Every time, the company found a way forward.
Moreover, nobody expects you to work there forever. The day you were hired, your boss knew he would one day accept your resignation — unless he were to resign first. If you’re good at what you do, your boss will be wise to work to delay that day as long as possible. But it will eventually happen.
The 90-day countdown
Changing jobs is a big decision. Give yourself time to be sure it’s the right choice — whether you’re fed up and ready to ragequit, or hedging because you want to keep the good things you’ve built up.
I use a 90-day countdown a colleague shared with me long ago:
When you think it’s probably time to leave, set a 90-day counter in your head. Decrement the counter each day until one of two things happens: conditions improve or you see a good path forward, in which case you stop the countdown; or the counter goes to zero, in which case you update your resume, reach out to your network, and get out.
90 days — one calendar quarter — gives you enough time to avoid acting out of pure emotion so you can think it through clearly, and gives difficult circumstances a chance to change.
Thanks to this song for giving me a great post title.
I leave jobs. It’s what I do; in my career’s 29 years I’ve worked for ten companies. My longest tenure has been just over five years and my shortest was 14 months.
(To my boss, and to my team, who are almost certainly reading this: no, I’m not thinking of quitting!)
Usually I’ve moved on to gain new experience or a higher position. A few times I’ve quit because the situation had become untenable — once for a relentlessly crushing workload; another time because of a micromanaging and mean-spirited boss. Twice I’ve been laid off when a company fell on hard times.
During my father’s era, loyalty to an employer was lauded. But today, and especially in our industry, spending too much time at one employer can make your skills look stale. That makes it harder for you to land a next gig.
But when is the right time to go? It’s often hard to know, but it’s hardest in the first job you take after college. It’s easy to form an attachment to the employer and your experience there, and stay too long. I did that myself.
It is easier the second time you quit, and the third. Soon you get a good sense of when it’s time to go. Here’s what I’ve learned.
Sometimes a company pushes you out:
You struggle to get behind major changes. Companies regularly adjust course, sometimes dramatically. When it happens, can you get behind the new direction? If you don’t think the new strategies will work, or if you find some of them to rest in a moral gray area, make your concerns known. But if things don’t change, you should probably find a different company where you can be all in.
You are constantly frustrated with the way you have to work. If you’re comfortable in a high-process environment, low-process environments will feel too chaotic for you. If you enjoy high autonomy and low structure, you’ll feel strangled in a company with rigid hierarchy and lots of rules to follow. Or if you are highly competitive, an environment that values close collaboration and shared success will drive you nuts. Try to adapt to the environment, to grow through your limitations, and to influence change where you think things can be made better. But if you constantly have to be someone you’re not, find a company where you can be you.
The company seriously struggles financially. Every company goes through tough times, so don’t be quick to bail. But you should see your company making strong steps to bring good results back. Some companies aren’t transparent about their finances or strategies, so keep your eyes open. Look for new initiatives that gain traction. Watch your sales team — their growing happiness or deepening despair is a bellwether. But no matter what, persistently poor financial results will result in layoffs, or worse.
You don’t get along with the boss. Try hard to work things out first. Get some feedback from trusted colleagues about how you might be contributing to the difficulties, and fix those things. But sometimes you and your boss will just never be a good fit. And once in a while you will simply work for a truly awful boss. In both cases it’s time to go.
You see or sense moral rot in the company. I once worked for a company where the CEO was unable to not sexually harass his assistants. Finally one sued him; he got his entire executive team to lie about it in court and he got away with it. I worked for another company where the sales team would go to the annual user conference and spend their off hours, it was strongly rumored, drinking too much and sleeping with each other and with customers. It can be hard to separate hearsay from fact, and don’t spread rumors. But watch closely for signs of bad behavior, because moral rot will do your company in. It absolutely undermined the first company, and just the rumors in the second company seriously damaged the culture.
Sometimes your needs pull you out:
You aren’t growing in skills, pay, or title. Your career should progress. What that looks like depends on what motivates you. I like to get better and better at what I do, and if that’s not happening I get bored and leave. You might just want to make more and more money or rise to the top of the corporate ladder. Your growth might stall for a while in any job, but if it stalls for too long first ask trusted colleagues and managers what you might be doing to block your own growth, and fix those things. If that well is dry, perhaps you’ve gone as far as you can go and to grow you’ll need a new opportunity.
You need a job that won’t challenge you. This might sound strange. But if your personal life ever goes seriously sideways you might need to put career aspirations on hold for a while. In my mid 30s my first marriage ended in an awful mess. I ended up working in IT for a large insurance company, where the pace was slower and the work itself wasn’t that hard. I came home at night with the energy to focus on getting my life back together. Eventually my life restabilized and I wanted to grow in my career again, so I left.
You want to work for a company whose culture or product aligns with your values. Where I work now we build a product that aims to make the work life better for employees everywhere. We attract people who want to be a part of that mission. If you see another company with a mission that resonates with you, by all means, find a job there!
You want to work with more modern technologies. You might follow one tech stack through your career, or you might become a polymath and ride the cutting edge. If the latter appeals to you, get out when your company’s technologies become widely adopted, and find the next new thing.
You want to work for a company that is succeeding wildly. It might matter to you to be a part of the next big success story. If you sense another company is a rocket on the launch pad, and that excites you, what are you waiting for — get in over there!
In my next post, I’ll give some tips about how long to wait before you launch a job search, and how to manage your feelings about leaving.
Thanks to this song for giving me a great post title.
In a recent blog post, Johanna Rothman wrote about paying it forward in our careers and in life. (Read it here.) Through paying it forward, she says, we offer people lucky breaks. When others pay it forward, sometimes we get the lucky breaks.
I add this: sometimes when you pay it forward, it goes full circle and creates lucky breaks for you. Here’s a story of a time that happened for me.
In my first management role, more than 20 years ago, I got to build a small team from the ground up. I wrote that story here — that team and the work we did remain one of the brightest memories of my career.
I wanted to build the kind of team I’d want to work in — one of transparency and autonomy, where we could do very good work yet go home to our families at a good hour each night.
I hired Mary Ellen first. She lacked the technical skills I was looking for, but was otherwise qualified — and whip smart and deeply resourceful. So I took a gamble and hired her.
She was a home run hire. She picked up every needed technical skill quickly. Her work was nuanced and of impeccable quality. She even helped define team processes that let us run more efficiently and effectively. We couldn’t have done it without her.
The team was quite sad after a few years when I was promoted to a different role and was no longer their manager. It was a great compliment when they told me that our time together had been the best at-work experience of their careers.
That company didn’t make it through the dot-com bust and we all went our separate ways. I wasn’t very good at keeping up with my network then and lost touch with Mary Ellen. Seven years later, I got an email from her. “There’s a leadership role open where I work now, and it looks perfect for you. If you’re interested, I’ll put in a good word with the VP, because I’d love to work with you again.”
I was ready for a change so I interviewed, and I got the job. It was a fabulous role for me and I was very successful in it. The company itself was successful enough that the founders took an exit. I was a late enough hire that my cashed-in stock options didn’t change my life. But the founders and all the VPs ended up being movers and shakers in the startup scene in my area. Those contacts have helped me immeasurably as I’ve continued my career, offering coaching, introductions, and even job offers.
The moral of the story is to treat well the people who work for you! Treat everybody well. You never know when it will come full circle.
I’ll never forget the revelation it was when I figured out how to write computer programs. You mean, I thought, I can make this machine do what I want it to?
It was a watershed moment in my life.
I was a teen then, shy and introverted. People often frightened me, at least a little. I struggled to interact with people I didn’t know well, and to assert myself with people I did know well.
And then here was this machine that I could order around. It had limits, but within those limits, it was all about what my mind could imagine and then code. I wrote games that my dad and my brother played. I wrote programs that illustrated concepts of geometry, which I demonstrated to math classes in school. I wrote a payroll application for my aunt’s small business. I even wrote a very rudimentary operating system once – it was terrible, but I learned a lot.
So I went off to college to learn more about how to make software. When I graduated the job market was terrible, so I took the only software job I could find, which was writing user guides for a software company. Later in my career I moved into testing, and into management. I’ve delivered a lot of software since I started 29 years ago.
Here’s the crazy thing I’ve learned: The hardest thing about making software is not the technical stuff. The hardest thing is getting people aligned and pointing the same way!
I’ve often said that it’s a modern miracle when a software project succeeds. Any software development project that involves more than about two people will have coordination challenges, differences of opinion, and all the other normal issues of working together. My experience has been that the programmers and the testers can do whatever you need them to, short of, say, developing a telepathic user interface. They will work hard at it and they may struggle to get it right. But those struggles can pale in comparison to how hard it is to get everyone to agree on what to build, how to build it, and what it means to be done. Here’s how code is better than people:
Once coded, code stays coded and reliably does the same thing over and over.
You think you have people all organized and then they go off and do whatever they want anyway.
You will sometimes struggle and work hard to make your code do what it needs to, but you can almost always get the job done.
Sometimes you simply can’t influence people. Drat their free will.
Change your code, it doesn’t mind. It knows no fear.
People hate change! When change is thrust upon them, they often resist it or even run away, screaming.
By the way, the WordPress editor doesn’t offer a way to create tables, so I wrote some quick HTML to generate one. Fear my mad, l33t sk1llz.
Unfortunately, even if you have the best coders in the world, if you can’t get them to work together their projects will fail. Fortunately, I understand geeks, for I am one. I know what makes us tick. I’ve learned how to influence us and get us all reasonably pointing the same way. And I’ve built on these skills to learn how to influence non-geeks such as upper management, salespeople, and customer service folks to get them all working together. It’s not easy, and it’s impossible to ever get it perfect, but I’ve had pretty good success over the years and it’s contributed strongly to any number of successful software releases. And it’s helped me come out of my nerdly introverted shell.
I can’t remember the time I last wrote any serious code. I don’t miss it. To my astonishment, I’m having much more fun and success on the people side now.
Yet I’ve noticed that I’ve continued in my career that I work increasingly with people much younger than me. Today I lead a team of software engineers mostly in their 20s. I know of only one fellow on the team who’s older than 30. It was much the same in my previous job, and in the job before that.
I’ve long assumed that engineers my age all still worked in .NET shops. .NET was new, hip, and cool when I was in my early 30s. Where I live (central Indiana), companies adopted it readily and so most then-young engineers built their careers on it. I worked for several .NET shops in a row. Some of those companies still exist, and their products are still built on .NET.
So I searched LinkedIn for names of people I worked with years ago. Some of them are still writing code. A few of them are in some level of management. But the rest aren’t on LinkedIn or have left the industry.
I don’t know why. Do you? Especially if you’re older than 35: where have all the older engineers gone?
Today I begin my 29th year in the software industry. Actually, today’s a day off where I work. But it wasn’t at the company where I began my career, also on Monday, July 3. It’s why I remember the date: my second day was a paid holiday!
In 28 years I’ve worked for nine different software shops, small and large, serving many different industries and kinds of customers.
What surprises me is how little correlation there was to how good my co-workers were and success of the companies. I worked with some brilliant and visionary people at companies that struggled, and with some average people at companies that did well.
Does that surprise you? As I look back, it certainly surprises me.
Here’s what did correlate to the successful companies in my career:
A product vision and company direction that did not change wildly, but did evolve to meet the evolving market
An executive team in unity on that vision and direction
Good communication to everyone about that vision and direction
Reasonable planning to execute that vision and direction
Good execution in engineering and in sales
A work environment where people felt safe and valued
Transparency into company financials
Notice how none of the adjectives I used above are superlatives? No excellents or flawlesses or bests or outstandings. Everywhere I’ve worked, when people are aligned to a vision and direction, “good” and “reasonable” have been enough.
These things give brilliant engineers and visionary product people a solid platform to do pioneering work. But even the best people haven’t been able to overcome the lack of these things.
I think there’s a miss in how startups recruit. They hype the interesting problems they have to solve and their cool company culture. But those are only two of the three things they need to hype. The last one is that together, you get to build a great business.
If that doesn’t sound very interesting or exciting to you, well, it should. Seeing your work lead to a company’s overall success is enormously rewarding. And given a startup’s size and scale, you have an outsize ability to affect that.
Does the company you work for share financial results and business plans with you? The one I work for does, once a quarter. We all get to see how much money we’re making and how much is left. And we are updated on our strategy to get to our planned next business phase. All of this tells us where we are on our corporate journey. Are you clear on what your company’s journey is?
(Sidebar: It is interesting to me that in my career, the companies where I’ve been the happiest are also the ones that shared financials and strategies. Not all companies do it. I think companies that do it get how it brings the company together as one.)
When you understand that journey, you understand the larger context your work lives in. It helps you make better decisions in the moment, ones that let you deliver the right balance of speed, quality, and scope.
If you don’t see now how building your business is an exciting journey, you will when your company meets its goals. Especially in a startup, it will be impossible to miss how your work made it real.
I’m sure it’s happened to you, maybe even where you work now: you wonder why in the heck you’re building a particular feature. It seems to you, and maybe to others you work with, that the company’s time and money would more profitably be spent building a different feature.
You might be right. I hope your company gives good avenues for providing that kind of feedback. But if it doesn’t, or if it does but your appeals failed, then get on with making your assigned features real.
That’s where strong execution begins — when the dust settles, even if you don’t fully agree, you get busy working the plan.
It’s obviously best when your company has brilliant ideas that you then execute strongly. But if you bring strong execution to even mediocre ideas, success usually follows. It’s a great overlooked secret: there is no substitute for everyone pulling the cart hard in the same direction.
Companies with brilliant ideas but poor execution fail. Or so, at least, it has gone at the companies for which I have worked. I was once in a startup with an idea that I thought was brilliant. But there was so much infighting inside that company that neither sales nor engineering could build a strong execution rhythm. That company is still limping along but to my mind its product never reached its potential.
If your company uses agile processes, you’ve hopefully broken your work down into small enough chunks that even if you choose a wrong feature to build, you won’t pull the cart in the wrong direction for too long. You’ll deliver a little software, see how the market responds, adjust your direction as needed, and repeat (and repeat, and repeat). Ideally, this system self-corrects.
By all means, if you disagree with the features you’re assigned to build, provide that feedback using whatever mechanisms your company offers. But after the plan is set, execute it as strongly as you can.