Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Overreaching perhaps. Probably. Doing nothing wrong however…

If this game is consuming more bandwidth than is necessary to deliver its experience, then they are doing something wrong. Both in the technical sense and the moral sense.

Developers have a moral obligation to not waste their user's resources, dammit.



Would you care to share the premises that lead to such a stance? I can't think of how such an obligation would be occurred or why. To me use indicates that the value the end user gets is greater than the costs. Why would creating something valuable but not perfect be immoral? If those that create value are acting immoraly when failing to achieve perfection, are those that don't create value likewise held to the same standard?

I'm honestly a little offended at the notion that developers owe anything beyond what's contractually agreed to their users. That something can be accessed and enjoyed for free, that it can be preferable to any other alternative activity the user could be doing, and still not be enough on the part of the supplier to avoid moral condemnation seems like the height of entitlement.


> failing to achieve perfection

This is a straw man - nobody expects perfection. For some reason there is a lot of resistance to educating the use and asking their permission.

I suspect that this game simply needed a clear warning before download and on startup that includes an estimate of the bandwidth needs. Perhaps only the first startup with an acknowledgement from the user. It may not be possible, but if there is a way to estimate the remaining data plan limit it, including an estimate that "This game will use X% of your data plan per hour" would be a very good way to let the user manage the own usage.

> offended

Welcome to the club. I'm offended every time a developer user resources (including data) without specific informed consent. "Free" is rarely without cost, and the user is rarely informed in detail. This lack of respect for the user has grown in recent years with the paternalistic attitude that users shouldn't/can't understand technology and the developer should manage the software for the user. Often this is claimed to be for dubious security reasons.

You complain that the developer shouldn't have to do anything beyond what they promised in a contract. They can have that level of interaction if-and-only-if they inform the user properly so the user can make informed choices, and they leave the user alone. If, however, the developer wants to retain any amount of control such as data gathering, forcing updates, or using any user resources without informed consent, then the developer is the responsible party. Let the user actually manage everything for themselves in a responsible manner, or accept liability for any problems derived from your software.

> height of entitlement

The height of improper entitlement are the developers that think they have a right to spy on users, take actions on the user's system without their permission, or otherwise do anything behind the user's back.

The user, however, is entitled to business interactions free of any dissembling or obfuscation.


>This is a straw man - nobody expects perfection. For some reason there is a lot of resistance to educating the use and asking their permission.

The person I responded to specifically said waste. As in the part they find morally unacceptable is that if a developer had spent more of their time optimising their product they could have got the data use down from 20mb/hour to something less but chose not to.

If not perfection then they're still setting the bar for morally acceptable actions to be somewhere between benefitting others and perfection. So my question there would still remain. If someone developing a data wasteful product that people enjoy using is immoral, what exactly is me sitting on my couch eating doritos and watching tv? It's benefiting others far less than creating pokemon go is.

>I suspect that this game simply needed a clear warning before download and on startup that includes an estimate of the bandwidth needs.

Why this game? Or do you think all internet using apps should do this? If so why would this not be on the operating system rather than every app rolling their own version? Note that they already do measure data use and allow for restriction. If pokemon go is using between 10 and 20 mb of data per hour as the paper suggests then I'd be very surprised to learn that this is in excess of most peoples data useage per hour of internet use. Facebook, instagram, snapchat, reddit, pinterest, youtube, spotify, browsing around on ad and large header image infected news sites is standard internet use no?

>Welcome to the club. I'm offended every time a developer user resources (including data) without specific informed consent.

I don't see why informed is their responsibility and not yours. They aren't choosing to run their work on your device.

>This lack of respect for the user has grown in recent years

Why does the user of a free service deserve anything from the developer, including either the service or respect? Why does the developer owe the user respect? Where did they earn that? If they are paying for the product, why do they deserve anything more than is listed that they're paying for, of which I know at the very least for pokemon go 'respect' is not a listed item.

>They can have that level of interaction if-and-only-if they inform the user properly so the user can make informed choices, and they leave the user alone.

Why is the default that they owe the user something unless stated otherwise? Were they born with this responsibility? Was it bestowed upon them when they learned to develop? When they wrote the code? When they put it on a public accessible site? When they marketed it? I can't see at which point they start to owe complete strangers something if not at the point of contract signing.


> The person I responded to specifically said waste. As in the part they find morally unacceptable is that if a developer had spent more of their time optimising their product they could have got the data use down from 20mb/hour to something less but chose not to.

Scale matters.

