Consultant is a vague word that gets thrown around a lot without much explanation. So today I wanted to talk about what it is that we really do!
The job of a consultant is to be a fresh pair of eyes, but mostly ears. Our job is to learn everything we can about the problem domain and the technology. Through extensive conversations, questions, and discussions it's up to us to prioritize the pain points of the team and how to address them.
Company Therapy: This is sort of a joke, but not really. Bringing together people from across an organization to explain their current state of operation is normally incredibly revealing! In some cases, these high-level managers haven't interacted with each other in quite a bit of time, even if their teams do. It can be tense, it requires listening a lot and asking probing questions.
Learn the problem domain: You can't help solve a problem without understanding the context. A big part of the job is learning the type of work our clients do, the market they work in, the way they make money even! Knowing all of this helps us make recommendations that are both useful and achievable.
Crystalize on the pain points: In a utopian world, there are plenty of recommendations that one can make to help out a technology team or business organization. But that isn't reality! It's important to focus on the pain points and the areas that can have the most impact and make the biggest difference.
Look at the constraints: We're often incredibly critical of other people's code, of architecture decisions, of business decisions even. The reality is that all of those were choices made given the constraints the team faced at the time. It's important to understand the limitations of a team, or you're giving advice they can't realistically take.
Bring Expertise: This can vary quite a bit. Sometimes it's domain/industry expertise, sometimes technical, sometimes problem-solving and often a combination of all those areas. If the people in the room already had that knowledge then it's unlikely they'd need an outside person to help solve the problem at hand.
Pick the appropriate tool: It's wonderful to know a tool well and think it can solve every problem. However, tools should be chosen to fit the task at hand and the team that will be using it. Trying to force a technology into a specific scenario is a recipe for trouble.
Find solutions: In the end, after we've done all of the above, our job is really to recommend solutions. Often we recommend multiple and list the associated risks and benefits. The solutions may be a change in team structure, hiring in key areas, adjusting process, changing architecture, or pivoting the roadmap to more adequately address upcoming market needs. There is no one size fits all list of recommendations. The job is to tailor the work to the specific problems in play.
As a consultant, your role can be any of these at any given time.
- subject matter expert
- individual contributor
- technical writer
And to add to that, while we are considered technology consultants, most of us can tell you that 90% of the problems we find are people problems. So let's add communicator and translator to the list.
As it turns out, the best skillset for a consultant is a variety of interpersonal skills and the technical knowledge to back it up.
- good listener
- high emotional intelligence (the therapy joke is kind of true!)
- comfortable asking questions
- learns quickly
- strong writer
- foundational understanding in a variety of technology areas and willingness to learn more as needed
I've worked with big companies and small companies. I've worked with technology-minded individuals and business-focused employees.
A consultant is there when the company wants a new perspective, or outside expertise, they don't currently have. What that means is that anyone can be a client and in need of a consultant.
The varying roles you may fill are as numerous as the types of clients you're likely to come across.
I started my career in government work on big projects. I then worked as a software engineer on a variety of large technical systems. Seeing so many successful (and unsuccessful) software patterns in a short period of time taught me a lot!
Personality wise I'm definitely a people person and love helping and teaching others. And I double majored in government, so all those years of writing academic papers came in handy. Given all that, consulting ended up being a great fit!
But the reality is that my path isn't everyone's path. And working in this field requires such a wide variety of skill sets, perspectives, and personalities even. If you're interested in consulting I recommend you check it out. It's a wonderful opportunity to explore the industry and learn a lot!