When should dev teams start investing in speed? originally appeared on Quora: the place to gain and share knowledge, empowering people to learn from others and better understand the world.
Answer by Angela Zhang, Software Engineer, on Quora:
As much as I’d love to say “you should invest in speed starting from day one!”, speed is just not the highest ROI thing to do when you are still looking for a product-market fit. The answer to this question really depends on the product you are building and the user base that you are building for. Some signs that you should probably start thinking about speed are:
Your users started complaining about speed. If you get bug reports that your site isn’t loading, that’s a pretty straightforward sign.
You are expanding your user base outside of urban centers in developed countries. Most internet users in the world do not have ultra fast internet connections and, as developers working in Silicon Valley, it’s difficult to build empathy for how users with slow internet connections experience your app.
You have a lot of users on mobile phones. in his talk at Google I/O 2016, Ilya Grigorik makes a very compelling point that speed and resilience matter a lot on mobile even if you think your users are all on 4G LTE connections. Even in urban centers, people are rarely on 4G internet all the time, and frequently lose cellular reception all together when they go into subways and elevators. On the other hand, in rural areas, people might only have 2G internet but tend to go offline less often. Build for speed if you want those users to have good experiences. For his full talk, see Building Fast & Resilient Web Applications.
You are paying a lot in server costs. Often times this is an indication that you are fetching too much data, or doing too much work that is either unnecessary or can be optimized.
If you have decided to invest in speed and are looking for a good place to start your performance work, take a look at this answer (shameless plug): Angela Zhang (張安琪)’s answer to What are simple ways to monitor and improve web performance?