It’s a standard assumption that a $15/hour developer in India can do more or less the same job as a $80/hour developer in the U.S. / Western Europe, while obviously saving a lot of money in the process – the lower rate is due to the cheaper living costs, right? It might be surprising but software development cost doesn’t depend much on the hourly rates of hired developers. But the risk for your project, budget and your stress levels surely do.
Instead of focusing solely on price / hour, much more attention should be given to developers’ experience, productivity, and overall work quality. When making the decision to contract external developers we should ask ourselves:
– How does the developers’ productivity influence the cost?
– What price do you actually pay for a contracted developer?
– How much does quality cost?
We’ll dig deeper in these and many more questions in this article.
Demand for software developers is increasing significantly and so is the cost. That’s why companies are looking for different options to find good developers at reasonable price, trying to balance quality and cost. According to the US. Department of Labor, a “bad” hire can cost 30% of the annual earnings on this position. Considering the above-average salaries of developers, the cost of a “bad” hire can run in the tens of thousands of dollars when taking into account expenses like onboarding, training and finally recruiting other candidates.
Hiring is a challenging process that is a cost in and of itself. It requires additional research on developers’ availability, experience, provided services, and rates. In many cases companies pay recruitment agencies to find them the right people which can cost 2-3 gross monthly salaries.
All these factors have to be taken into account when calculating the final cost of a given developer.
WHAT CAN GO WRONG WITH HIRING CHEAP DEVELOPERS?
The short answer – a lot. Besides the cost of potentially making a “bad” hire, an important risk is not meeting the set deadlines. Missed deadlines not only jeopardize the relationship with the client but also lead to additional working hours and maybe incurring overtime – paid either by the client or the agency itself. There is no point in paying for services that you can’t be certain about – both about the performance and the final cost. The risk of poor performance and failure cannot be overstated – once the users are dissatisfied with the software quality or performance, they will never come back to it.
When cost cutting is top priority, failures can have dramatic consequences. The most recent example is the Boeing 737 Max crisis which was caused by, among other factors, basic software mistakes and insufficient testing that led to two fatal crashes. Boeing decided to outsource development and testing to $9 / hour contractors that lacked practical experience in aerospace, while laying off their experienced (and expensive) engineers. In the end they paid a price much higher than just the financial cost.
THE HIDDEN COST OF SOFTWARE DEVELOPMENT
Software development rates vary a lot around the world – from $15 / hour in Asia, $35 – 45 in Eastern Europe to $80+ in Western Europe / North America. It may seem a great solution to choose a cheaper (or the cheapest) outsourcing option – why pay higher rates if you can get a lower price for the same services. However, this calculation does not take into account other major costs:
- Communication (incl. English proficiency)
- Customer churn rate
Although it’s not always the case, in general cheap developers have poor communication and coding skills that lead to more mistakes, misunderstanding of requirements and more iterations. More iterations mean higher cost, longer time needed for features implementation and ultimately – more related expenses such as QA and management time.
Software development is not only coding. In fact, developers spend only 32% of their working hours on coding. The rest of the time is taken by maintenance – 19%, testing – 12%, meetings, and management – 23%, security issues – 5%, etc. Source: thenewstack.io
Developers need a team of specialists to produce the code. Only the simplest website or mobile app with 2-3 screens can be created effectively by a one-man show.
Let’s define the minimum list of people who support developers in their everyday work:
- Project Manager
- QA Specialists
- Team Leader
Moreover, engineers are usually split into various teams and each of them has separate areas of responsibility, like front-end development, back-end development, DevOps, etc. The overall productivity of the team depends on the productivity of the least qualified members.
Developers have to be proficient not only in coding but in their other duties as well. If they are not good at maintenance and testing, they will need additional time for code review and bug fixing and also require more working hours from both the Team Leader and QA.
Same goes for communication skills. Lack of understanding, poor communication, need for constant explanations, etc. lead to frustrations and influence the team performance. It requires additional time and attention from the project manager to manage the developer’s work. Any additional working hour, especially from management, is a significant increase in costs. Therefore, the company has to consider expenses on the developers along with those on QA, management and communication. Professionals will charge more but will complete their tasks on time, show great productivity and collaborate effectively with their team members. Developer productivity can make a big difference in the efficiency and speed of the development process.
Researchers have studied the coding qualities of specialists with an average of 7 years’ experience and obtained the following results. The initial coding time between the worst and best specialists can differ by 20 times, the execution speed by 10 times, the coding size by 5 times, time spent on debugging by 25 times. Source: researchgate.net
Considering that the productivity of the less experienced and thus cheaper developers could be way lower, the required number of working hours to complete tasks will increase. Hiring cheap developers is likely to be much more expensive than expected. Usually, such savings lead to overpayment for the subsequent expenses and bad coding that has a negative influence on the overall project development. Low quality work is paid at least twice. Consequently, companies spend time and resources on both poor coding and the possible ways to fix it. In addition to the ever-increasing salaries of software engineers, they need to pay to the other members of the team like Team Lead, CTO, testers, etc.
WHAT IS THE DIFFERENCE BETWEEN CHEAP/ INEXPERIENCED DEVELOPERS AND EXPENSIVE/ EXPERIENCED DEVELOPERS?
The main difference between developers with vast experience or good education and inexperienced ones is that they use standard patterns. Experienced developers focus on the simplicity and usability of their code. It is much harder to write quality code while reducing the general complexity. The standard patterns are simpler to maintain, faster to produce and most importantly – easier to read by other developers. This reduces the amount of code that is running and speeds up the system in general but requires not only great technical skills but in-depth knowledge and understanding of applied approaches.
Developers with extensive experience continue to improve their skills and practice using various libraries and tools to find the best solution for every situation. They have great problem-solving skills, analytical thinking, and high productivity. By writing fewer lines of code and keeping it simple and clean, they can prevent code conflicts and various bugs. Such code is also easier to maintain and faster to test. Experienced developers won’t spend additional time rewriting as the code is written well from scratch and easily read by other team members. They always leave constructive comments and provide full documentation.
Good developers are beneficial to any development process since their contribution improves the efficiency of the whole team. Any issues are discussed and resolved by regular and close collaboration with project managers, QAs and team leaders. Such developers are a form of support themselves – they can suggest a lot of workable solutions on their own. They bring great value to your project through:
- Proficient programming
- Writing clean and readable code
- Good at maintenance and testing
- Problem-solving and practical skills
- Great documentation
- High productivity
- Effective communication
Cheap developers lower their rates due to the limited expertise they can provide. It doesn’t mean they don’t have experience in programming but they have just acquired some basic skills that are suitable for completing ordinary tasks. They aren’t proficient with advanced tools or a wide variety of libraries. These developers tend to apply common solutions without in-depth learning of the issue (a copy/paste approach). Of course, they could produce a huge number of code lines in a short period of time. However, this is badly readable code with poor logic and numerous bugs. Such code is really hard to test and often should be additionally maintained or rewritten. In most cases they won’t be able to perform necessary duties without extra mentoring from the senior technicians, a project manager or a team leader. This affects the productivity of the whole team since other members have to spend time on fixing problems that the inexperienced developer can’t deal with. When hiring cheap developers, companies have to realize that their employees will lack some qualifications that result in:
- Basic knowledge of programming
- Badly readable code
- Frequent need of code refactoring
- More bugs
- Poor commenting
- Lower productivity
- A regular need for mentoring
- Poor communication skills
COMPARISON OF THE REAL COSTS OF CHEAP AND EXPENSIVE DEVELOPERS
As we noted, developers can’t properly function without supporting staff such as QAs and project management. That’s why our cost estimate will include expenses on all the services required for developing a typical middle-complexity feature.
To do that, we introduce a coefficient of other specialists’ engagement per one unit of written code. For example, a QA tester will need 1 hour of testing, identifying bugs, and sending bug reports for every 5 hours of the developer’s work. Thus we have a coefficient of 0.2 for QA that we’ll use to get the sum of subsequent expenses.
Calculations cover the difference in rates along with the involvement coefficient of other specialists.
When the development process runs well, it takes on average 15 hours for most software developers to write the code for one unit of medium to high complexity CRUD. However, the working hours of other specialists considerably vary. Because of the poor qualification of inexperienced developers, other team members need to spend much more time on task explanation, management, testing and advising some solutions.
The real cost of hiring cheap developers
In this example, let’s define how much the support of one developer at $15 / hour rate could cost.
The 15-hour work of cheap developers usually requires 23.5 hours of support from the other team members.
When hiring cheap developers, the support could cost:
- In-house Project Manager to control outsourced developers with a coefficient of 0.3 results in 5 working hours
5 hours * $95 per hour = $475
- QA Specialists coefficient is 0.5 with 7.5 hours of testing
7.5 hours * $30 per hour = $225
- Team Leader needs to work 6 hours due to 0.4 involvement
6 hours * $100 per hour = $600
- Product Manager/ Owner spends on average 5 hours with 0.3 coefficient
5 hours * $120 per hour = $600
So we have $225 for the developer’s fees ($15 / hour) and $1900 for the in-house team that has to support him. Total cost runs to $2125 (provided everything goes well and the code doesn’t have to be rewritten from scratch).
The real cost of hiring expensive developers
Eastern European countries like Ukraine and Poland charge 3 times more for the developers with the same 5 years of experience – so rates are $35 – 50 /h. The main factors that justify the higher rates are the well-developed technology and engineering education sector that takes its roots from the 1930’s, better English language skills, cultural similarity and way better time overlap in comparison to the Asian region.
The 15-hour work of an experienced developer requires 10.5 hours of support from the other team members.
- Project Manager coefficient is twice less – 0.2 with 3 hours of work
3 hours * $95 per hour = $285
- QA Specialists on average spend 3 hours with 0.2 coefficient
3 hours * $30 per hour = $90
- Team Leader needs 3 hours due to 0.2 involvement
3 hours * $100 per hour = $300
- Manager coefficient is three times less (0.1) with 1.5-hour collaboration
1.5 hours * $120 per hour = $180
The experienced developer would charge $525 ($35 / h) but his support costs only $855. Total cost is $1380 – 35% cheaper than the “cheap” developer. Experienced professionals are not only much cheaper to support but they also guarantee the quality of provided services.
- Hiring cheap developers is actually more expensive than hiring experienced ones when all costs are considered.
- High productivity can make a significant difference in the development process.
- Good services always have a reasonable cost in order to provide the best quality.
If you have additional questions, feel free to contact Sorcible. We are a software development agency with extensive experience working for major companies and we execute both complex and more straightforward custom development eCommerce projects. Please visit our contact page to start the discussion.