offshore development rates

outsourcing software development

offshore development companies

outsourcing rates

At 60 Bucks per Hour: Offshore Development Rates Explained

I'd like to start this writing from breaking a couple of copywriting rules.

One stating that a writer needs to be specific and focused on the subject, especially at the beginning of the copy - to prevent folks from leaving straight away. And one saying that a writer must provide the already chewed information and never really make the reader think critically - the reader doesn't want to think critically and it's hard to feed anything of a selling nature (copy is supposed to sell) once he/she started.

Mind me doing so?

The Kingdom of Boredom

Ignorance. Is it a luxury that we all want or is it a natural need that we, humans, have? Do we consciously pay for staying ignorant or it's just our brains' energy-saving setup that forces us to not think about many things that we could of and should of? Personally, I believe it's the former. But like all philosophical questions, this one has no correct answer.

However, getting the right answer is not the point here. Why I decided to waste your time for a damn philosophical question now is because that's how you are supposed to start thinking about how much you pay for staying ignorant every day, buying shitty goods only because the ad or the brand told you to do so. And whatever is the figure you've come up with, add a few zeros to that to get the idea of how much does ignorance cost in the hefty world of software development rates.

That's why I believe the information about development teams and the factors determining their hourly rates matter. And I'd like to share some.

As you might expect, offshore development rates is not a simple subject. I spent like six hours extracting the valuable information from my more experienced colleagues and then just over a week supplementing and transforming that mess into readable content.

To actually explain anything instead of just feeding you marketing bullshit, I've got to start from far away. To be exact - start from how are we used to become conscious buyers and why this is barely applicable to software outsourcing.

Staying Conscious is Hard

As a buyer, you know your need. Period. As a conscious buyer, you know the need in detail plus you have the information about the market where this need can be met - alternatives and prices.

Let me exemplify a bit.

Buying a car with the backlog containing only "Powerful, good-looking, American and $50,000", you have equal odds to end up with a Ford F-150 pickup truck, a Chevy Camaro muscle car or a Tesla Model 3 geek car - chances to buy the desirable thing aren't that high.

However, if you start thinking about how much power do you need and what for, clarify the "good-looking" and understand why it has to be American, then the chances to succeed in getting the needed product increase dramatically.

The second step is to search for alternatives and collect the data about how much does it cost and, sometimes, why is it so. For example, you can learn that a laptop may cost twice as much as the other one looking exactly the same because it offers twice as much processing power, more modern video card, more RAM and the enhanced cooling system to handle all that high-performance hardware.

Then, you analyze whether you need that power, determine if the price is any reasonable in comparison to the competitors and make a decision. The educated decision that results in the best possible need satisfaction.

With IT outsourcing in general and offshore software development in particular, you definitely want to be a conscious buyer because it's quite a lot of what you lose if the desirable is not received. And it's quite a sum that you waste if overpricing is the case.

The problem is that you cannot become one using the principles allowing to buy a proper car or a good laptop, and it's important that you understand this.

Outsourcing Rates Are Like Math — You Never Really Understand it

Paying for a thing, you know what will this thing eventually be. Paying a software development company for its services, you don't. Because a) it's a unique product that you're going to create b) you don't know what exactly is necessary to get that done and c) one way or another, everything may change in the course of the project.

Don't get me wrong though, the clarification of demands is necessary. But it's impossible (and is not necessary) to know everything at the beginning - ask Google or Amazon founders about how flexible your mindset has to be at the project launch.

And if so, if you simply cannot know what exactly you want to buy, it's pretty hard to understand which outsourcing company can sell the thing and which cannot. That's to say that the analysis of the market, comparison of the offers and even the very understanding of whether the desired is being delivered as the project goes on is not that simple - in contrast to most other shopping experiences.

To be a conscious buyer with offshore development companies means something different from what it means elsewhere. Only the template can be the same - first check the requirements, then check the offers - but what you fill it with must be drastically different.

Top Outsourcing is Not Just the Quality of Code

When setting off, the requirements that you have must consider not the ultimate goal of the endeavor itself but rather the ways of its achievement. At this stage, you've got to choose whether it is a risky way of dealing with a cheap team or it's a secure approach of working with more expensive and more dependable specialists that you prefer.

In the range of up to about $150 per hour, what you're primarily choosing from is the degree of risk and the amount of a headache that will be accompanying you throughout the project. This is not true for niche services such as machine learning or blockchain, which tend to be more expensive overall, but is applicable to more conventional projects focusing on mobile apps, web extensions, etc.

