Mobindustry merges with Apriorit,
a Specialized Cybersecurity R&D Company
Month: August 2022
Software Vendor Selection: Criteria, Evaluation, and Process
Choosing a vendor for IT outsourcing services is a major commitment. But it may be hard to see through the loud marketing of software development companies, most of whom have professional developers, great portfolios, and years of experience.
Unfortunately, it’s not that rare for a seemingly good company to deliver bad code, implement the wrong software, or create good software but implement it incorrectly. Sometimes, code and integrations work well at first, but then you discover that your software is inflexible and hard to maintain when you try adding new features.
Our company has worked with many clients who have asked us to fix software created by other vendors. In some cases, it has been easier to develop it once again from scratch because of architectural issues.
In this article, I’ll talk about how to choose a good software development vendor and see through the pretty pictures and reassuring slogans. I will walk you through the whole software vendor selection process and all the vendor selection criteria to pay attention to, from price and time estimates to experience and skills of the development team.
Top 4 misconceptions about choosing a software development vendor
There are some unreliable yet popular strategies for choosing a software development vendor that can result in your making the wrong choice. Before we talk about the most important criteria in choosing a software development company, let’s look at the four strategies you should avoid.
1. Assuming that a time and budget estimate is precise and is a good criteria for choosing a vendor
Some clients get quotes from different companies and choose the company that promises the fastest and cheapest development. However, a project estimate can never be 100% accurate. No developer, even the most professional and experienced, can make a precise estimate without knowing all the details of your project.
There are so many factors that can influence the development time, and the bigger the project, the more unexpected issues can arise. These can include unestimated risks, integrations with your existing system, third-party services and APIs, and human factors.
Estimates from different companies can vary drastically. But in reality, the lowest estimate can take the longest time. Generally, rough estimates have a 30% accuracy.
To get a more accurate estimate, you need to discuss your project in detail with the vendor. Here are the steps to getting a detailed estimate:
- Start with a rough estimate based on your vision. The vendor will compare your vision to projects they have already done for other clients and will provide you with a very rough estimate.
- Get a proposal. A vendor estimate is based on core functionality that products of the same type as yours usually have. A proposal is made after a more detailed discussion of the product, and it contains a cost and time estimate.
- Conduct a discovery phase. At this point, we involve a business analyst who creates a technical specification — a document that has all details of the project, from its tech stack and functionality to all third-party integrations and names of stakeholders. A technical specification also includes UI and UX design.
- Get a developer estimate. After the technical specification is ready, the development team will estimate each feature and each integration. This will result in the most precise estimate you can get, but it will still vary somewhat from how everything unfolds in real life.
2. Taking a company’s hourly rate as a predictor of the final price
Sometimes, a client chooses the vendor who offers the lowest hourly rate. Of course, the difference between $20 and $50 per hour is immense, especially when multiplied by the number of hours in the estimate. But if you choose a company with a lower rate, it doesn’t guarantee that you’ll spend less money in the long run.
Management skills matter more than the hourly rate. A cheaper company may have poor management and less skilled developers that will spend 20 hours on a feature that could be implemented in four hours. By working with such a company, you risk missing deadlines and building a poor architecture that you’ll spend more money fixing than developing.
Although the hourly rate influences the final cost of your project, it may actually be more effective to work with a company that charges a bit more. The main factors when choosing a software outsourcing vendor should be their skills, management, and effectiveness of cooperation.
3. Assuming that your vendor is merely an executor for your project
If you’re just looking for a developer while you handle all the product and project management, then that developer can just execute tasks. However, programming is a complex and dynamic process, and each problem has lots of possible solutions. With experience, specialists like programmers, designers, project managers, and testers are able to choose the best solution for each particular case.
It’s optimal for your business to partner with a proactive vendor who offers better solutions and uses their expertise to foresee potential problems and prevent them before they emerge.
A good vendor that has spent years developing hundreds of products should be tracking recent trends and best practices in web or mobile development and should offer to implement them in your software for better performance and maintainability.
4. Assuming that if you choose a fixed-price model, you won’t exceed the budget
On paper, when you choose a fixed-price model when partnering with an outsourcing provider, it’s the company’s responsibility to count all the risks and provide you with a precise estimate.
However, as the project goes, your priorities may change. You may want to get rid of something or add functionality, but you won’t be able to do so without exceeding your budget. Also, because an outsourcer wants to protect their business too, a fixed-price estimate will typically be higher than what you would pay if you were working according to a time and materials model.
Fixed price model limits the flexibility a modern business needs to adapt to changing market conditions, and is suitable only for small-size projects
When working according to a fixed-price model, everything has to be perfect: Your vendor should be risk-free and your business should be rock solid. This is rarely the case in the real world, and with fixed-price development you risk getting a product that won’t be suitable for your business by the time it’s built.
This is especially true for large products in competitive industries, where trends and requirements change constantly.
Now, let’s talk about concrete criteria for choosing a software development vendor. What should you look for in your ideal development partner?
The most important criteria to look for in a tech vendor
Let’s review all the green and red flags you should look for when selecting an IT outsourcing vendor.
Clear understanding of requirements
If a vendor asks you lots of precise questions about your project, that’s a green flag. Some clients think that getting asked lots of questions is tiring, but it’s actually a sign that:
- The vendor deeply cares about the outcome of the project and meeting your expectations
- The vendor knows how a good development process works and what has to be decided early on
Even if you think your project vision is crystal clear, it may still have lots of hidden issues that only someone with vast development experience knows of.
If a vendor provides you with an estimate without asking for more details, this may be a red flag. Such behavior can lead to more risks and unexpected expenses in the long run.
Even if you think your project vision is crystal clear, it may still have lots of hidden issues that only someone with vast development experience knows of.
If a vendor provides you with an estimate without asking for more details, this may be a red flag. Such behavior can lead to risks and unexpected expenses in the long run.
Proactive suggestions
You don’t want to find a vendor who just does what you say without suggesting solutions based on their experience. Look at how a vendor behaves at the pre-planning stage.
If they have a vision for your project and if your vendor suggests technologies, specific architectures, and even features that will make your product better for your business, it’s a green flag.
With an estimate, you should get a list of functionality and suggestions on solutions that will help you prevent compatibility, maintainability, and scalability issues in the future.
Taking responsibility for code quality
When businesses look for software development vendors, they usually pay attention to development experience and skills. However, it’s vital to also review quality assurance practices and user data protection.
Some clients prefer to handle quality assurance themselves, but a good vendor will still check their software after each iteration before delivering it to the client. This is a sign of reliability and taking responsibility for the work.
A good vendor will outline all necessary QA activities for your project and integrate them into the development plan. Don’t neglect these procedures, as they will ensure you get a quality product that won’t compromise your or your users’ data.
Clear workflow and comprehensive tool set
Your vendor should have a clear algorithm for working on your project, which they should present to you before development starts. Most vendors work according to an agile methodology that divides the whole scope of work into sprints.
Each sprint is evaluated at the end, and the next sprint is defined based on the results and your business needs.
A good vendor will use these development principles:
- Test-driven development
- Code reviews
- Regular code refactoring
- Continuous integration
- Version control
- Rigorous documentation management
Also, during the software vendor evaluation process, ask your potential vendor what tools they use for development, testing, management, and communication. At Mobindustry, we use:
- Jira and Atlassian for project management and time tracking
- GitHub or GitLab for source code and version control
- Jenkins and GitLab CL for continuous integration
- Firebase for analytics and reporting
- Balsamiq for wireframing and mockups
- Figma for design concepting
- ProtoPie for concept animations
Risk management
Ask how your vendor will handle the situation if something goes wrong, and also how they will prevent things from going wrong in the first place.
Good IT companies should talk about possible risks at the very beginning of your project and communicate with you transparently. These risks may include:
- Incompatibility or limitations of third-party service integrations
- Potential risks like incompatibility with newer technologies and changes in framework versions or operating systems (For example, when Apple made a huge update to Xcode, it took extra hours for developers to adapt software.)
- The need for new functionality that’s incompatible with the whole system
- Miscommunication
- New factors that emerge during development that require new planning
- Human resource risks (sick leaves, hiring new developers and time needed to adapt for a new project)
Your vendor should understand all the potential risks and should always warn you if something emerges or is going to happen. A good vendor will try to prevent any hurdles, but will alert you immediately if they appear so there are no unpleasant surprises after deployment.
Communication
Communication is one of the most important outsourcing vendor selection criteria. Good communication is 50% of success, so before you sign a contract, you need to make sure your communication with a vendor is great.
When selecting a software vendor, your candidate should offer you multiple communication tools, plan your communication, and define the level of your involvement before the project starts. At Mobindustry, we also send regular reports to our clients where we clarify what we’ve done and what’s planned for the next week.
You should be able to influence the project flow without disturbing it so that your project’s deadlines and your budget aren’t compromised. To do that, your vendor should give you clear tools and a timeline for you to make changes to the workflow.
It’s also a great idea to communicate offline. At Mobindustry, we used to visit our clients before the COVID-19 pandemic, and we plan on resuming this practice as soon as it’s reasonable to do so. Meeting in person is a great way to get acquainted with the whole team and discuss the most important issues for the project.
Time & cost estimate
Of course, a time and cost estimate is a fundamental factor that influences the choice of a vendor for most clients. As I already mentioned, the hourly rate doesn’t necessarily determine the cost-effectiveness of the development team, as a vendor with a higher hourly rate may simply complete tasks faster and more effectively while also saving your nerves.
How can you determine the vendor with the best price–quality ratio? My advice is to ask how exactly a vendor has approached the estimate. Your vendor should be able to answer that question in detail.
A good vendor will recommend you complete a discovery stage before estimating and planning your project in detail. Though a discovery stage requires an investment, as you’ll need to pay for the time of a business analyst, it will save you money in the long run.
During a discovery phase, a vendor learns about your business and plans how the software you want to develop will help you reach your goals. During a discovery phase, a vendor will help you:
- Analyze your competitors
- Gather software development best practices
- Suggest potential monetization options and new revenue streams
- Create your user persona
- Build user stories and help design the user experience
- Create a technical specification
- Formulate the features for your MVP
All this will minimize risks, help you get the most precise estimate possible, and make sure you get exactly what you expect.
Now you know how to evaluate software vendors according to our software vendor selection checklist. Let’s find out how exactly to shortlist vendors and interview them to be able to find those green and red flags.
6 steps in the vendor selection process
Formulate your vision/technical specification/RFP
There are several ways to approach a vendor. You can come to them with just your vision for the project, where you describe your overall goals and core functions you’d like to see in your software.
Another option is to create a request for proposal (RFP). This is a detailed document where you ask your vendors questions about them and their work and also provide enough information for a preliminary estimate. Then you collect all the replies to your RFP from vendors and make your choice.
You can also approach vendors with a technical specification, if you have one. This will save you time and also allow you to get a more detailed estimate right away.
You can choose either of these strategies, but you’ll likely need a technical specification anyway. After you choose what to approach your vendors with, it’s time to start the next stage of the IT vendor selection process: shortlisting.
Find and shortlist your vendors
There are several ways to find vendors. Let’s review the best.
Word of mouth. Ask for recommendations from your partners and acquaintances who have already used outsourcing services for their projects.
Listings. Platforms like Clutch and Goodfirms provide honest reviews about software development companies. Use them to find out more about projects a company has completed.
Blog. Many software vendors showcase their expertise on their blogs. You can simply search for something you’re interested in, such as How much does it cost to create a marketplace? and you’ll end up on developers’ websites with expert content.
Portfolio. Usually, you’ll also be able to look at a portfolio on a vendor’s website. Make sure your potential vendor has experience creating similar products to what you have in mind.
Reach out to vendors
Now it’s time to discuss your project with potential vendors. Provide them with your vision, RFP, or technical specification and evaluate their estimates, suggestions, and communication skills.
A request for proposal is a great way to standardize all the information from your vendors. Providing an RFP will make it easier for you to evaluate and compare vendors. After you sift the proposals and come up with a shortlist of candidates, it’s time to communicate with them more personally.
My advice is to have a one-hour interview with each vendor. This way, you’ll be able to listen to different opinions and get a better understanding of how well you can communicate with vendors. Ask questions about their experience, workflow, recommendations, and completed projects.
Test your vendor
Some companies prefer to test vendors in action and sign a contract for a minor development project, such as implementing a single feature or integrating a third-party service. This helps a business evaluate the quality of work and communication and make sure the vendor can be trusted with a larger project.
Your software development vendor should encourage you to test their hard skills and suggest best technical solutions for your project
It’s also a good idea to conduct a technical interview with developers that will work on your project. If you don’t have any technical expertise in your company, I encourage you to involve a third-party specialist you trust. A successful technical interview is one of the important criteria for evaluating software vendors.
Choose your perfect vendor!
Now it’s time to make a decision. Evaluate all the information you’ve got from your vendor, along with their communication skills and proactiveness. To sum up, here are the factors that should influence your vendor selection in outsourcing:
- Proactivity and suggestions
- Risk management skills
- Communication skills
- Involvement in your business
- Service quality
- Reviews and portfolio
Final thoughts
In this article, you’ve learned how to select a software vendor, and you can use this article as your IT vendor selection criteria template.
A company’s hourly rate and a time estimate for your project shouldn’t be the deciding factors when choosing a vendor. Great technical skills, communication, proactiveness, and management skills are way more important for your project’s success.
A good vendor will ask you many questions about your project and pay attention to each detail. They will also have a stable workflow and an organized way to communicate with you and report their work.
When choosing a partner for your project, pay attention to their suggestions and their eagerness to make your product better. A good vendor will strive to create software that’s actually useful for your business and your users.
If you have any questions on how to choose a software vendor or if you’re considering adding Mobindustry to your vendor shortlist, don’t hesitate to contact us. We provide full-cycle development, from the discovery phase and technical specification to quality assurance and maintenance.