Some time ago I made a presentation for the WeWork South Lake Union community located in Seattle, WA. It was a lunch-and-learn conversation on a casual topic: choosing the right software partner for your company. It was important for me to share these best practices because I was there with my CTO as well as an Engineer planning and working for one of our most loyal customers who was in the midsts of planning next steps in their product strategy.
It is totally possible to provide a high-quality service and experience in the software field to any customer. Working with digital products and software is much easier now than it was decades ago, so I spent some time analyzing different scenarios, advantages and general things to consider when partnering with a software company who will help you accomplish your business and tech objectives.
Why choose an external company?
What brings you to consider an external team to help you in the software field? There might be different reasons, but the most common can be highlighted as:
- You need to focus on your core business sustaining the daily operations (but need to run experiments and assess different options).
- Not enough resources/team/people to maintain growth. This happens when you have fundraised money and the ability to intelligently invest it has surpassed the pressure due to decisions and the way your industry moves.
- You want to reduce costs on your operations while growing. Many people like to augment or reduce the workforce depending on the sales pipeline, certain goals or particularly the strategy itself.
You need help from an external source not biased by the internal culture. In the enterprise world, typically for an entrepreneur, there hasn’t been anybody involved in the challenges that building a product can create. Having a team dedicated to that task might accelerate the roadmap and action plan.
You want to improve in the software field: decisions, practices and quality. Even if you have an internal team, your core business doesn’t rely on Software. People relying on designing, building and scaling software products might fit here perfectly.
Being in one of the previous categories is the reason to choose a Software Partner (note the use of the term “Partner” – the best strategy is to develop a long-term relationship rather than a superficial “vendor” relationship).
From a provider perspective being a plug-and-play resource is hard to sustain due to the operational arrangements needed as a company where the most valuable assets are inside the head of every member within the organization. From the customer perspective, the relationship becomes ephemeral, neither essential nor even part of the strategy for the company acquiring the services. It may be acceptable for the early stages of a company but will affect a valuable involvement for both sides.
Before assessing possible partners be aware of your company’s internal requirements. The essentials are:
- Having a technical person on your team, typically, the Product Owner.
- Embracing change as a constant: modern tools, technologies and procedures.
- Considering a company fully dedicated to software gives them the capabilities to understand the complexities of building something intangible and technical at the same time. The partner you would consider should have experience in handling teams of 10, 100, 1000+ technical people, combining disciplines to produce an outcome, or overcoming from downtime on services affecting thousands of customers on the internet.
Start your selection of partners
Once you start your bidding procedure, the main points you need to consider are to be aware that you are pairing with the best of the best for YOUR situation. It won’t be the same for a large company with legacy systems compared to that startup business that likely won’t have any kind of product already operating.
Like any other partner and vendor, culture is essential to make the chemistry happen. Sharing visions, values and the mission day to day will help.
It is important to see relevant work from any partner and relate it to the value they are offering you, the customer. There are many companies outsourcing their value proposition to other companies, and it is not clear how they are handling those external parties or how the process is controlled. Also, asking for previous customers, conquered challenges, strategies and solutions are essential to understand the capabilities of the company.
Tools & Practices
More than talking about modern tools and practices, I would say the most important thing is the capacity to decide on the best tools and practices depending on the situation. There are different programming languages, frameworks, engines, and a ton of different practices to implement software. Implementing the best mean to an end is what your company needs.
People behind the partner
Ask the partner about the background of the founders, advisors, the board members, and the day-to-day operational members of the company. What are their achievements? Can they talk about contributions to the software industry in open source? Do they offer any outside learning & development resources to their developers? Workshops? Conferences? All this information has a lot of meaning. A company committed to the industry is a company committed to helping others to succeed.
Quality of their work
Ask the partner about their metrics — how they are measuring the quality they deliver to their customers. Many companies don’t have any metrics besides delivering in a timely manner. But other factors are important to consider: satisfaction of the customer, velocity per deliverable, service guarantees, attention, among others. Try to talk to previous and/or current customers of the companies you are looking to partner with and see what they say about their entire experience. Expect good and bad comments — understand that many times the customer (particularly the product owner) has an affect on the outcome, but contrast those comments with all previous points.
What about pricing?
Pricing depends on different things but the main factors are based on:
- Geographic location of the team providing the service
- Type of expertise provided during the relationship
- Type of service provided during the relationship
- The sum of all points previously mentioned
In terms of proposals, you will find only two possible approaches: 1) Project Scope and 2) Times and Materials. The first approach considers a scope in terms of effort, milestones and a concrete deliverable, possibly with guarantees around the service. The second approach is the most typical for the Maintenance of existing products, but many software companies price their services based on this. Typically it is the calculation of people involved with a customer times the number of hours involved per month times an hourly rate.
In case you and your team don’t have any knowledge of building software, it can be more expensive due to bad prioritization and misunderstandings of technical requests affecting the product roadmap. Additional things should be important from a pricing standpoint such as legal, time zone handling, national culture, among others, but those are external factors for the decision you are making.
This answer on Quora explains with great detail the different situations around projects and pricing on software services.
Retaining the value of your team
Don’t think this partnering strategy is to substitute a potential internal team. The strategy we are talking about should promote collaboration and benefit of the company looking for a software partner. It will mean investment to accelerate its path to access a more capable technical team and absorb a complete method to build better software.
Keep in mind:
- Your recruitment procedure should be happening all the time.
- Train and motivate your people, always.
- Define procedures and knowledge ready to share at a moments notice.
- Start and/or grow your internal team along with the partner strategy.
More than vendors, you need to seek partners and allies with whom to grow. More than a company to delegate work, you need to count on experts challenging the status quo, questioning decisions from the past and proposing things that will help to achieve the mission of the company.