Let me put it this way: $15 per hour for a senior Java developer—is that cheap or expensive? It's cheap, right? Right. What would you say if I told you this cheap Java developer hardly writes two primitive lines of code per day? You're paying $600 every week but rarely getting anything back. How cheap is this Java guy now? My point is that using hourly rate as a cost indicator is a very bad idea, whether with outsourcing or in-house teams.
I actually decided to write this after a short sales meeting recently with a prospect from Illinois. He wanted to hire Teamed.io for his Java project and seemed to like our approach. I explained how we work, how we control quality, and why and how we're different from everybody else. He seemed to be impressed. Then, he asked, "How much do you charge?"
I told him that we are also different in the way we bill for our work, because we don't charge for the time spent by our programmers sitting in front of monitors. Instead, we bill for results produced, merged, and delivered. I showed him this article about incremental billing. He seemed to understand the advantages of our approach, compared to the hourly salaries being paid by
almost everybody else in the market.
Still, the question remained—how much?
What could I do? I had to give him an answer.
I told him that our best Java programmers earn $30 to $50 per hour and we add our margin on top of that, in the amount of 100 percent, for management. In the end, "one hour" will cost him $60 to $100. He ran away.
What did I do wrong? I think I know what it was. I didn't explain to him that, under different management, programmers deliver very different results in the same 60 minutes. By "very different," I mean dramatically different. Let me demonstrate the numbers (I actually did that already almost two years ago, in my How Much Do You Pay Per Line of Code? post, but will try again from a different perspective).
- 15 minutes to me for creating a new ticket
- 30 minutes to @hdous for fixing it
- 52 minutes to @pinaf for code review
- 20 minutes to @ypshenychka for QA review
Assuming that an average price "per hour" is $50 ($25 for developers and $25 for our management), the total cost of this new feature was $97.50 (117 minutes).
Four people worked on this feature. If you put them all together in an office, full-time, with the same hourly rate, they will cost $800 per day (I'm not adding any management costs!). Now the question is whether they will be able to create eight new features every day.
If you're a manager, you know the velocity of your programmers. If you're a programmer, you know how much code you can write in a day. Now, honestly tell me if you find and solve eight bugs per day with that level of complexity, detailed code review, and precision of documentation? I seriously doubt it.
In that How Much Do You Pay Per Line of Code? post, I actually did a comparison of a co-located project, where I was an architect, with a distributed one, where I also was an architect. My numbers tell me that a traditionally managed team is at least 10 times less productive than a team managed by Teamed.io under XDSD principles.
Instead, we should ask: How much can you do for $100?
As you can see, we can easily demonstrate how much we are capable of delivering for $100. Can you and your team do the same?
Thus, your ROI while working with an outsourced team mostly depends on their results per dollar, not dollars per hour. The first metric is difficult to calculate, and only the best teams will be able to do so. The second metric is absolutely misleading, but anyone will give it to you.
An outsourced team is expensive when its results per dollar are low, no matter how big or small its dollars-per-hour rate is. To the contrary, a team is financially very efficient if its results per dollar is high. It doesn't really matter what the value of the second metric is.
P.S. I'm going to show this article to that prospect who ran away. Maybe he will come back :)