What you're expected to ask now is what makes cheap (say inexperienced) software engineers, project managers, QA engineers, designers and other team members risky and how their more expensive (say cooler) counterparts manage to do better. The answer would be the ability to do the following:

  • Make accurate estimates
  • Perform well
  • Stay proactive
  • Get stressed without rupturing
  • Stay flexible and yet predictable
  • Ensure the emotionally comfortable cooperation
Since none of that is, in my opinion, specific enough, explanations follow. But first, it's necessary to clarify why do hourly rates for seemingly the same team composition range so substantially.

Note, this is going to be fairly subjective and averaged, considering software development costs in typical outsourcing destinations such as Eastern Europe.

First, I consider what exactly you're supposed to get for the given rate, and then I apply each of the 4 analyzed teams to each of the afore-listed relevant team capabilities.

$150 per hour team: Reputable and experienced project management that has already failed enough to learn how to get things done. As a result, excellent risk management, critical thinking, analytical capabilities, a desire to always go an extra mile, etc. If they seriously screw up anything, the refund is likely to follow - the high profit margin combined with the value of reputation make that possible.

Full-time allocation of most specialists, which have already proved effective in a variety of industries. High skill, plenty of experience with different technologies, focus on the result that matter to you - no coding for coding.

Neither time zone difference nor language barrier exists. The best development practices, such as test-driven development, high test coverage, code review, and automated build and deployment, are followed.

Agile practices are applied consciously, account managers are responsive. The brand, overall, is reputable and may be specialized in your business domain.

$100 per hour team: Such a team offers broadly the same as the one above does. However, their name is not as famous, their experts are likely less reputable and no specialization in your domain.

$60 per hour team: Management has either insufficient allocation or insufficient experience. As a result, poor risk management and more of a tactical, short-term and short-sighted approach to the development.

Overall, mid-range teams are all about luck - you either get almost like $100 software developers for less, or it's a vastly overpriced offer from the lower range.

Lack of focus on the end result, perceptible weaknesses here and there - English, Agile, development culture or simply attitude may be unsatisfactory.

$30 per hour team: The management is just sort of a secretary that doesn't guide the team but is guided by one. None or next to none experience, hugely overloaded - there can be a dozen of projects apart from yours that the given individuals are responsible for.

The team is green and, as a result, is constantly under the stress due to lack of confidence and understanding of how to do what you want them to. Never really look one step ahead, most of the modern software development practices are skipped through the lack of time.

The company, in general, is interested only in making money on you rather than actually implementing your ideas. A lot of hidden costs and the bloated team, which, in combination with the lack of experience, makes communication at all levels a nightmare.

Now, let's see how such teams manage in what matters to you, the client.

Estimates

This is the simplest and the most obvious one - you want things to be done within (or below) the estimated time and budget.

$100-150 per hour: The magnitude of error is no more than 10% in a long term-perspective - such a team can fuck up a sprint, but will then redeem by offering a better solution for infrastructure or something you didn't even expect, therefore offsetting the losses. So note, both slight overestimates and underestimates often take place.

The seasoned and available senior team members plan instead of guessing, ensuring that whatever issue pops up, it's addressed fast. If you try to press the estimates through (which, I bet you're already thinking about), you will be politely flipped off because these estimates are never made out of thin air - they mean something and you've got to take them seriously.

$60 per hour: The magnitude of error in this scenario can exceed 50%, and it's basically always underestimation - less experienced managers don't manage risks while less experienced engineers tend to be too optimistic. Besides, the lack of foresight may show up later on. Generally less skilled workforce ensures that there will be plenty of surprises.

$30 per hour: Estimation is not the right word to use here. Fortunetelling is the one. The green workforce combined with the minimum of experience at the top not just consumes a whole lot more time at each any significant bug, they may struggle to find or to fix it at all. The laid project foundation may be so bad that you will eventually need to restart the whole thing.

Performance

Everything is clear with this one too. You pay for the job done — how much of it is to be done by the given team per given unit of time that costs you a given number of bucks?

$100-150 per hour: Because the leaders here have substantial experience and skill, they can foresee and analyze. For example, they may prevent you from building the backend on the popular Node.js explaining that its libraries are not stable and you may spend a ton of cash every time these libraries get updated. Or they may whisper that Ruby, albeit stable, isn't that quick and will make any high-load system woefully slow.

