Software engineering doesn’t just mean thinking about code or performance. It also means thinking outside the code. Most importantly “The Human Factor”. Well, yes we are building something with code but at the end of the day it’s humans who will use what we built.

Let me give you an example and this actually happened to me.

My wife and I were both too lazy to cook the other day, so we decided to order some food. We logged into a food delivery service and placed a large order (please don’t judge us we just love to eat).

After a while, we received a notification saying that our order was on the way. When we checked the app, we saw that the delivery guy was also delivering another order. Well, no surprise there. A lot of delivery services have started doing this since it’s cheaper for them. Again, after a while, we received another notification saying the delivery guy was on his way to our house. We got excited and started waiting for him (yes, we love eating that much). When the guy arrived, he practically threw the package from a distance and ran away. And when the package was mid-air, I realized it was too small for our order (Ok, ok, maybe it didn’t happen exactly like that, but you get the idea). When I checked the receipt on the package (kudos to restaurant for that because a lot of restaurants don’t print out receipts and include them with packages), I realized that the package was actually for another order (probably for the other guy that the delivery guy delivered for). We got frustrated and immediately requested a refund (for the price difference). They refused and said, “It’s not our fault”, but that’s a whole other topic. Finally we both created accounts with another delivery service, deleted our accounts from this one, and promised each other that we will never use it again.

Don’t get me wrong this company is huge, and it has hundreds of engineers. In fact their engineers post updates every day saying things like, “We are awesome at this” and “We are awesome at that”. Well, they always talk about code, frameworks, and such. I’ve never seen them talk about the human factor. I don’t think cases like these would be too hard to anticipate. And I really don’t think adding location validation to order-complete request would be difficult for a team that claims to be that awesome.

I searched the internet and found a lot of people complaining about similar cases, many promising never to use this service. Their code might run smoothly and efficiently, but it looks like they are losing customers because of the human factor.