When you start looking for a software house to develop your product, you will quickly realize that many of them claim they can craft almost anything. The truth, however, is that the world of software development is extremely diverse and you need to perform in-depth research to find a company which is able to build an application tailored to your very needs. Let us then draw up a checklist which you can run through during your quest for the five-star software development outsourcing.
The most essential information about a software house can be usually found very easily on the internet. Besides checking the obvious sources, like their website, you should not hesitate to call them or send an e-mail. If it is difficult to contact them or you do not receive a response for a long time, you have just come to the first important conclusion – working with this company is not the best idea, as breakdowns in communication may occur (and you definitely do not want them when outsourcing).
One of the most crucial things to check during the initial research is whether the company which you are X-raying has previous experience in the line of your business and can quickly understand processes which are essential for your trade. By the way, you can also find out if they have worked with companies from your country or world region. In the globalization era, it is not as crucial as it was before but may be an additional benefit. One more important thing to find out is if the company in question is working on some long-term projects and if it is a technological partner for one (or more) of its clients. Last but not least, do not refrain from asking for contact details to some of their previous clients – in order to get a first-hand insight into the character of cooperation with the software house.
If you run a software company yourself, it is probably very important for you to know what technologies the outsourcing team is familiar with. Check if they are experienced in working with the frameworks that you want to use in the project. Keep in mind that companies which claim to be able to develop software in almost every technology are usually employing hundreds of people and it is harder for them to maintain the quality which you expect. You better find a software house which specializes only in one or a few programming languages, therefore seems to be highly competent in them. However, do not forget to ask for some projects in their portfolio, or even for a talk with the developers themselves, to prove this assumption.
On the other hand, if you have no technological experience and no software department in your company, you may think that choosing the technology is not very important. It is not true, as the technology you choose in the beginning will most probably stay with you for the whole project, even after changing the developer. Which one should you choose then? As you will soon realize, every developer believes that the language and the framework he or she uses is the best. And the truth is that they are somehow right. From the technological point of view, most of the projects can be built using almost any popular language. It is not the technology but the people who make great software, so you should rather focus on looking for a company which has the best specialists – developers who have considerable experience in a specific technology, not the ones who have been using some language for a few months just because it is currently trendy.
People and processes
How can you check if the software house is really a leader in this or that technology? Let us now focus on more specific data regarding developers working in the company which you are inspecting. Some software houses publish such information on their websites but in most cases, it will be necessary for you to call the company and ask for the details personally. Begin with the basics: find out how many people work in the company, are they employed full-time and do they work in the same office – it makes teamwork a lot smoother. You may also ask for a turnover rate because if workers tend to leave the company often, it is usually not a good omen for your project-to-be.
Do not attach too much importance to titles like senior developer and junior developer, as they are somehow arbitrary, but rather simply ask how many years of experience the developers in question have. Find out if they attend seminars and conferences and if the company itself organizes meetups – the world of IT is evolving on a daily basis and those who do not invest in self-development stay behind. Finally, find out about the factor mentioned in the previous chapter: is there a possibility of flexible up scaling and downscaling of the team working on your product.
The South American nearshoring trend began in Brazil (especially in Sao Paulo, the biggest city in South America), as they were outsourcing to Brazil already around the year 2000. Others joined 5 to 10 years later and many of them relied simply on referrals of their friends and business associates who already knew the South American market. Of course, nowadays, online checks are becoming more and more popular, however, referrals are still very important and I advise you to not forget about them, as there are companies which simply overmarket themselves online.
Keep in mind that, depending on the nature of your project, you may need more than software developers to craft your product. Most software projects, except for those which are solely backend, need graphic design and a well-thought user interface. If you do not have a graphic artist in your company, look for a software house which employs such a professional. You can, of course, hire a freelancer for that part of work but there is a risk that his or her collaboration with the development team will be problematic. It is also desirable that the outsourcing software house provides Quality Assurance specialists, i.e. testers who make sure that your new software product will work in all conditions – especially if you do not have people experienced in performing tests (both manual and automated) employed in your company.
Not only the development
As we have already mentioned, software development outsourcing is quite rapidly changing and nowadays software houses offer more than just the development itself. Some of these additional services may be useful in your situation, therefore remember to ask if the company in question is offering such solutions. If you have no technological experience, you should think about software consulting, during which the outsourcing team performs a thorough analysis of your internal processes and currently used software. Some software houses offer such consulting for free (at least the first phase of it).
If you, in turn, run a software company, you might ask for a test drive (a trial), usually lasting a week or two, during which the outsourcing team writes code which then you (or your software department) can check to evaluate its quality and decide whether to continue the collaboration. Finally, regardless of the nature of your company, you may be interested in project workshops during which you can confront your ideas with the experience of the software house, find out if they have already solved problems similar to yours and create first mockups – sometimes even clickable ones, so you can feel the flow of your application-to-be before the actual development process.
By contrast, not every project ends when the development phase is finished. Sometimes you need further maintenance and support – to prepare dedicated versions of the product for new end-users (your clients), to ensure that it is compatible with new APIs (application programming interfaces) and works on new operating systems (especially important when speaking of mobile apps). Many software houses do not offer such support, usually because they do not employ enough people, so they do not mention it of their own free will. Therefore, if there is a reasonable possibility that you might need the maintenance, it is crucial that you ask about it in the very beginning.
Finally, you need to decide which engagement model you want to adapt. There are two basic types of contracts: fixed-price contract (where both sides agree on a single price in advance, regardless of resources the software house has to finally use) and time and materials contract (where the client agrees to pay the software house based upon the time spent during the development). As the fixed-price model seems to be more budget-friendly, many companies in the beginning of their outsourcing journey believe it is the best choice. However, fixed-price contracts are based on the assumption that both sides already have the full knowledge of the planned product in the very beginning of the collaboration and that the vision will not change during the development. It is rarely a case. If the said product is a small piece of software, e.g. an MVP, it can indeed be developed in the fixed price model. In other situations, it is highly advisable to choose the time and materials model – it works best with the agile methodology and with big, skill-intensive projects.
But how much exactly do you have to pay for outsourcing the software development? You probably know the answer: it depends. The general rule of thumb is that you should expect to pay anywhere from $30 to $60 per hour (less if you are interested in the simple “body shop” model but we have already stated that it is not the right type of outsourcing for the kind of development that we will cover). However, such pricing is not self-explanatory, as some prices include the design and Quality Assurance and some do not, some cover the project management and some do not, etc. Therefore, in the end, the solution is simple: contact the software house which seems to be the best fit for you, explain your business idea and ask them to prepare the proposal.
All in all, it is good to think prospectively when planning the outsourcing of software development. However, at the same time, you should not worry too much – if you go through the whole checklist present in this post, there is a strong chance that you will find the team which will make the collaboration smooth and effective.
Madeinweb and Mobile is a place where business questions meet software answers, feel free to contact us.