In the movie Ronin, Sam, the character played by De Niro, says “I never walk into a place I don’t know how to walk out of.” Keep this in mind when working with software vendors. It’s possible to be trapped by a vendor. They have your requirements, your code, access to your systems and all the knowledge you have shared with them. When performance issues arise, things can get dicey.
This article will help you avoid getting stuck with a vendor that is not working out, and running up a tab.
How we get there
Vendor/customer relationships always start off in a honeymoon stage. After all, this is the firm you chose after months of research, interviews contract negotiation and reference checks. (You did check references, right?)
Over time however, few vendor/customer relationships stay that cozy. One reason is that your needs change. Perhaps when your project started you needed a visionary to get your platform off the ground. Now you need software engineers to slog through a list of small enhancements and bug fixes. In other cases, things change on the vendor side. They choose to focus elsewhere or a key staff member leaves. Some vendors just pack up and disappear or are consumed by another company.
Start up with multiple vendors
Now things are up and running. Your platform is taking shape. It’s a bright future. Around this time it is tempting to take your hands off the wheel. Instead, take an action that may see counterintuitive: bring on a second vendor.
It could be a small shop, freelancer or even a Fiverr. Make sure that the skills of the second vendor overlap those of the first. Nurture both relationships, cross train and feed them work alongside your main vendor. Consider a 3rd vendor for large projects.
As a freelancer, I know that if I do not perform for my customer each and every day, I will be looking for a new gig. Your vendor should have that mindset too. It’s too easy for them to get too cozy. They know your code, they know your requirements, they know your message.
Move work across vendors. You are reminding them that they could be rotated out at any time. You are in control. They will be performing better than if they have to compete.
You may have decided to go with an agency or software development company because you want bench depth in roles. You do not want your project to be held up because that person with specific experience is out on vacation or the position is unfilled. The big firm surely has specialized talent they can pull in at any time, right?
In reality, I find that you are limited to working with a small team selected for your project. That team has specialized resources. If you need that SQL optimizer, graphics designer or API coder, you may find that you need to wait a couple weeks because they are out.
You can escalate the issue with your account manager. When you do that they will likely pull in additional help. However that person will need time to get up to speed on the specifics of your project. That’s time you pay for.
So hiring a big firm does not mean consistent availability of specialized resources. You need to ensure that by having backup resources outside of your main vendor. Do you have a backup drive in case your hard drive fails? Same thing.
Have your own project manager
You are responsible for the success of your project, not your vendor. Which services you use to execute your project should be opaque to your stakeholders.
You will need your own project manager to ensure successful delivery of your projects, whether they are executed by staff members or not. It’s normal to have a project manager both on the vendor side and the customer side.