With them, you have the strategic decisions made right and the whole project moving across the shortest way possible - a myriad of problems is solved before they even appear, resulting in the high overall pace of the project.

$60 per hour: More problems appear because of the short-sighted solutions from the past. They get solved but mostly on a tactical level, without much of analysis and predictions as for the future of these fixes. The same thing about all the features the team implements.

In a long-term perspective, it brings unpredictable delays, fucked up deadlines, etc.

$30 per hour: The solutions implemented may stop the project for weeks if not forever. As the release date approaches, the number of bugs is growing, and each new fix creates two new bugs - the lack of experience results in fast and ill-judged decisions. If any, the ultimate product will be a far cry from what the market needs - nobody analyses the market or considers the input that you provide.

Load Bearing Capacity

This one may or may not matter to you. It's the team's ability to go into the overdrive mode when you ask them to, and actually succeed there. It's not always the case, but just like that afterburner fitted to a jet fighter's engine, such an option may save your project from trouble some day.

$100-150 per hour: The overtime will never be met enthusiastically, but if you explain the reasons and the team agrees on their validity, the needed tends to be provided. That's because your project has already become their project in a way that they care about its success as much as you do, if not more - you gonna feel that many times throughout the collaboration.

$60 per hour: Overtime may be refused. In part, because the team is not into your project, it's more of a routine work for them - something you don't enjoy spending your weekends for. In part, because of the generally lower performance - the amount of overtime tends to be substantial to make any difference.

$30 per hour: Overtime possibility is considered not as something crucial for the project's success, but rather as an opportunity to make extra money. You may even spot the enthusiasm, but the real contribution will be infinitesimal whereas the extra spends will be significant.

Solidity-Flexibility Balance

You want a predictable delivery. However, you also want to be heart when something unexpected and unplanned pops up.

$100-150 per hour: You will be listened to. If you ask for a feature and explain why it's important, you will be provided with immediate estimates and reasoning as for which works and why will be postponed in favor of the urgently needed thing.

$60 per hour: The task will be added to a backlog, but is unlikely to be executed any time soon. That's because planning is complicated. Re-planning, changes introduced amid the sprint, make everything trickier for the developers and riskier for their management. If more expensive senior team members are ready to go there, their less confident and likely busier colleagues may not.

$30 per hour: With a poor planning capabilities, low general performance, and low skill, such a team may screw the whole project up, halting everything at once. It will take a whole lot of time for them to satisfy the request, with many other features messed up and the performance falling even lower - just like it happens with any unprepared human being facing an unexpected complication.

It will feel more responsive to you, but the results will be disastrous - it's like emergently stopping a car using not good brakes but a concrete wall.

Comfort

As with any other service, personal experience matters in offshore software development. You're a human being and, no matter what, you want to be treated as one.

$100-150 per hour: To be a high-quality software engineer, project manager or whoever else means to be the one who knows how to stay professional, how to act the way you, the client, like most. No matter how much of a confusing stuff you encounter, everything will be explained politely and patiently. It never goes personal and you always feel fine while closely cooperating with the team.

There is a person in the team responsible for not only your project's accomplishment but for personally you being satisfied. And this is the guy that actually cares about what you say.

$60 per hour: A matter of luck - there may be staff who you enjoy dealing with, or there may be individuals who you hate. The account manager appears to be always busy with something else, the feedback and communication overall may be inefficient due to the individual's lack of skill in the required areas.

$30 per hour: As a cheap company that cuts corners wherever is possible, this one sacrifices your personal experience in the first place. Except for being incompetent and overloaded, the responsible persons are interested only in extracting from you as much money as possible. You gonna feel that - it's like the cheapest diner where you pay even for a glass of water and nobody really cares whether you have a good time sitting there or not.

Story Finalization

If you were cogitative as I asked you to, then you now have the understanding of what is expensive, what is medium-priced and what is cheap in the offshore software development field, and can associate these notions with the actual figures. Moreover, you see where do such hourly rates come from, meaning that you can make even more conclusions on your own.

As a result, it's now will be easier for you to understand when the offshore development rates you pay are justified and when they aren't. Besides, you can make a better, more informed decision as for what works for you best - even $30 per hour teams have their niche and you may belong there.

You've defeated your ignorance.
Pavel Suprunov
May 14, 2019

Read more: