Whether you’re about to embark on creating a new product, or looking to replace your existing outsourced development team, choosing a company that fits your needs is an important decision. Making the wrong choice when choosing a partner to work with can often result in a pretty bad outcome. Whether you end up burning through the budget to find that your project is only half complete, or get burned with poor quality results, it can be a really negative experience.
When choosing a company to help you with a new project or engagement, it’s important to choose the right one to avoid these types of issues. We’ve brought together some of the most important considerations in this guide, as we lead you through this exciting journey. So, grab your backpack - let’s get going!
Getting your house in order
The start of finding a great company to work with is by… taking a good look at your own company! External software teams range from a few highly creative developers running the show, to multinational setups catering for the large enterprise sector. It’s important to identify what is going to work well for you.
Consider your needs, and identify your gaps
Take a look at your internal teams, and have a think about what skill gaps you have that relate to the current project. It may be that this is your first time creating a digital product, or perhaps you already have a team of developers working on other systems, who will need to integrate with the external company. If there is going to be a mix of internal and external developers, you may consider how “embedded” they’ll need to be. For example, it may be that your team just needs to be on hand to answer any questions, but in some cases, it would make sense to look for an external team that can be located on-site.
Next is the technology. It may be useful to get some outside advice if you don’t have an existing technology “stack” that your project needs to fit with. In many cases, you’ll at least need to consider your IT infrastructure, and how this may need to work with any new developments.
Project management is another area where companies can be very different. Again, have a think about how you’ll be looking to run this project. There will very often be other internal tasks that you will need to take care of to ensure that the thing you’re developing is a success. It often makes sense to have someone running the project from within your organisation, but it can be useful to also have a dedicated person overseeing things within the external development company. This is useful not only for a single point of contact but it can also take the load off of your team needing to constantly check in on progress across the external team. A good external partner should be able to work within your needs here.
Nail your requirements and expectations
It’s fair to say that some software companies can be a great help in shaping a project to be at its best - especially considering that these teams deal with different propositions all the time. What you will want to do, however, is carefully consider what you are trying to achieve.
When it comes to the initial meetings with prospective partners, they’ll be wanting to dive deep into the project itself. This helps to give them a good idea of what they are signing up for, and how good of a match they’ll be for it.
It can save a lot of time, in the long run, to really consider what your goals are with the project. Being able to confidently speak about why you are undertaking the project, and what the background is can help an external company to understand what the measures of success will be.
Finding great options
It’s fair to say that there is a lot of “noise” out there from the hundreds of available companies trying to push their services. The problem with this as a potential client is that it can be hard to know exactly which are the great ones amongst the rest. Thankfully, we’ve got a few tried-and-tested approaches that tend to yield the best results.
Look for past relationships
The first place to ask for recommendations is from your colleagues. Depending on the makeup of your team, there is a good chance that some of them will have worked with agencies before in their previous roles. Whilst the circumstances of your new project might not exactly match the previous work, the other benefit of asking your team is that they should also have a good understanding of what will work best going forward.
Ask your network
Social media is making it easier than ever to maintain a large network of like-minded individuals in a similar environment to yourself. LinkedIn is a great example of this, and they can be fantastic resources to get real advice for a good match. Asking your network for recommendations can help get past the marketing spiel of a company and help you to find ones that people have already vetted.
Know what to search for
When you’re searching for a company online, it can be helpful to think about what exactly you want to be searching for. Being laser-focused with your search terms can help to quickly get to relevant matches.
A quick word on names is needed here. The terms agency and consultancy often get used interchangeably, even though they do have different meanings. Agencies are generally more geared towards solving immediate goals, whereas consultancies can be good long term partners involved in solving strategic needs. Have a think about which type would work best for you, but be aware that many companies still label their services under the wrong term. Indeed, it may be worth searching for both. As a tip, you can use the OR keyword in a google search to find results for both at the same time. For example: “mobile app swindon agency OR consultancy”.
You’ll want to be as specific as possible with your search to narrow down your results. Searching for “app development company” yields about 2,470,000,000 results - that’s quite a few to decide between! And there’s a fair chance that your ideal match is buried deep in that list. Just a few more specific keywords will get you much closer to a good match - for example “finance app developer” or “react web app development company”. Again, this is where our prior thinking about our specific needs comes in handy.
Evaluating a company
Hopefully by this stage, you’ve got anywhere from one to a handful of companies that you think might be a great fit for your software needs. Phew! Now we’re at the exciting part of actually reaching out and speaking to some of the people that we might be working with very soon.
We’ve got some points below that form the basis of helping to evaluate a company against your needs and situation. With the understanding that we gained by already thinking deeply about our needs, we can now really start to understand the fit of a prospective provider.
Think about location and time zones
Modern remote tools such as online video conferencing (and even email!) have made working with teams on the other side of the world a very viable option. Even with these tools at our fingertips, it can be worth thinking about the benefits of having a team who is able to meet you in person.
Starting with the most extreme example, you may be looking for a team to be onsite, physically in your offices, for a good part of the project. In this case, you may well be restricted to local agencies (never a bad option anyway!), who are able to easily commute. Some more “national” companies will happily travel to a client location, but it’s worth investigating if the extra expense of commuting or accommodation will be passed on.
Even when the team will be working remotely for the majority of the time, it can be really useful in the early stages of a project to be physically located together. Even when compared to an equivalent video conference, it is much easier to read non-verbal language from others, helping with understanding. This is especially true when you’re pulling together two groups of people who likely haven’t worked together before, and had time to really get to know each other. It is also a more natural setting to allow for the quieter voices in the room to come through, who may be more inclined to stay quiet in a virtual appearance.
That’s not to say that entirely remote companies can’t work well together, and as before, technology is certainly reducing the friction that can sometimes arise. Costs can also be saved by looking for “offshore” teams. It is, however, worth considering how much extra time and effort will be involved in managing a relationship over this type of distance, and weighing that up against the cost savings. Collaboration and timely responses can require extra planning, especially when a company exists in a different time zone to yourself.
It can be useful to ask yourself how often will you need to communicate, or collaborate with the remote company throughout the project. What will happen if something goes wrong, and you need to speak urgently, for example?
If the company is located in another country, ask them if they are used to working with clients in different locations. They will hopefully be able to give you an idea of how well they are set up for it.
Weigh up your expectation against budget
Budget is a fundamental element of almost any project, but there are many different ways to spend that money. Naturally, you’ll find that more experience and quality tends to cost more. When you’re spending money for your company, it’s often not about the cheapest option - it’s the least risky option that’s important. In the next section, we’ll look at experience, and tying together a quality agency with relevant experience is a good way to begin reducing risk, and in turn, increasing the chance of real success.
Quality can be a difficult thing to judge from an agency. Looking at their prior work (such as from case studies) can certainly give some indication, but remember that they may also be dealing with budgets of all sizes, and highlighting the top tier.
You should also be wary of things that either sound too good to be true, or unambiguous and vague. This can be an indicator that perhaps the quality isn’t going to be there. For example, a good software company will be as upfront on expectations as possible. They’ll also be trying to work with you to understand not only your budget, but also the value of the project to your company - and giving advice where they can. One thing to watch for is if they are saying “yes” to everything. This tends to either underline a lack of experience in what’s possible, or a very eager to please, with what will likely end in unrealistic expectations.
Look for relevant experience
We are in a world now that’s god plenty of fantastically diverse companies. There has been a trend over the past decade towards agencies and consultancies specialising in a specific sector, technology, or approach. This has become a necessity with the huge variety of different software projects and applications that are now being developed. As such, there’s never been a better time to find a company with super relevant experience for your needs.
Finding someone who has either worked directly in your sector, or with similar companies before can be a real benefit in them already having an understanding of some of the nuance and requirements of your industry. It’s also nice if they understand some of the industry lingo, and can both understand, and speak to you, in the language you and your team use each day.
If you’re looking for a specific type of technology, you can also look for experience in it. Sometimes this will be listed out on the agencies website, but you might also find details of it in their case studies. Sometimes, you might also be looking for a team that is well experienced in navigating new technologies, or ideas. This is especially important if you’re looking to undertake a project that is really groundbreaking or unique. It takes a whole different skillset to be able to pick up new ideas and craft success from them.
Sometimes, looking for more of a generalist company, with a range of experience, can also be a great benefit. Especially in the instances where you want to get input into the product and experience itself, this can give you some great insight and ideas.
Again, you’ll be able to look at case studies and showcased work for a good idea of the match here. Case studies in particular can be useful, especially if they outline how and why they came to the solution they did.
Ask what their normal project lifecycle and processes are like
Are they upfront about how they run projects? This speaks again to experience, and having a team that knows how to run a project is a very good thing. One of the big benefits of using an external company for project development is that they normally have a range of skill sets, along with prior experience, so that they can immediately hit the ground running with any given project.
It is worth considering integration points between the two of you. Again, a good agency should be able to advise here, and you’ll want to ensure that there are good communication channels, and the right amount of feedback or collaboration sessions.
In many cases, it makes sense to first develop a “Minimum Viable Project” (MVP) when taking on a larger piece of development. In many cases, this is a great way to reduce risk in the long term. It can also help to scope future work, if that hasn’t yet been done in any real detail. Good software teams are normally very good at breaking down larger problems and goals into a realistic schedule of work.
Look for a sense of genuine curiosity for your project
A sign of a great outcome is if the agency or consultancy appears to share a genuine excitement about the project. Whilst you’re not going to get this every time, it can be an indicator that they will be invested in the success of the project, beyond just the contractual obligations (to some degree, at least). Whilst not foolproof, it can also be a sign that the agency feels they can do a really good job meeting, or exceeding, your expectations
An agency with a wealth of experience will tend to also try and provide some outside perspective in the initial meeting. They may give some insight to help align expectations, or even just to float some ideas.
Generally, some shared interest in the project is a good way to gauge some early fit and match in personality before getting to know each other.
An understanding of the wider picture goes a long way
Like we mentioned before, the better companies often specialise in a particular area. For software teams, that may often mean that they only provide pure development services. Others may also couple complimentary services, such as design, or UX, to provide you a more complete product development package.
In either case, having a company on board who has a real awareness of the need for the other parts of successful products is a real benefit. No successful product comes without relevant marketing, a solid release strategy, or many other important factors. You certainly don’t be put off if the company can’t provide all of these services themselves (indeed, be wary of those that can do it all - you’re not looking for a “jack of all trades”). Most companies of good standing will have a network of partners they can refer you to if necessary.
A great software team will be able to help ensure the development factors in the other areas well. For example, they may prompt the question of whether integration of a Content Management System (CMS) is useful, to help a content team make changes going forward. They may also be asking questions to try and help the release strategy and marketing efforts, and can likely help with providing assets, etc.
Ask how quality is going to be controlled
This is a great indicator of how professional a team is. You should at least be looking to get confidence that they are going to be managing quality before handing things over to you, such as going through a rigorous internal testing process, or having their developers undertake practices such as “test-driven development”.
A really great team will be able to pull on their experience and let you know that they’ll be working with you to cover important factors such as implementing solid security, protection against data loss, ease of maintenance, and high availability.
Look for long-term relationships over high-volume turnaround
The better companies will aim to be forming long-term relationships with you. Not only does this make a lot of sense from their side as they want to see repeat business from clients, but it’s also a great benefit to your company. If you have a solid and proven agency that has delivered in the past, it makes the process of undertaking new projects much easier. Along with not having to go through the search for another provider, in many cases you’ll also be able to skip the normal “setup phase” where you need to give access to systems, and introduce your company.
Good companies will also be asking questions early about your need for long-term support and maintenance, and can work around your needs. This shows not only that they care about the long term success of the project, but also want to make things as easy as possible for your company going forward.
In short, taking on companies who seem like they are looking for high-volume work and looking to quickly get projects out of the door, might not be the best strategy in the long term.
If you’ve made it this far, then, well… thanks! We’ve poured a lot of love into making this guide as helpful and complete as possible. We really hope that it has given you some thoughts around how to improve the chances of success with your software investment, whatever form that takes.