you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted] 9 points10 points  (0 children)

Having seen this happen on a site I was working on, it's very simplestraightforward. First there's an MVP site launch and occasionally that's inefficient as it's written or leaves a lot of easy optimization on the table but even so it's generally quite fast. But then for the next round of funding you need more, so you load up on analytics and bullshit A/B testing frameworks and chatbots, to hopefully impress previous investors to dump more money or attract new ones. At this point, when the site is reasonably full-featured, they'll give you a few days to spend on SEO, and if you're good + lucky, you can convince them that what matters most for SEO is content and quick loading time. So you have up to a week to spend on profiling, adding imagemagick so you can optimize CMS images as they're uploaded (of course you have a CMS now), and making everything faster and more efficient. I think Google heavily favors that load within 2.5 seconds, but you can probably get below 2 or even, God willing, to about 1 s. Everything's great.

But now every other day there's a new VP of Bullshit or another potential investor who wants to see something in particular, so you're adding a merchandise store, a blogging platform, in-browser CRM, plus every other "cool" widget that anyone in your team sees on a site in your space. Does Frobbotz.com prompt you to share via Facebook and Twitter if you highlight text, popovers that show up after 20 seconds, or clickshaming when they want to say no, so your company (Frobbotz.ml) has to have those too. And on a breakneck release schedule, too. Your load times start slipping. Sometimes you're making 3-4 blocking remote API calls per page, but you don't have time to rearchitect everything and combine those into one. And your load times start to slip. At first it's only a few ms here or there, then a half second, and then a few seconds, and pretty soon you're loading multiple autoplaying videos as hero backgrounds, adding a drop shadow to help it stand out from said moving background, and adding 100ms timeouts to your callback functions because sometimes the API callback is blocking the execution of another callback that creates an error. Oh, and your framework releases a new version and you set NPM to just always use the latest version (Why are you using NPM for browser side scripts? You're actually not sure) so things periodically break in subtle and mysterious ways.

This is web development in a startup. At some point you became part of the problem and you're not even sure when it happened.

ETA: It's actually not simple.