Table of contents:
- How to fish in the software development companies ocean?
- Tips for contacting software development companies and the initial meeting
- Getting into the details: discovery call and finding the right solutions for your project
- Contract: negotiating the price and other non-financial aspects
- Project kick-off and what to do to make it efficient
- Final words
Coming up with a revolutionary idea, perfecting it, making sure it stands a chance on a highly competitive market... if that seems hard, it's because it is. And still, it's only the tip of the iceberg. The next points on your startup's development to-do list are just as crucial. Choosing the right software development company, communicating your project needs, setting up an efficient communication process — all that can take a toll on your business if it's not done right. Let us share what we've learned about it from 7+ years of working with our Clients.
How to fish in the software development companies ocean?
So, you've already decided that your needs will be best met by a software house and not freelance developers or an in-house team. Your project is quite layered, you need a few specialists with technical skills and domain knowledge and you want to get all the advantages of outsourcing without sacrificing an ounce of quality. But how do you choose from so many software development companies?
Start with going to The Source — Google (duh :)). Naturally, a "software developers for my awesome project" query won't take you too far. You need to narrow down your search dramatically and the best way to do that is to set your sight on a specific country (and add it to your phrase). The most common outsourcing directions are Asia and Central Europe. Both of them make a lot of sense and can boast the best talent, technical skills and a wide range of quality projects in their portfolio. Asian developers are very competitive when it comes to the price but you have to weigh that in with possible cultural, language and time-zone barriers. However, if your project is fairly uncomplicated, eg. you just need to build a simple prototype, it might be a good choice that'll surely save you some buck.
The Central European development team might be a little more expensive but the ease of cooperation will probably make up for it. I’m slightly biased here, so you don't need to take my word for it (and I would definitely encourage you to do your own research and ask around!) but Poland is a great compromise between Eastern and Western Europe when it comes to outsourcing software development. It lies in the same cultural zone as the West, which surely isn't the case for post-Soviet-Union software houses. These are run by very smart developers, their drawback being lack of full understanding of the project's commercial aspects and environment, as well as its ultimate business goals.
Another tip for your software company Google search is rephrasing "software development company" as "software house" — you might get more accurate results that way, as this is often the preferred term especially in Europe. To narrow it down even further try adding your industry, eg. "Polish software house blockchain". Targeting companies that focus on a specific domain is a great idea in general as they'll be able to serve you not only with their coding skills, but also high quality knowledge. As the saying goes, if it's for everyone, it's not for anyone... or something like that. :) Which is why good-sounding but ultimately empty phrases like "cutting-edge technologies" or "modern custom software" should usually be considered a red flag.
Apart from Google, a good online place to look for and compare development companies is Clutch — the most popular platform that aggregates reviews of B2B companies with a focus on software houses. There you'll find different categories such as mobile, web app etc., as well as specific industries and countries of origin. Consider having a look at the rankings created annually which take into account not only the number of reviews but also their quality and other aspects of the company’s operations and market presence that might be hard or very time-consuming for you to pinpoint alone.
Once you've done the initial research and selected a few software houses that seem to fit your needs, make sure to get as much info as possible from their websites. Check out their portfolio, tech stack (if the project's already started you'll most likely need to match it), a detailed description of the services they offer and industries they have experience in. Keep in mind that the tabs you may tend to skip like "about us", "our team" or even "carrier" can give you valuable hints about the company's position on the market.
Tips for contacting software development companies and the initial meeting
There are two situations you may find yourself in when contacting a software house for the first time:
In the first scenario you know exactly what to do, what you're talking about, and all the project requirements and other details are precisely defined and ready to be presented. Maybe the project has even started already or you have an in-house team you'd like to augment.
In the second one you might not even be sure that hiring an external software development team is a good idea. Perhaps you're considering working with a freelancer developer or you simply lack the technical expertise needed to judge the many aspects of a new project. In this case, at first, you're probably just looking for a consultation and want to learn more about the development process.
Potential clients that find themselves in the first scenario will do best locating an estimate-project form on the software house's website and filling it in. If you're however still hesitant or unsure about all the business aspects, try to schedule a consulting call or simply contact a specific person (eg. the CEO) via LinkedIn.
Pay attention to their time of response after you reach out to them and see how well they manage incoming communication or the potential time zone difference. It could be an indicator of the way your future exchange will look like. 24 hours is the golden standard and exceeding that time frame could be considered a warning sign. We strive for a much shorter period, usually 12 hours at most — it's really not that hard, considering that the first response usually won't include all the information you're looking for but surely valuable points and next actionable steps.
Don't freak out if you get an invitation to a short call. Software development projects are usually really complicated — each one is completely different. The company wants to learn more about you and your business needs and (an online) conversation is still the best way to go about it. It will help you get a confirmation that your potential partner exists, speaks English well and seems reasonable enough to continue the process with.
How to prepare for that kind of a meeting? By being ready to explain your idea in very simple words. Even if you're talking to experts, they can't read your mind and the better they understand where you're coming from, the better offer they'll be able to prepare. Try to explain what kind of problems the product of your collaboration is supposed to solve, how are you going to monetize it, who the users or customers are going to be, how you plan to compete on the market. The call will be most likely quite short so you don't need to go into a lot of detail, but presenting your general strategy always works. You'll dig into the technicalities later, however if you already have the software up and running you should also prepare the tech stack.
Once it's time for you to finally ask some questions, consider these:
- What's their experience with a similar project / industry?
- Availability — when are they able to start and what's the usual workflow?
- Employees — what kind of people work there, how experienced are they? What's the turnover rate and what practices are in place to make sure the knowledge transfer happens efficiently?
- What's the average price range for a project similar to yours?
Don’t be afraid of asking difficult questions. If there's something specific in your mind, shoot it — they might not be able to answer right away, but it could give you a sense of their communication style and how they'll deal with challenges once you start working together. Pay special attention to what they focus on: are they just bragging about themselves or trying to learn as much as possible about your project? The latter should be the most important thing, meaning you might be "cornered" into doing most of the talking.
If you get asked about the timeline or the budget that doesn't necessarily mean they're trying to find out how much money they can get from you — this information is essential for some important decisions such as the one about the pricing model. For example, if you have a bigger budget you could invest more time and resources to make your MVP better, but if you’re funding your projects with the so-called 3Fs (family, friends and fools :)), building a prototype that’s cheaper and getting the funding ASAP seems like a smarter idea. The deadline is also important since the software development company needs to know what kind of important future events might affect your business goals, as well as which dates are flexible and which are set in stone.
Naturally, after the meeting you should get an email summary with all the important information included to prepare for the next steps.
Getting into the details: discovery call and finding the right solutions for your project
At this point the journey differs in each software house (the first points tend to look similar), so to give you a practical sense we'll show you how we do it at Code Poets.
If after the initial meeting you'll have a strong feeling there might be something there and decide to go on with the process, there will be a second call waiting for you — this time a bit longer and more technical one. It's good to again come prepared with some general business info as the new people you'll meet should hear it from straight from you. The topics we’ll focus on afterwards will include the MVP scope, product's features (most important ones), milestones etc. While it can be tempting to fantasize about the future growth and world domination, when it comes to the tech-stuff try to keep it realistic and set within a specific time frame like 4-6 or 6-12 months. That's why in most cases you should focus on one main feature and one way of monetizing it first. Any potential investors you might want to get further down the road will also prefer a singular strong idea as opposed to a dozen blurry ones.
Before this meeting, our development team will ask you for documentation such as the description of the features, user stories or some wireframes/flowcharts with the users' path (depending on the project). If you have that it's a great moment to share as it will facilitate a smoother and more informed meeting.
On that note, do prepare yourself for more detailed questions (it might turn out that there are some unclear things in the documentation or what you’re saying). The developers could find a point you haven't thought about but naturally, don't feel pressured to answer right away — you can always get back to us with more structured thoughts.
If the meeting goes well again we'll agree upon further email exchange. The software developers might have additional questions and so could you. Sometimes it's actually better not to talk about things "live", because you can think things through at your own pace and it’s easier to refer back to an email than something said during a meeting. This whole process might take one or two weeks depending on the scope of the project and your availability.
Once it’s all clear we’ll have a third meeting. We’ll confirm all our notes and conclusions and propose one or more ways of realizing the project. Most often we end up working in SCRUM methodology and we expect the client to assume a Product Owner role with a degree of time availability. It doesn’t have to be a lot but the PO is responsible for defining priorities and business requirements which we then translate into tech ones. It’s an iterative process and there will be some meetings down the road such as planning, demos etc. We'll also propose the size and shape of the team with specific roles assigned like developer, tester, architect and scrum master.
Depending on all the details and specifics we will or won't be able to prepare two offers when it comes to pricing: one in time & material model and one in fixed price. During the meeting we’ll walk you through it/ both of them and afterwards we’ll send a summary email so that you can debate it/them in peace. If you decide on one that satisfies you, it's time to move on to the contract. If not, it’s also a valuable piece of information for you that maybe it'd make sense to change some of the project assumptions. Sometimes you might realize that the project is far more complicated than you thought and re-defining the priorities could seem reasonable.
Contract: negotiating the price and other non-financial aspects
Contract isn’t just about the price but also many other equally important issues. Expect to get a draft well in advance before the final negotiations so that you have time to prepare properly. Try to find the following aspects to make sure the deal is fair and protects the interest of both parties:
- SOWs (Statement of Work) describing the exact services that the software house will provide in a given time frame,
- Detailed information about the compensation model and range,
- Confidentiality, warranties and rights transfer clauses,
- Reasonable and symmetrical penalties for breaches of contract on any side.
If you find some clauses about permission to use the project’s name and some other details for advertising purposes, don’t fret. Good software houses want to work with the best of the best and be able to brag about it for mutual benefit. However, pay attention to this point if your business affairs are confidential in any way and adjust accordingly.
This is also the right moment to negotiate the price. Your position may depend on the particular situation of the software house, whether the project falls into their usual scope or not and other factors. However, if you really like the company and you're set on working with them, it's not always profitable to go too hard on the negotiations. They might be talking with other potential clients at the same time and if the company is small with not that many developers free to take on a new project, their availability could change quite fast. But don't skip this step: negotiations are a great way to check flexibility and client service. They'll show you whether the company is trying to accommodate you and understand your needs or just gives you a straight up "no" without an explanation which may or may not be indicative of how your future cooperation will run.
Project kick-off and what to do to make it efficient
The contract is signed, you have the project's starting date. Woohoo! Now onto the fun stuff: time for the kick-off meeting. This is when you’ll most likely meet the people you already know as well as other developers who'll work on your project. Any other people engaged or otherwise interested in the project such as investors might join in as well. All the details about the iteration etc. will get confirmed. Again, really worth it to come prepared to explain the vision of your project. Even though you have to do it a third time in the row, deep down you know that it’s a good exercise before way more demanding presentations for new investors or business partners. It is very important for the whole team to hear from you what the goals and the end-vision of the project are — you should make sure that they all understand your business objectives correctly.
A kick-off meeting could take a more formal form, confirming one last time the details of the project. You need to take into account that once all the people interested in the project come together and start correcting the initial agreements concerning eg. the length of iteration, meetings’ members or their expected outputs, the discussion could stretch out over several hours. Expect to go through the entire roadmap, including milestones and the dates of achieving them. If the project is realized in the fixed price model, look forward also to a presentation of risks related to specific features, use cases etc.
Choosing the right software development company for you surely isn’t easy. This industry is big and complicated, there are loads of options differing not only in technology but also location, pricing, culture etc. It’s a really good idea to talk to a few software houses before you choose one and plan it in advance. As you can see if you want to do it properly, the whole process might take one or even two months. Don’t worry though — this time won't go to waste. Your effort will ensure that the project gets off to the right start which oftentimes makes or breaks its success.
As a business owner you certainly know that there are more and less important decisions to make; this one is one of the most important. Even though it might seem that you need to invest a lot of time and energy, making a wrong decision at this stage could end up costing you far more.
Finally, please remember that a software house is a tech company and even if it specializes in a specific industry the developers can't enter your head (especially if your idea is extremely innovative) and your involvement will be necessary on almost every step. So while it might be tempting to devote yourself to other aspects of running your business after you engage a software development company successfully, you’ll surely reap way more benefits it you stay involved throughout the rest of the project.