Today I'll share what I've learned over 10 years of first being a developer working directly for software companies, and then 10 years working as a software consultant. I hope this helps anyone evaluating the trade offs of a software developer vs consultant, and figuring out what's better for your career.
The first consideration is influence. As an employee, your influence can sometimes be restricted by the position you hold. As a consultant, it tends to lend itself to you having whatever influence is necessary to solve the problem you were brought in for - at least at first.
Another thing to consider is how the business will perceive your value. As an employee, you can be looked at as a cost center, or a profit center depending on the business model of the company. As a consultant, your value to the business is typically a solution provider - you're there to solve a problem, and ultimately to leave.
How will you be perceived by peers? As an employee, you should be treated as one of the family since you share the same benefits and struggles as the rest of the company's people. As a consultant, peers will often look at you very skeptically at first - you must learn to be comfortable with this to fit into their culture.
What are some of the key traits and skills needed? As an employee the focus is often on your technical skills. Though soft skills and process understanding will help, most hiring managers focus heavily on technology above all else. Additionally, you'll be considered for "culture fit" - which can be a real thing, or a wild card used to reject candidates in my experience.
As a consultant, there are very different skills that will tend to help you be successful in the position. First, likeability - people must like you to enable you to get the influence necessary to become a trusted advisor. You also need to be above average at communicating clearly, and tailoring information to different audiences. Lastly, an appreciation for and desire to understand the business in which the software development is done will help tremendously.
Next think about rewards. As an employee, you're usually going to make some adjusted version of the market rate for your skills, and optionally some options or equity. As a consultant, you're either billing your clients at an hourly rate, or can charge a percentage of the opportunity you're enabling.
As an employee growth will happen when the company needs it. So you need to grow on the side if things aren't moving as fast as you'd like. A consultant has the potential to grow with each contract, but it can be stressful and fast paced.
An employee can get recognition whenever they work on a successful product effort. A consultant gets less recognition that turns into a reward short term, since they depend on their firm rewarding them and they don't always directly see the work.
Employees can change whatever work processes they want within the realm of their responsibility with reasonable ease. Consultants must prove themselves before they are allowed to change processes, but once proven it can be easier than an employee.
#programming #consulting #career