When reviewing a software consultant one of the big questions that's on your mind is "Are they good enough?"
What do you need
But before you can answer that, you need to know what you actually need and want from them.
Hiring a developer to build your first version of your product will have different needs than someone who is going to augment your existing team.
You need to be clear about the minimum you need.
Do you need someone who can write code?
Can they use the majority of the languages, frameworks, tools, and systems you have in place?
Can they communicate with you?
Feel free to write down any specialized requirements you might have. If you have a team already, ask them because they'll have a lot of ideas.
Must-have vs Nice-to-have
Next to each one, decide if a requirement is a must-have or a nice-to-have. An easy way to do this is to:
Ask yourself "if I found someone who was perfect in every way but they didn't have the experience with this, would I hire them?"
If yes, then it's a nice-to-have. If no, it's a must-have.
Take all of your must-haves and use those as the criteria to determine if this consultant will be able to help you.
If you've worked with human resources or had to create a job ad, this process should look similar except without the formal strict job requirements.
Past public work
Once you know what you need and want, you can start evaluating them to see if they'd be a good fit. The easiest way is to look at the public work they've done. With some people, you might be able to do this early on in the conversation by using public sources.
The consultant's portfolio
Any public project or open source work
Case studies and testimonials from past clients
But don't stop there. Due to the nature of the industry, most consultants have a lot more work that they can't make public. The proverbial iceberg metaphor where 90% of their work is hidden.
In this day of NDAs, non-compete agreements, and other restrictions the largest and most powerful work a consultant produces is usually hidden. Speaking for myself, I can't even mention the types of some projects I've worked on other than "it helped salespeople". It makes it hard for the consultant and hard for you but there are ways around it.
Asking a consultant directly if they have experience or have worked in a specific area will at the very least get you a yes/no answer. Even if they can't talk about what they did, you'll be able to determine that there is something there.
Or asking them "what would you do in this situation?" might give them enough leeway to talk about past experiences, without violating any trust or legal issues.
Tip: If a consultant pauses when you ask them, many times they are trying to think about a way to answer without breaching any NDAs or contracts they have. Watch for that pause. You want that pause. It means they have direct experience.
Ask about gaps
Let's say you found a consultant who hits every requirement you have except for one. Don't be coy with them about it, be direct and tell them that they are missing one component or skill.
Many consultants will offer to learn or brush up on that skill for you.
You see, especially in technology there are new things happening all the time. It would be impossible to keep up on all of them, so tech people tend to focus. Software consultants are no different. They'll have a few areas where they've focused and become experts and many areas where they've dabbled and learned a little. Many times the differences between not knowing something and having a minor specialty comes down to what their clients need.
Using techniques like just-in-time training, consultants can quickly get up to speed on a technology before your project starts. They won't be an over-night expert on it, but if it plays a minor role in your project that might be good enough.
For example, much of my experience is in Ruby on Rails and backend systems. But I've also explored various frontend technologies like angularJS and knockout.js. A client had a Rails system that heavily used knockout.js. The week before I started with them, I took a crash course on knockout.js and built an educational application with it. That way when I started, I had the experience my client needed and the knowledge was fresh.
Start with a trial run
The absolute best way to know if a consultant is good enough is to give them a trial run.
Pick a part of your project, limit the time and budget, and see how the consultant does. The ones who faked it will fail quickly and you'll know. Then you can keep the great one and know that you made the right choice.
The great consultants will be doing this same process, but in reverse. They want to make sure they work with clients who are able to benefit from their services, skills, and experience. The best ones will make sure that you benefit at a greater rate, where you get 2x, 3x, 5x, or even 10x in return of what you invest.
Hopefully these tips help you evaluate your next software consultant's skills. If you ever need a consultant who specializes in Ruby or Ruby on Rails, I'd love to hear from you.
Work with me
Are you considering hiring me to help with your Shopify store or custom Shopify app?