Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Code That: It Is Cheaper to Get a Human?

DZone's Guide to

Code That: It Is Cheaper to Get a Human?

Read this article to explore one man's opinion on whether or not it is cheaper to have employees or a machine on AWS with 64 cors and two TB of memory.

· Database Zone ·
Free Resource

RavenDB vs MongoDB: Which is Better? This White Paper compares the two leading NoSQL Document Databases on 9 features to find out which is the best solution for your next project.  

Rafal had a great comment on my previous post:

Much easier with humans in the process — just tell them to communicate and they will figure out how to do it. Otherwise they wouldn't be in the shoe selling business. Might be shocking for the tech folk, but just imagine how many pairs of shoes they would have to sell to pay for a decent IT system with all the features you consider necessary. Of course at some point the cost of not paying for that system will get higher than that…

This relates to having a chain of shoe stores that need to sync data and operations among the different stores.

Indeed, putting a human in the loop can, in many cases, be a great thing. A good example of that can be in order processing. If I can write just the happy path, I can be done very quickly. Is anything not in the happy path? Let a human deal with that. That cuts down costs by so much, and it allows you to make intelligent decisions on the spot with full knowledge of the specific case. It is also quite efficient since most orders fall into the happy path. It also means that I can come back in a few months and figure out what the most common reasons to fall off the happy path are and add them to the software, reducing the amount of work I shell to humans significantly.

I wish that more systems were built like that.

It is also quite easy to understand why they aren’t built with this approach. Humans are expensive. Let’s assume that we can pay a minimum wage in the states that would translate to about 20,000 USD. Note that I’m talking about the actual cost of employment, this calculation includes the salary, taxes, insurance, facilities, etc. If I need this person 24/7, I have to at least triple it (without accounting for vacation, sick leave, etc).

At the same time, x1e.16xlarge machine on AWS with 64 cores and 2 TB of memory will set me back by 40,000 a year. And it will likely be able to process transactions much faster than the two minimum wage employees that the same amount of money will get me.

Consider the case of a shoe store and misdirected check scenario. We need to ensure that the people actually receiving the check understand that this is meant for the wrong store and take some form of action. That means that we can just take Random Joe Teenager off the street. So another aspect to consider is the training costs. That usually means getting higher quality people and training them on your policies. All of which take quite a bit of time and effort. Especially if you want to have consistent behavior across the board.

Such a system, taken to the extreme, results in rigid policy without a lot of place for independent action on the part of the people doing the work. I wish I could say that taking it to the extreme was rare, but all you have to do is visit the nearest government office or bank or the post office to see common examples of people working within a very narrow set of parameters. The metric for that, by the way, is the number of times that you hear: “There is nothing I can do, these are the rules” per hour.

In such a system, it is much cheaper to have a rigid and inflexible system running on a computer. Even with the cost of actually building the system itself.

Get comfortable using NoSQL in a free, self-directed learning course provided by RavenDB. Learn to create fully-functional real-world programs on NoSQL Databases. Register today.

Topics:
database ,code

Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}