Any software development project begins with a lot of questions and concerns, especially if you are outsourcing to a vendor for the first time, or if the vendor you’re engaging is new to your organization. The obvious questions are about their rates, billing practices, contracts, experience, size and scale, and whether they can meet your timeline. These questions are important, but they cannot be your only criteria for selecting a vendor. Making a decision based purely on price and various hygiene factors could land your software development project in trouble. So what are the questions that really matter, and what are the other parameters that can help you gauge a software development company?
The first big question is which software development company is the best fit for you. In our experience with clients all across the globe, we’ve been asked a bunch of questions that range from the obvious to those that require a deep-dive and are critical to building trust. Based on these experiences, we’re sharing a list of questions that will help you decide which software development company you should partner with. This may not be an exhaustive list, and we would love for you to add to this list by writing to us.
Q. What processes do you follow to ensure that you fully get our requirements?
Why is this important: Even today, a lot of IT projects fail. A 2019 survey conducted by Innotas, revealed that according to 55% of IT professionals surveyed, their projects had failed, mostly due to a misunderstanding or miscommunication between the software development company and the client. It is natural for you to know your problem better because you’re in that domain and assume that some aspects of your requirement may be obvious, but may not be able to communicate it as well to the vendor. This leaves room for error because a developer will only build what they are explicitly asked to build.
Ideal response: The vendor must know what questions to ask for further clarification in order to eliminate any gaps between the expectation and what is delivered. An experienced software development company will answer by unraveling the hidden complexity of features and the varying options/choices. They will ask deep dive questions that will allow them not just to build as per requirement but also to introduce enhanced features to build on the product. The vendor will have a standard list of questions that serves as a template they can customize for each client. Listen for words like wireframes, prototypes, proof of concepts, and minimum viable products (MVPs). These are tools software development companies use to communicate their understanding and give you the opportunity to validate that understanding. If the vendor can provide such a list and enhance it after each project completion for a client, then you know you’re on the right track. To begin with, the software developer should offer to begin sketching ideas, making it easy for you to clarify your expectations, and then gradually make the journey up to a functional click-through prototype.
Q. Will you be using resources located remotely?
Why is this important: It is common knowledge that a lot of software development companies today have only sales and business offices in the US with their development teams located in Asia or sometimes in Europe. While offshore outsourcing has been around for decades, and most companies are now well-versed in offshoring practices, it helps to know how your vendor manages different time zones, cultures, and the language for communication. A lot of projects fail because lack of, or poor and insufficient communication destroys the client’s trust.
Ideal response: Your vendor should offer you channels to directly communicate with their software developers working on your project, and your vendor should be able to afford you that freedom and comfort. If not the entire team, at least the key developers and the project lead should be well-versed in English and comfortable in client communication. In addition to this, your vendor should be able to show you how the communication flow will ensure timely updates, near real-time visibility into the project, and intra-team collaboration.
Q. What about libraries and the associated licensing fees?
Why is this important: Developers like to save time and money by building systems on top of in-house or third-party platforms. While it’s not a bad practice to use third-party platforms to speed up the development and because building every line of code from scratch can be quite expensive, there are some things that could go wrong if you’re not careful. To begin with, make sure that your software is not based on a program that requires an annual subscription fee, or may become obsolete and not even exist in the future. The third-party platform should be based on popular libraries/frameworks.
Ideal response: Ideally, your vendor should be able to give you the source code. But if a software developer is using an in-house platform, he will not be willing to release its source code. So if the relationship with the software company goes bad, you should be sure that you have everything needed to change or build in the software system you paid for, because it won’t be easy to make changes to it without going back to the original developer.
Q. Will you be providing a fully automated deployment system?
Why is this important: An automated deployment option is always better, especially because the deployment stage is one of the most common sources of error in a software development project. Deployment is a complex process with several components such as multiple library installations, directory structure creation, compilation of source code, and moving files to the production environment. Manual deployment increases the chance of variations between the development and production environment, which can be hard to diagnose and quite expensive to rectify.
Ideal response: The vendor should offer you an automated deployment to ensure uniform development, testing, and production environments. The automated deployment also enables the continuous delivery of code into any environment, allowing fixes to be rolled out quickly.
Q. What is Your Software Design and Development Process?
Why is this important: An experienced software development company will use reliable, repeatable processes that enable the organization, consistency, and quality control. It should be a process based on practical experience, lessons learned, and industry-leading practices. Your vendor should also be able to guide you on the best approach for you, even if it means deviating from your point of view.
Ideal response: Your software development vendor should be able to talk in terms of Agile processes, iterations, UX/UI research, QA/testing, logging, etc. These are good practices that help ensure project success while reducing risk. They should also be able to discuss the experience in building MVPs, with extra credit for being able to link it specifically to your project.
Q. What Happens Post Delivery?
Why is this important: All software products will require post-launch support, and you must know what kind of support your software development vendor is promising once the software has been deployed.
Ideal response: The vendor should tell you that they can offer ongoing support, maintenance, and upgrades, problem resolution, enhancements, etc. as required. Post-delivery it is also important to ensure that your vendor makes you the owner of the intellectual property and source code of the software. If your vendor is good, they will also offer warrantees or service guarantees.
Q. Why Is Your Company Right for My Software Project?
Why is this important: This question lets you evaluate how well the vendor understands your business, product, goals, and priorities. Would you want to work with a partner that “doesn’t really get you”?
Ideal response: The vendor should be able to talk about your needs precisely and tie their value propositions directly to what’s important to you.
Q. Do You Offer Automated Testing?
Why is this important: Testing the software developed is essential, but quite an expensive activity. You cannot afford to send out erroneous or faulty software out there. But automating the testing process makes it a faster and relatively less expensive activity.
Ideal response: Your software development vendor will offer to run a full suite of automated tests even if it will pad up the time involved because an experienced vendor will know that even if it takes more time initially in the long-term, the value adds unbeatable. Automated testing goes way beyond the deployment and allows you to test your software for problems continuously.
No enterprise begins a software development project expecting to fail, but that can be a real possibility if you fail to pick the right software development partner. The key is asking the right question and getting the right information to help you make the choice that works best for a toy. You need to choose a development partner that will not only get the job done, but that understands your business and keeps your best interests at the core of every decision. What we’ve shared are just a few of the questions you could ask. We hope these questions will help you choose a software development company that is right for you.