July 17, 2019
The right technology stack is only half the battle when it comes to securing the success of your future project. Think of it like this—each element in the stack is a good-quality brick that can be used to build your project, while the software agency is the craftsman with the requisite skills to put these bricks together into a successful piece of software. However, going about the process of choosing the right craftsman can be a hassle. What should you look for in the hundreds of software houses out there, where should you outsource (nearer or further?), and how can you make the whole process of outsourcing easier and more effective?
In this article, you’ll find a bunch of useful tips and advice on how to choose the right software agency for your project. It doesn’t matter whether you already set your sights on outsourcing or not—you can use this list to choose vendors of almost any type. So read on, and make a fully educated decision about your business.
It’s best to begin your assessment by going online and doing some light investigative work on the software development company of your choice. Poke around their website and see if they have experience in building apps similar to what you’re interested in. If they have a portfolio, spend some time browsing through it, focusing on the designs and the performance of their products. Which of their successes are they most proud of? Do the projects they delivered include any well-known brands or products? Pay attention to the case studies and client testimonials they feature, as they speak louder than any other form of content.
You can also use third-party services to gauge the performance of a software development company and what its clients think about it. Websites like Clutch are a useful source of information on your potential contractor. If the software house you’re considering is listed on Clutch, it means the company has a number of verified reviews from former clients on record, so be sure to make it one of your first stops when checking a company’s credibility and skills.
If there’s little information available, or you feel like you’d want to know more, simply ask the software house to provide references. Considers downloading an infopack from their website for a more comprehensive insight into their offer. It might become really useful in the process of first offer overview.
While many projects can be delivered successfully regardless of where the software development company is headquartered, sometimes the location of your contractor matters—usually when there are specific business needs or project requirements involved.
When based in such cities as Berlin or London, hiring your own in-house developers will carry a much heftier price tag than outsourcing the job to a team, say, in Eastern Europe, or will be simply impossible due to the shortage of skilled specialists. That’s why nearshoring has grown so prevalent in recent years. In fact, Poland has recently become the leading software development hub for the United Kingdom, Switzerland, and the United States.
Naturally, with offshoring, the time difference might be an issue if you’re in need of quick-fixes or real-time communication. On the other hand, however, offshoring companies can usually keep up decent quality work at relatively low cost. Also, the type and scope of your project might not call for real-time feedback. With nearshoring, communication isn’t an issue, which is particularly important in large-scale applications that require constant maintenance (think big e-commerce stores and similar).
There’s also an option of simply hiring a software development company operating within the same country as you—a practice called onshoring.
Onshoring, nearshoring, offshoring.
During your hunt for the right software development company you might find yourself looking at rates. When you see lower rates, you might be tempted to give something cheaper a go—which is only natural. And indeed, sometimes you really can find that rarest of gems, quality software development for cheap. However, there’s an interesting twist to consider.
We all know there’s no such thing as good, cheap, and fast at the same time. And if you go for just “cheap” you might soon find yourself having to spend much more money than you initially planned for. Why? Two reasons: 1) when someone doesn’t know how to do something, they’ll need more time to finish a given task, or 2) you will spend more time fixing the resulting bugs later down the line. See for yourself—
Sample developer rates:
Let’s do the math:
The first option might seem cheaper—hey, it’s $10 less. But developers from software house B can do the same task 20% faster, which leaves you with the exact same budget. Multiply that by the time necessary for the whole project to be completed, however, and you definitely lose time with the cheaper option.
Hence, beware outsourcing companies whose services are temptingly cheap (or overly expensive), or whose street cred is below industry standards (because, in all likelihood, so will be the work). Instead, aim for a good balance of price and quality.
Did you know that you can ask for so-called blind CVs of relevant developers and the projects they delivered so far, as well as simply ask how many years of experience they have in a specific technology?
It’s important to have your project in the hands of developers with vast experience in delivering similar work.
Inquire after the composition of the team that is or will be responsible for your project. Does it have project managers, quality assurance specialists, account managers? It’s important to find out how much supervision you will have to do and whether they will be able to work on their own.
Project managers serve as a link between you and the rest of the team. They hold the team together, ensuring the work is progressing in the right direction.
While having a dedicated Project Manager on board is standard nowadays, good agencies go a step further, offering their clients a dedicated customer success manager (yes, you can expect that at Monterail). Account Managers, meanwhile, will be your key point of contact, caring about your interests and handling whatever problems you might have.
Why is this important? A well-knit team where everyone has clearly defined roles and responsibilities is a sign that work on your project will be highly organized, focused, and efficient.
It’s also important to know whether the software development company uses tools that facilitate planning and progress monitoring. Apps such as Jira, Trello, or Redmine keep everyone involved in the project in the loop and up to date. They also ensure transparency (you know what’s currently being worked on and how long it took), so there are no murky spots when it comes to invoicing.
Jira board used in software development at Monterail
Some software development companies offer business analysts for an additional discovery phase, during which you can gauge the viability of your idea against similar ones already brought to market. Companies that have a Business Analyst at their disposal actually invest in your product, as they dedicate time and personnel to digging deeper into the project scope and do their best to realize your business goals. It’s crucial to have your tech partner understand what you want to achieve business-wise.
However, keep in mind that having a discovery phase is not a rule among software development companies, so once you come across an agency that follows the practice—keep it close.
Communication is key to a good working relationship and a satisfactory end product. You should experience impeccable, high-level communication from the very start of your journey with a software development company.
Both you and your PM should be able to communicate clearly and efficiently. Being inundated with jargon or language that is too technical might leave you struggling to understand everything that’s happening. That’s why clear and easily understandable language is crucial to good communication. Also, your PM should inform you without delay about any setbacks in development or other issues that may hinder the progress of your project.
Your software partner should keep you in the loop at all times, so it’s important to check out whether they stay transparent. Do they have a Slack channel open for you, with access to the entirety of their project-related communication, or do you only get to see snippets of conversations via email?
These days it might seem redundant to include an idea like this on the list, but you’d be surprised by how many software development companies go about their without imposing any semblance of structure onto it. Having that in mind, we advise you to inquire whether a software agency you think about working with employs any of the popular and effective development methodologies such as SCRUM or other Agile approaches.
Not everyone knows this but as a client, you are part of the team, as per the SCRUM methodology. Since according to this methodology work on your software is split into sprints—brief weekly/bi-weekly development periods—you should be invited to share your thoughts on the progress the team is making and suggestions on possible improvements. At Monterail, the client is an outright team member and always takes part in weekly calls.
SCRUM also has a number of benefits:
Unless you’re building a small app for a limited number of users, make sure that the software development company of your choice is capable of building applications that can easily be scaled in the future. There are technologies and programming languages that make it easy to accommodate a growing number of users and traffic, even without spending additional money on scaling the architecture (whether vertically or horizontally). Think Elixir, for example.
Take a closer look at the development process and the workflow, too. A good software company will most likely start the software estimation process with the first ballpark. Such an estimate will usually be based on basic information including your business needs, target audience, timeline, and budget.
You can expect a full estimate after you sit down with the software development company to hash out the details. That happens during the above-mentioned discovery workshops, the goal of which is to learn more about your specific needs, draft a detailed project scope breakdown, and agree on the MVP.
During these workshops, you will work together with your partner to determine project milestones, a roadmap, and agree on the timeline and a budget (both a pessimistic and optimistic versions—so you can be prepared for every contingency). Don’t be discouraged when they don’t just agree on whatever you request, no questions asked, and instead challenge you, or suggest new ideas and solutions. You’re paying for their experience, so they should be able to suggest a service-level agreement based on what they’ve done with similar projects in the past.
This is especially important in the case of large-scale projects, which require pretty much constant maintenance to run bug-free and have to be able to operate at peak performance capacity during spikes in traffic. Since the developers you chose to work with know your project inside out—they developed it, after all—they’ll be the best choice for post-deployment maintenance. Be sure to ask whether they offer it.
No matter how skilled a developer or how meticulous a software development company is, building entirely bug-free software is impossible. Testing during development is a very important part of the whole process—it lets developers catch errors fast and amend the code to eliminate them. This way, your app is not only finished in a timely manner but the risk of bugs springing up following deployment is kept to a minimum. Ask whether your chosen software agency has any quality assurance on board.
This point is probably the hardest to verify when looking for a software development company—how to make sure you’ll get on well? I don’t have a golden rule for ensuring culture fit success, but I do have a few suggestions that might give you a clue on where to start.
First, browse through your prospective partners’ websites or a blog and see whether they talk about their company values and mission somewhere. Is it written down and consistently considered a benchmark for all their efforts?
Second, check out their social media outlets. Besides reading useful reviews and comments (both from clients and employees), you’ll see what kind of brand are they building and what content they consider noteworthy. It will give you a picture broader than the official statements on the website.
We’ll conclude with one of the most important aspects of software development—security.
Security is crucial while your project is still in development and after it’s already deployed.
Ask how your intellectual property will be managed and secured, and what kind of security measures will be used during communication and development. Is access to every platform and environment protected? Will they be using services such as LastPass to store and secure the passwords? Are their development practices GDPR-compliant?
How your future application or software will fare depends on the skill and experience of the software development company that develops it. Choosing the right agency is therefore crucial to achieving your desired business goals and ensuring that your customers get to experience a bug-free, highly performant, and usable piece of technology.
When you’re planning to outsource long-term, look for a partner able to meet both your current and future needs, whatever they might be.
One last thing to remember during the process of software development company verification is the openness and flexibility of its staff. You’ll enjoy your future cooperation much more if everything is transparent and unforced from the moment you begin discussing your project.