Do you have any idea how soul crushing it is to work your ass of on site performance, to have people passive-aggressively question the team's abilities when the numbers are even 100ms too high...
And then when you're done some nosey assholes go and add over 2 seconds to your page loads just so they can do something ethically questionable. And the fact they waited til the end to add it on just proves that they knew it was going to be bad news but they did it anyway.
It sucks. It kills trust for the organization, and it kills respect for everyone in the decision chain.
My coworkers and I joke from time to time about running an ethical advertising network with reasonable software. Well, they're joking. I don't think they know I'm not entirely.
How would that work? And more importantly, how would it stay ethical? I imagine the very basic idea would be to not need to track users, which removes the need for the huge swaths of Javascript that pollute the internet. But would that be profitable?
I'm curious to know what thought you put into this so far.
Or on the flip side, I run a website. I want to make some money to pay my expenses, but do I really want to inflict these ad networks on my readership?
It’s not the sort of project that’s going to make you rich. It’s the sort of project that lets you sleep better.
They don’t work well with universal/isomorphic web apps, because they have no way of telling when hydration occurs, so they can really mess a page up if they do their filthy business too soon.
But assuming that doesn’t happen, there’s still the matter of what they call “flicker”, which is a silly word that means the original content is visible initially, and then marketing’s changes kick in. To avoid so-called flicker, a page-hiding snippet is inserted into the page, making the entire page transparent until the tool modifies the page. These tools are often blocked by ad blockers, so the page will either remain blank, or will be restored by the page hiding snippet after a few seconds.
You can make a blazingly fast website, and then marketing comes along and takes a big dump on it.
using unoptimised images
adding massive amounts of javascript
messed up canonicals
internal links requiring redirects to add or remove trailing /
terrible design choices - oh yes lets put 10 products on a single page
You can't just blame it on the marketing department.
Yes it is a business decision, but, you have the power to demonstrate that slower pages lead to less clicks and hurt the bottom line.
If the FT's developers can manage to sell this, then so can you, We, as developers can't live in a bubble. We are part of the business and we need to steer the business as we see fit.
Almost standard HN answer when it comes to moral programming questions is to stand by your principles and resign immediately, but this usually comes from people who haven't had to deal with paying bills or become homeless. Even then if you don't do it someone else who needs the money will.
What would you KaiserPro do in this situation?
What company do you work for that makes more money by causing your app to load twice as slow? I think it's reasonable to expect a developer to measure and present the correlation between performance and revenue.
I used to work in e-commerce and in spite of my repeated warnings about performance, no boss cared. Then some SEO consultant said "google wants fast websites". Guess who got blamed ?
I'll bite. Do you really do this? If so, I'm seriously curious about how you could conclude a straight line causation (not just correlation) between an increase in revenue by an increase in performance? Potentially for a large scale site like Twitter, Facebook where performance means less eyeballs, but even then it's just a correlation.
I was here https://medium.com/ft-product-technology/a-faster-ft-com-10e... when they did this.
Its easy to find graphs that support your conclusion.
I'm not sure if you are trolling. Can you seriously not parse out that sentence? It is the ad revenue that makes the money. The app loading slow is a side effect. No one (that I know of) is making money by deliberately making slow applications, just think for a second that makes no sense. However a lot of applications make money from ads.
This is my point. If you can't answer the first and most basic question with hard data, you're fucked. There is literally no point going to one's boss and saying "this is morally wrong" unless you can make a business case. (or your boss has the same world view as you.)
If you can't argue that your change is going to move a KPI for the better, you've lost your argument.
I know lots of "tech" people like to waft about thinking that they are above such mundane things as buisness KPIs (OKRs if your management team has swallowed google's rubbish) Thats why they think they are such maligned geniuses.
Tech is an enabler for a business to do business. Its just another tool, like a warehouse, van or envelope. If you want to make sure you're not going to get slung out during the next re-org, you have to make sure that you are performing to what the _buisness_ wants from you. Thats a two way street.
for example, marketing come up to us and say: "we need a microsite for the conference thats coming up"
Sure I could make a K8s cluster to host a website. But I could do it quicker and cheaper by using a PaaS(or Saas), trumpet the speed and clarity of my execution, underline in triplicate the capex cost I've saved (ignoring the opex, because they won't find out about that till next year, plus it's not my bill, I'm measured on staff costs.)
Is it cutting edge? is it fuck. Does it get me browny points? you bet ya.
I can then spend those browny points on trying to change things about my working environment that I don't like. As I've made marketing happy, I can work on them to find a better tracking company, or better yet, get them to pay us to develop their BI pipeline.
Sure its not a "pure tech" experience. But I can affect way more change than reskinning the website in yet another framework, following the latest animation style guide from some sadistic nonce claiming to be a UX guru.
So No. I wouldn't quit over this. Because I'm not a Wilde-esq dandy.
If your boss is worth their salt, reasonable moral objections will be taken seriously. It's management 101. If not, you are probably not going to be happy there anyway.
From the user's stand point - they are pure overhead, too. For my own project, I decided to ditch them completely. Including the analytics. Well, it would have been nice seeing all the nice plots but at the end of the day they just show vanity metrics. The real impact is immeasurable.
I want to think basic analytics has a very low impact on performance. Ads, on the other hand... Which all inject their own analytics as well.
I'm still fairly certain it involves developers, who, in theory, should have pre- and post- number on performance, visits, etc. Or am I delusional?
And even more so with tools like tagmanager... not only you have no say, you also don't know. And one day the site breaks or is too slow to be useful and someone puts the blame on you.
It's not a useful definition imho.
It's not that there aren't any developers contributing to the problem, those building the fat 3rd-party scripts definitely are (though they're likely under different constraints), but the argument for "you're contributing if you don't use your credentials to secretly edit out the javascript that loads that tool and get fired" is pretty far out there, I think.
Yes, you can make the argument that "well nobody actually has the power to decide, they are all being forced by something", but it gets very weird quite quickly when you're looking at the people making the decisions. Whenever it gets into "but is there actually such a thing as free will" territory, I feel like the usefulness of the definitions used isn't there.
Not on an individual level, no, but collectively it could. I'm not advocating that webdevs organize to boycott companies bloating things because it isn't really that big a deal, but if we imagine the ethical situation were much more important then that's how they could go about changing the situation.
Of course, it's much easier to pretend that they have no option at all than to admit that, compared to being slightly less well off, it really isn't that big a deal to them. It lets them virtue-signal that they care without accepting any blame for the situation, while also conveniently allowing them to point the finger at their mortal enemies in marketing. Nevermind that marketing needs to put food on the table too.
You're very right that marketing needs to put food on the table too, that's what I hinted at regarding being forced. There's a very clear difference though, in deciding what to do (marketing) and not deciding what to do (devs, at least those where they aren't involved in the decision, which is a lot).
Whoever is in charge could very much make a different choice in this particular manner, a developer getting a task cannot. What a marketing person can't do, similarly, is say that they won't do their job. How they do their job is mostly up to them, just as the developer tends to be free in choosing how they get that 3rd-party-lib into the site, as long as they do it.
It doesn't. Once you have Google Tag Manager added, the marketing team can add scrips as they like on an admin interface. Point, click, murder.
If you're trying to make a page load instantly (100 milliseconds - the edge of human perception), it isn't possible with Google ads, even the text only ones.
In my experience the edge of visual perception is somewhere below 10ms
100ms is a glacially slow reaction time in comparison, and it's a bit sad that most of the tech industry is setting their performance goals so low.
(In fairness, I suspect most people wouldn't be able to verbally express why the 16ms feels better to them than the 33ms, but would subconsciously notice the difference.)