Software development outsourcing and cost factors: part I

Danil Vilkhovskiy
Softenq
Published in
5 min readJul 24, 2020

The cost is not the thing that springs out of blue but has always many factors that affect and determine. Outsourced software development project costs are a good example of this statement.

We prepared your complete guide to cover all cost factors in software development, divided into the following groups:

  • Technical factors, that lie mostly on your side and affect the project scope;
  • Financial factors, that lie fully on your vendor side and affect hourly rates of your outsourced developers.

This article is the first part of the guide, where we will give you a clear understanding of technical factors. In the second part, we disclose financial factors to present you a complete picture of what hourly rate costing is.

To start with, technical factors determine the number of man-hours a software outsourcing company estimates to spend on the project. They are specified by your technical specification and, thus, include such factors as project size, project complexity, and project uncertainty.

Project size

When you turn to software development outsourcing services to build a mobile, web application, or any other software, you already have a vision of your project. To clarify, you presume what functionalities this software should have. In the scrum methodology, we call them user stories and include them in the product backlog.

Undeniably, each user story takes some effort from developers to make associated research, code, and test. This effort is evaluated in man-hours, which are a universal effort-measurement standard.

For example, compare the following two applications:

  • An app that enables only download, storage, and share files
  • An app that enables download, storage, share files and provides corresponding capabilities and user interaction

Are these two projects equal in terms of effort your software outsourcing company needs to make in order to develop them? Can they be estimated in the same number of man-hours? Of course not! Thus, taking in a bunch, the number of user stories forms the size of your project.

So, the first conclusion here is the more user stories your solution requires to meet, the more man-hours it takes to build this solution. Of course, you need to pay for these man-hours. That is to say, you pay on an estimated basis if you are under a fixed-price contract or on an actually-spent basis if you are under a time and material or dedicated development team contract.

Project complexity

Not all user stories and tasks are equally easy and quick to complete. Some of them may be completed in one sprint. But others may be done in two or more sprints. This is because they have different complexity. In other words, they require different amounts of effort and different levels of developers’ skills and proficiency to accomplish the task.

Let us explain this thought with some examples.

First, let’s compare the design of an application you plan to develop for orchestrate your certain workflows and an application you are going to release for your customers. The first app can have a simple design while the second one shall be engaging and appealing and, thus, takes more effort to create.

Second, it is great if your software can be developed in full just using one technology. But what if you need to have ReactJS at its front end and Python at its front end? This increases your project complexity and may pose additional challenges during a software development pipeline.

Third, your software may have simple business logic or a complex one. For example, it may have just one or two layers and you don’t have any great performance issues and it enables to move each query from back to front very quickly. But if you need to develop large enterprise software with five layers, you will have difficulties with program performance. So, it takes more effort to find and implement an appropriate solution here.

Fourth, let’s compare the effort it takes to develop a mobile app for different OS platforms. For example, an app for Apple smartphones and tablets and an app for Android-based devices. As the variety of Android-based devices are much larger, such mobile app development requires more consideration to take than an app for an iOS platform.

Fifth, what functionality is easier and quicker to build — Google Analytics integration or real-time push notifications? Yes, in both cases we have only one user story, but the difficulty of these two stories differs a lot.

To sum up, the project complexity is an aggregated term that deals with the following constituents:

  • Design
  • Technology stack
  • Business logic
  • Deployment platforms
  • Functional complexity
  • etc

Project uncertainty

The mode detailed spec you provide, the less uncertainty your vendor will have. Especially, when we talk about an experienced software development company. However, even this can’t guarantee no difficulties and unexpected challenges will appear on their way to software deploy. That’s why a vendor may decide to factor uncertainty risks and quote your project on a pessimistic scenario.

A pessimistic scenario quotation is of no concern if you opt for time and material of dedicated development team pricing models. To clarify, you already pay for actually spent man-hours here. However, if you target a fixed-price contract, be aware of the risks to pay for project uncertainty as well.

Of course, the pricing policy differs from vendor to vendor. For example, at Softenq, we don’t charge for any uncertainty risks. However, there are companies that charge up to 30% for project uncertainty in large projects.

To conclude, all above-mentioned factors have the direct relationships with the project costs. In other words, the richer product functionality, higher project complexity, and the larger project uncertainty are, then, the higher project costs are as well.

--

--