Whether you’re about to embark on a large new software project and need to grow your team through outsourcing, or have made a long term strategic decision to operate with third parties, you’ll need to take great care and due diligence in selecting your partner.
Get your selection process wrong and you may have to exert considerable effort and cost mid-project in order to re-align expectations, or in the worst case, change to a new partner which will cause considerable disruption.
This article takes you through some high-level considerations and provided some tips to help you make sure you select the right partner and start the relationship off in the best way.
- Starting a software development project? Evaluate your options
- Finding a good software development partner Step-by-Step
- SoftKraft as a reliable software development partner
Starting a software development project? Evaluate your options
When it comes to starting a new software project, you have many resourcing options ahead of you. The one that you choose is entirely dependent on a number of factors such as the nature of the work you are building, the appetite of the organization to experiment with new resourcing models, your budget, and your existing dev capability. Let’s take a look in more detail:
In-house development team If you have the necessary skillset and capacity in your company already, you can assemble a cross-functional team with all the necessary skills to deliver your project. This may require hiring some new team members to be permanent
Temporary (contract) resources If your organization has restrictions on headcount or your project is for a short period, you may wish to augment your resource by hiring temporary contract staff. These tend to consist of sole traders and freelancers who can work with your organization for a fixed period at a set day rate. Such costs can often be reflected as a capitalized investment, rather than an ongoing operational overhead, and therefore be more appropriately reflected on the balance sheet.
Outsourcing to software development partner Outsourcing is a model of working with third parties that can be conducted in a number of ways. Packages of work can be delivered by external parties, or extra resources can be provided to work on-site in a resource augmentation model to accelerate development.
Below, we talk more about how to select a software development partner, ensuring you get the best fit for your project and development processes.
Building software development teams
Building a team requires critical care and extensive planning. This is even more applicable when you are trying to set up a software development team. There is a lot at stake when you are trying to build an effective team, therefore, you need to put extra work and dedication into the work to create a team that can produce and sustain excellence.
Creating a solid software development team is beyond gathering a group of excellent developers. It requires way more than that. Every team member must be well accounted for and must have a reason for being a part of the team. You must ensure that you are deliberate about every team member and that their roles are crystal clear.
Advantages of outsourcing to software development partner
Reduces the recruitment time. It takes ample time and resource capacity to plan and organize the recruitment process. You need to draft a job description and update the same on several job portals. Not only that, you will spend time shortlisting and interviewing candidates. With a software development partner, the entire task of recruiting falls on the development partner. Your team can be ready in a few days.
Access to a talented pool of experts. A good software development partner enables you to select from a top-notch software development talent pool. It means you can collaborate with experts from any technology partner talent network.
Enhanced flexibility and scalability. You can easily scale up and down your team by leveraging the outsourcing partner software engineers talent pool. This gives you competitive advantage and allows you to control development costs.
Quality on a budget. Offshore software development firms in lower-cost labor countries provide services that result in savings compared to your own country rates. A good software development partner will offer you premium quality services and technical expertise.
Risks of outsourcing to software development partner
Lack of control over the process and management. As a business leader, it may feel uncomfortable and alien to be handing over vast swathes of the management and processes of your organization to another company and indeed this perceived loss of control can be disconcerting. Of course, the lack of control itself is not a risk, but rather what may arise as a result.
Poor communication and culture issues. A recent study showed that nearly 90% of businesses believed communication to be one of the key challenges with outsourcing capabilities. This can arise from a number of factors such as culture (both national and organizational), language, and the distributed nature of teams.
Quality of outsourcing provider services. There is a common saying of “buy cheap, buy twice”. If an outsourced provider is chosen solely on the basis of cost then your organization may very well find that it has “got what it paid for” and as a result experience low-quality results.
Finding a good software development partner Step-by-Step
What logical set of steps can you take to have a good set of software development partners to make a great selection and bring a product vision to life?
The selection process doesn’t have to be particularly complex, but it does require a significant investment of time and rigor in order to make sure you select the right partner. It’s worth investing this time upfront, in order to ensure expectations are aligned and that the correct level of capability is present.
So, let’s take a look at steps that will help to ensure a thorough and effective evaluation process:
Prepare your project scope
It can be difficult to know where to start a new software project. Although it is an exciting time proposing innovative new solutions, engaging with suppliers, and building cool new software, there is a lot of up-front work which is needed to get the project off the ground.
What is your project scope, budget, and timeline
The scope, budget, and timeline are under constant pressure from new discoveries from users’ and customers’ feedback in IT projects.
The key to project success is to get a development partner that can handle the dynamics of validated learning smoothly with a solid software development process, both on the software design and engineering side.
Benefits of software development planning:
In a startup environment with phased funding. The startup will need to know that their runway of funding provides sufficient support to achieve the MVP or next phase of the delivery.
In a complex project that is responding to external deadlines, i.e. regulatory governmental requirements that have a fixed date. Failure to deliver before these external deadlines could result in excessive fines for the organization.
The longer a project runs, the more likelihood there is for future estimates to be inaccurate. It can therefore be somewhat less valuable to write a detailed plan for things that are going to be happening more than 6 months in the future.
What software development services do you need?
Business analysts and software development planning are an important part of beginning any new software project, especially for innovative ideas. In order to determine the size and scope of your outsourced team, you will need to consider the following software projects factors:
Scope of the software project and how the scope can be logically split into either module, journeys, user stories, features, or other splits
Expected pace of software development and project delivery phases
Required project team members (Designers/Front End/Back End/QA/Platform Engineers, Project Managers, etc)
Critical path of delivery for project's success
Dependencies along the software development project progress
Learn the basics of software development. Although not mandatory, it will help greatly if you understand the basics of software development. It’s worthwhile familiarising yourself with the software development lifecycle, as well as the supporting processes that go along with it.
Having this knowledge will allow you to understand more of the context when you are holding discussions and therefore ask software development partners meaningful questions. A happy side effect will be that you will also be better prepared to support the project with your newfound knowledge of the process.
Find potential software development partners
Assuming you have already determined your requirements, timeline, and skill set, the next step will be to find a software development partner that will meet your requirements.
Where to find a software development partner? There are plenty of resources where you can find software development partners:
Find companies in the Google Search results. Both paid and organic results can be helpful. From their web pages, you can get information on software development services, various industries they worked with, their previous clients, and how the software house collaborates with their clients.
Browse software development companies' catalogs. One of the most popular of them is Clutch. You can range the search results regarding location, minimal project size, average hourly rate, industry focus, and so on.
Surfing the websites to choose a software development partner may yield some results. However, there is a good chance you will not discover certain things while conducting such research. You should request a portfolio of past projects if you want to learn more about their expertise. Brochures or information packs will be provided by custom software development companies.
Reviewing case studies will assist you in determining which companies are the most promising. Your decision could be based on how close your idea is to projects that the development company has already produced or something else entirely. In any case, you’ll need to compile a list of suppliers you like.
PRO TIP: Look for smaller firms with software development experience relevant for your project rather than large firms that have multiple layers of management and people get assigned to all kinds of projects, which leaves a lot of room for miscommunication and unnecessary overhead.
Check the software development partner references
Now that you have narrowed down your choice of companies, it is time to compare them. The best way to do that is to research software company portfolios and customer reviews.
See who they have worked with previously and what type of jobs they have done:
It allows you to see if they have done something similar to what you require.
It gauges the level of experience the company has.
It lets you understand the scale of jobs the company has done and if they are able to handle your task.
It is a good idea to consider not only written testimonials, which you can find on the software house’s website and in the company’s profiles featured in some such vendor catalogs as Clutch. It may be equally if not more insightful to request the company to provide you with references from their current or former clients, with whom you can discuss their experience of working with the company. If their impressions and track records with the company are positive you are more likely to get what you are after. If - upon request - the company cannot provide such references, it should raise doubts as to whether the clients are served to their satisfaction.
This is not to say that companies with a wide range of customers and a rich company’s portfolio are always the best for your use case. The key point is that the outsourcing partner has experience in your technology and business domain. If the software development company claims to have experience doing something similar to what you want, but cannot share any information, then this can be a red flag.
It is true that outsourcing companies may not always be able to share their previous projects due to non-disclosure agreements. However, they should at least be able to give you a broad outline of their previous projects, how they were developed, and how they benefit the clients.
PRO TIP: Find out if they have completed projects similar to your product. Gauge the level of experience of the development team members. Confirm maturity of project management and if they are able to handle your project scope.
Shortlist best software development companies
Once you have confirmed your scope and reviewed the options for different companies, it is a good idea to narrow down your options to a shortlist. In order to do this, you will likely want to start a discussion with the different providers out there to get an idea of their specialisms, capabilities, and preferred working styles.
Start by building a comparison matrix
A great way of creating a shortlist and then narrowing down that shortlist further is to build a comparison matrix. Such a matrix will allow you to identify the questions you might want to ask in your “RFP” (Request For Proposals), or might be built from that document itself.
An RFP is a document with a standard format which invites organizations to respond to a series of questions you might have about their services. You can then score those organizations using your comparison matrix in an objective way, ensuring that you aren’t unduly influenced by any one point.
The best comparison matrices are agreed on upfront with a community of individuals from the hiring organization. Different elements are then weighted depending on what is most important to that organization. This also provides a great audit trail for explaining why specific vendors were chosen.
Questions to ask software development partners
Questions to ask software development companies can really vary depending on a number of factors. This being said, the 15 Software Vendor Interview Questions we are about to recommend should be good questions to ask a software developer in most cases. They are general enough to cover the most important aspects of software development projects, but also specific enough to encourage revealing answers from the individuals responding.
- Could you present a project similar to mine in terms of technology, functionality and/or business domain?
- Can you provide good references from previous projects?
- What kinds of companies do you typically work with? / Who is your ideal client?
- Who will manage my project?
- What does your typical process look like?
- How do you ensure quality on your software development projects?
- What reporting practices and collaboration tools do you use?
- Can you present the people who will deliver services to me? What is their experience level?
- Tell me about your hiring process. Where do you find your candidates and what do you look for when hiring new developers?
- How many developers do you have working with the same technology?
- Will the developers assigned to my project work on any other project at the same time?
- How often do you people change projects?
- Why should I choose you rather than your competitors?
- What are your rates and payment terms?
- Can you estimate the length of my project?
Evaluate each shortlisted software development company
After you’ve seen the portfolio and are keen to hear more, it is time to have a more in-depth talk with potential partners. There is no harm in lining up a couple of software companies to interview as you are not committing to anything at this stage.
Evaluate the company’s software development process
Now that you know a little more about potential software development partners, we can find out more about the software development process they use.
Having a project manager and the right software development company structure in place will make the entire process seamless and efficient and it will also enable you to tackle challenges that prop up along the way. Your software development partner should follow a project management methodology, like for example the agile Scrum methodology. And your software development partner should keep you up to date on how the project progresses.
Choosing a software development partner that has an Agile methodology, based on adaptive planning, early delivery, and project updates. This will ensure you are up to date with what is happening at any stage of project development.
PRO TIP: Custom software development often requires a lot of effort, time, and money. Before you invest in custom software, learn about common pitfalls you must avoid: Custom Software Development Process and 7 Mistakes to Avoid
Evaluate an outsourced development team
Deciding to work with a software development partner is an investment, not a liability, so it is important not to be too conservative with your budget. It is especially true if a software development partner gives you a low estimate to tempt you in then tries to raise the bill or drop the quality later on.
Ask a software development partner to provide you with team members' CVs and verify that their skill sets match what you would expect.
What sets alarm bells ringing?
Trading up skills – IT specialists need to hit the ground running. Make sure the team has a proven track record with programming languages. It takes time to learn it and you should not be the one to pay for them to acquire the skills.
Non-achievements – look for achievements that demonstrate tangible contributions to projects business goals. ‘I built something’ and ‘I learned X, Y, and Z are not really achievements you are looking after. It's better to hire people who focus on your needs rather than their own.
Frequent, short contracts – software developers that are often moved between projects should spark your attention. Their lack of staying power tells you how they were valued by their previous client.
Select the right partner: balance quality and price
Without a doubt, outsourcing software development to a partner can reduce costs. The challenge is that lower rates do not always translate to a better deal. Project delays, higher than expected costs, lack of transparency — the list goes on.
Fortunately, most companies considering software development firm are aware of the risks of prioritizing cost. They try to maximize the value of every dollar invested by incorporating value into the equation.
But how do you balance this equation and find the best business opportunities? What is "value for money" in software development?
Treat estimates with a grain of salt. The longer a project runs, the more likelihood there is for future estimates to be inaccurate. Due to the human nature of optimistic biases, projects are rarely overestimated or under budget, so building in between 10-25% (or even more) of contingency is always a wise approach. Move to a primarily agile delivery approach, where more emphasis is put on discovery, experimentation, and iteration than on deadlines, you might wonder if project plans still matter.
Look for a mature software development process and technical leadership. Little things matter a lot. When you combine all of these factors, you get a project that works well with the least amount of time and effort. Very good coding and management practices ensure smooth software solution development.
Look for the right size of vendor. A good rule of thumb is choosing a software development partner where your contribution to their revenue is between 15-25%. This is why you will be important for them and you will be able to gravitate towards your project with the top talent they have. At the same time, you need to balance the risk of a software partner losing a key resource - they need to be big enough to provide replacement on time.
Warren Buffett, who is one of the most successful investors in the world today, once said, "Price is what you pay. Value is what you get." More often than not, you need to look beyond the price and learn more about the development partner to understand its true value for you.
SoftKraft as a reliable software development partner
Need to craft an end-to-end software application with a complete cross-functional team? At SoftKraft we provide Full-cycle Software Product Development. We take project ownership and responsibility for decisions that were taken during the development. The success of the project is the only metric that really matters to us.
Engage quality tech professionals
15+ years of experience in engineering custom software solutions for startups and SMEs.
Results-driven design thinking
Design Workshops to clarify your business idea and build a much better product faster.
Work with engineers who understand the need for bottom-line results from tech initiatives.
As you can see, there are many steps involved in hiring a trustworthy software development partner. It is important to go through a rigorous process when hiring the right software development partner, like the steps we have just detailed. Compare your options over and over. If it turns out that no one you initially selected is right for the task, go back to the drawing board and start again searching for the best software development companies.
Software development partners are an excellent way to make up for internal resource shortages. As a matter of fact, the bare minimum you can do here is simply come up with an idea and a loose plan of what you want the overall product to look like.
A software development partner should be able to guide you through the whole planning experience. This includes wireframing, cost estimation, sketches of the UX and UI design, and the software development itself.
If you’re in the process of finding a potential software development partner in Eastern Europe, reach out to SoftKraft to see what we can do for you. We are happy to share our portfolio and find out whether we can get you to where you need to be on your next software development project.