When looking for a new job, or your first job, in software engineering, there’s several types of company you can choose to pursue. I started out in what we would call Enterprise, went to a Product company, then went into Consulting, then back to a Product Company and now am back into Consulting. Even during my Enterprise days, many of my projects were actually Products in that they were software solutions sold to customers. In a nutshell, I’ve been doing product work for a good part of my career, yet here I am in consulting. While that may (and probably will change), what are the advantages I see in choosing consulting? Warning: Opinions Ahead
Working with the New Thing
Product companies sound great. You get to build something that you’re really a part of, right? The downside is that you’ll need to maintain that for the indefinite future. Sure, today, and even into next year, you might be using the latest, greatest thing. However, sooner or later, you’ll be maintaining a legacy system. You’ll find yourself wanting to use the latest, greatest thing either because it “really solves the problem this time” or just because you want a change. Then you’ll look and see that the cost is huge, the migration of customers will be mind boggling, and you’ll never be able to go heads down long enough to change out the tech while also keeping up to product features. If your company does go that route, they’ll probably be hiring consultants to help with the new tech and you’ll be the subject matter expert on the legacy system and requirements. That’s even assuming you’ll be around, but we’ll talk about that later.
Some product companies manage keeping skills fresh by allowing side projects and have a variety of products that you can work on. These are rare companies and it can often be a fight to get onto those other product teams because everyone else is trying to do so too.
In consulting, unless you’re on a years’ long project or you choose to be specialist, you get to routinely update your skills, use new tech, and explore new techniques. The learning curve can be enormous, especially when you’re working with cloud platforms like Azure that are releasing new services and features almost daily, but if you like scenery changing, that’s what you’re after right?
Even when you are choosing to be a specialist, you’re generally going to be working on the latest version of your special system, so you’re still getting newer tech. The main exception are the consultants who are supporting sunsetted tech as a career choice. Most people I’ve met in that category are quite far along in their careers and looking for something lower key, even to the point of semi-retirement.
But the Hours!
Oh, it’s great to work on the new tech, but the hours in Consulting are utterly rotten, right? My question is whether product is really any better. Well, maybe it was before most products were web sites or Software-as-a-Service. However, in the product companies I’ve worked for, you’re often there just as many late nights. You’re doing deployments, dealing with fires, or crunching just as hard to get a feature out because “to land that client, we just gotta have it.” And of course, when the product company is in early startup mode, hours will be utterly brutal for a long time.
Sure, consulting does often bring hard hours, but that’s as much a matter of being careful with the firm you join as it is when picking a product company. There’s some always-a-death-march consulting firms out there, but on the by and large, if a firm is hiring you full time, they’re also aware of burnout risk and will manage it.
Oh, but Jim, the job security is better in product, right?
You mean that job where you’re working with outdated tech (see above)? The one where you’ll be laid off 5 minutes after there’s a downturn in the company’s fortunes when the new player enters the market or the demand shifts away from your type of product? You’re always just a cost to the company. As soon as they don’t need you cranking out new features to keep the business going, you’ll be laid off. Even if business is good, some companies will decide to “optimize” and downsize development staff in order to boost the bottom line temporarily or to prepare for being bought. Then it will be “see you around, thanks for everything and don’t forget the nice water bottle with our logo that we gave you.”
Then you’ll be out on the street with the only option being to take big cut just to get a job because nobody wants an expert in that old, legacy tech that no one is hiring anyone for anymore.
In consulting, you are the product. Some firms may be quick to lay off, but they probably hired you hourly so you can make a killing on those long hours that you’re likely to put in with those types of firms. If you’re salaried, then you’re the product and laying you off means there’s a loss of revenue for the company. Think about that. You are the reason the company exists. You are the thing they sell. You are the final product. Laying you off means a loss of revenue. If your utilization (average hours per week) is high, it’s unlikely you’ll ever get laid off. One of the tricks to keeping that utilization high is keeping a broad set of up to date skills, but not so many that you’re a jack of all trades and master of none.
And, even if they do lay you off for whatever reason, your skills are sharp and you’ll be able to sell yourself quickly.
What’s the financial opportunity at either type of company? Unless you’re there early, it’s just your salary. If you don’t have a contract that gives you equity, you’re just a wage earner, the same as anywhere else.
If you are there early, you’re taking substantial risk. When in start up mode, your compensation is usually heavily tilted towards “maybe we’ll be successful” and then your base salary is likely low. The potential reward may be great, but most startups fail. If you don’t see a founder who is both tech savvy and business savvy, run away.
In consulting, you’ll either be paid hourly or on a salaried basis always. Even if it’s a brand new firm, it’s really unlikely you’ll be taking a big hit in the salary for equity.
If equity is on the table, it all comes down to your own tolerance for risk. Keep in mind that if equity is on the table, then it probably means you’re in that brutal zone of a startup where you’ll be working tons of long hours.
Here’s looking at you, Wall!
One of my big joys is interacting with the user. In product companies, you sometimes get to do that, but more often than not, it seems the development staff is “too valuable” to “waste” their time in direct interaction with the people who will use the system. In a consulting firm, the can be an abundance of opportunity to interact, especially if the firm tilts towards smaller engagement teams. For this rather introverted weirdo with a strong desire to create useful systems, that kind of interaction is gold. I get to see what the need is directly and see the satisfaction of the user when we address that need.
My time in product companies was principally sitting at my desk with minimal interaction with users. Our stakeholders were generally sales or management, not the people who use the system. This is one reason why I love having sprint showcases with a wide audience. You hear the feedback from the people who know what they need the system to do, not someone who is trying to relay that to you.
I did go back to product for a brief bit after about 6 years in consulting, but that lasted a short time. It was a legacy product company and movement in the tech stack was done at an utterly glacial pace. They did everything right in terms of culture and the hours weren’t even that nuts for most staff. They just weren’t on the cutting edge, lacked direct interaction with the customer, and were just a lot more static than I’d grown accustomed to. Maybe I’ll hop back to product again at some point, but it will be because it’s the right company with the right vision and right leadership, not because Product is inherently better.
Fundamentally, there’s a personal choice to be made. My goal in writing this was really just to layout my own reasons for choosing consulting and maybe ease some concerns for others. I believe I’ve done as well, even better, financially in consulting than I ever could have while in Enterprise or Product. Probably more importantly, I’ve always had a strange kind of job security in knowing that even if I’m laid off, I’ve kept up on skills that are in demand and will be readily employable.