Let's suppose they reduce the data use down to 19mb/hour, saving just one little megabyte. Let's assume the average user's data plan cost about 1$ per gigabyte. Apparently, users spend about 5 hours per week on this app, let's say 20 hours per month. So we're saving 20mb/month, or 0.02 (two cents). Let's assume there are a million such users. Total, this would save 20.000 dollars per month.

Okay, now let's suppose a developer's time is worth about 100$ per hour. It would take 200 hours worth of development for the development cost to exceed the savings, or about 5 weeks.

One little megabyte for a month is worth more than a month of developer effort. And of course this is just one megabyte. If the sibling threads are any indication, a proper caching mechanism would likely save over 15Mb.

15Mb means the users are losing over 3 million dollars per year.


With regards to the users expecting respect - this is not about business, this is about human decency. Respect is something one should give to other people by default. Sure I can go and waste other people's time and money on purpose, to the limits allowed by the law, but doing that - in normal, real-world life - makes me an asshole.

Now I understand that you're trying to prevent shifting all the blame and responsibility on developers. Indeed, I don't think this is an issue that should prevent one from sleeping at night, or something. But I believe that - as a basic part of the craft - it should be something one thinks about. That as a developer, one should minimize the load of one's product on the end-user to the extent it's reasonable.

A perfect app does all the things user needs while using zero resources. We will never make a perfect app, but we can sure treat it as something to aim towards.


> I'm honestly a little offended at the notion that developers owe anything beyond what's contractually agreed to their users. That something can be accessed and enjoyed for free, that it can be preferable to any other alternative activity the user could be doing, and still not be enough on the part of the supplier to avoid moral condemnation seems like the height of entitlement.

Honestly, this is about basic self-respect as a developer, engineer and a human being in general. If you can do the right thing, make a solid engineering decision - then you should absolutely do this instead of choosing the most lazy-ass copout. It usually doesn't take that much of a work. It takes a small choice, like not to download every fucking resource every fucking time a page is redisplayed, or something.

Software developers have a stronger obligation here just because of the scaling factor - every resource waste you outsource to your users gets multiplied by the number of users. Sure it's minuscule, but it adds up over all the other developers that don't give a crap either.

I mean, if you want to talk "contractural agreements" then please by all means do so - but be so kind and formalize the implicit assumption that the product is not intended to waste user's time and money because programmers were lazy. Give me an estimate on amount of RAM, expected net traffic and watt-hours it uses up, and if I chose to use the product, I will not complain about resource usage anymore.


Not only that, but surely it's better for the developers company too right? Sending the image every time uses data and resources from their side too. Caching images (like the Pokestop icons) on the users device will reduce all those resources and perhaps help them scale more efficiently?


I whole-heartedly agree, but the reality is that it depends on your perspective. We could have uni kernel apps to run spreadsheets, but instead we now use Google Sheets, inside a JS VM inside of a sandboxed browser on top of an OS which maintains a separate copy of tons of configuration files for each separate piece of software which runs in a sandboxed environment and uses other layers of translation to do things on the hardware.

We've shown over the past 40 years that we value developer productivity much more than user resources. Most relevantly, consider the average size of a webpage: http://www.yottaa.com/company/blog/application-optimization/...


This state of affairs is utterly ridiculous and bad engineering. Sure it's driven by the market, and most of us have to operate within those constraints because of our jobs - but I think it is a responsibility of a developer to push back at least a little bit when the market pressures promote bad engineering. Think of it as sending feedback to the system. That's the only way to price quality in - users won't do it, because in most cases, users have zero real choice except to use the product. Only those making it can make it work well.

And then we can also support those working on changing the platform-level stuff.


> We've shown over the past 40 years that we value developer productivity much more than user resources

Of course: we're developers, and we can't multiply. When we use the user's time, we picture using one user, not one million (or, more reasonably, a couple thousands). So it rarely occurs to us that the users' resources are vastly more important than our own productivity.

To a lesser extent, this can be true for custom software as well.


There is always another thing to optimize, so no matter how well they do they are still doing something wrong by your point of view.


> Developers have a moral obligation to not waste their user's resources, dammit.

Where do you draw the line to define 'wasting' on the expansive scale of efficiency? Past a point it doesn't make business (or technological) sense to optimise. How do you define what level of bandwidth is 'necessary'? If you're suggesting that apps should not release with obviously stupid practices then I agree with you. Past that I'd find it difficult.


I think this is a nonstarter. For two generations we've been failing to enforce even a moral obligation that software should work reliably.


Because we didn't kill enough people yet. (Irradiated patients, unintended accelerations…)

When that happens, governments will do the only thing they can: regulate the hell out of us. Unless maybe we regulate ourselves first.


Or, work at all.

And companies know well that looking nice and being "user-friendly" has a better ROI than actually doing something useful.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: