22 ms·
Maybe people do care about performance and reliability
- luckylion 4y ago> I don’t know if there’s anything we can do. I know something we could do, at least for websites. Google could finally make good on their announcement and make CWV actually have a measurable impact on rankings. I work for affiliates/SEO people. When CWV was announced, suddenly they cared about performance. Then the deadline came and went and Google decided not to make it really count after all, and they stopped caring. You don't have to be better than your competition if you're not extremely slow, because either you're on 1 and you get the user, or you're not, and the user never sees your site (traffic on rank 2 and 3 drops dramatically, and beyond that it's barely noticeable). If Google decided to punish slow load times, large layout shifts, huge payloads, and tons of JS by downranking the sites, you'd quickly have very fast websites all around.
- figassis 4y agoYou would have very fast landing pages, which you still do today. But the issue is SaaS apps are soul crushingly slow, but google does not care about that because google cannot login.
- feoren 4y agoBut SAAS apps don't get their traffic via Google. Their sales site does, but not the app itself. To get SAAS apps faster, you need upper management to care about the performance of the app, which they also don't. They care about a convoluted web of short-term ladder-climbing moves dictated by multiple layers of the principal agent problem.
- luckylion 4y agoGoogle gets data from the Chrome UX Report (CrUX, everyone can access aggregated data on Big Query), so they'll even get information on performance from pages they themselves never see, and "the origin" (aka the domain) is the most relevant group for most websites, because they won't have enough traffic on each individual page. If Google only relied on measuring itself, it would just be a cat and mouse game to identify Google's testers and serve them a stripped down version. But they already have the actual real user data.
- commandlinefan 4y ago> at least for websites We could start by stopping using these stupid pointless frameworks that provide little functionality but reams of overhead.
- ajmurmann 4y agoHow much of it is frameworks like React vs boatloads of trackers and other ad-related stuff?
- luckylion 4y agoFrom my experience looking at sites for improvement opportunities, if the site is ad-monetized, it's the ads, otherwise the frameworks are multiple times the tracking stuff (analytics etc). Oh, and of course google tag manager is used to load analytics and nothing else, because you need those extra 240kb of JS to feel complete :(
- TeMPOraL 4y agoIn my experience? For SPAs, it's mostly 1) bad use of the framework, causing way too many pointless DOM updates, and 2) doing lots and lots of network requests, and particularly blocking requests. 2) is a bit due to tracking, but usually mostly a consequence of the API-first design. Despite using a large and powerful framework, the app itself does very little locally, as anything non-trivial ends up being a blocking network request, or a burst of several such requests (usually not blocking the app itself, but almost always blocking the user from continuing until the requests are done).
- mixermachine 4y agoAngular, React and many other frameworks can be fast. If you add ads, many DOM updates and to large JSONs you can grinde every site to a halt.
- zokier 4y ago> The more interesting question is “why don’t people avoid slow software.” Outside of pathological cases, even slow software usually is still lot better than no software and doing things manually, especially when the number of users is >1. I believe that is big reason why people do not avoid slow software.
- Vivtek 4y agoI can't avoid slow software because older, less bloated versions of mandatory tools in my industry (translation) are sunset with no recourse, and incompatible file changes mean I have to upgrade.
- capableweb 4y agoYeah, sometimes there are literally no alternatives or no alternatives "that have it all". Jira comes to mind as one example, where it seems almost universally hated by developers but loved by others, yet everyone (including others) complain it's slow, but damn if you cannot model near every single process in Jira if you'd like to. Wordpress is another where performance is atrocious and security is usually lacking, but if you look for a plugin that does X, someone somewhere probably have already coded it for Wordpress.
- kayodelycaon 4y agoI guess I'm one of the few developers that like Jira. If you can keep management from going wild with permissions and workflows, it isn't unpleasant to use. Granted, since it needs to serve everyone, it's not going to be amazing for anybody. Amazing solutions tend to have narrower focus. They tend to exclude complex workflows, forcing simplification. And there's an added bonus. The more admin tools you lack, the less likely management or other departments are to use your system. If they don't use it, they are less likely to be meddling with its configuration. In short, Jira isn't a terrible product. It's a product that doesn't protect you from terrible people. ;)
- doubled112 4y agoI've always felt that Jira's (and similarly Wordpress's) biggest pro is its biggest con. It will let you do whatever you want.
- trollied 4y agoI think performance simply just isn't on the radar of a big chunk of devs these days, especially self-taught ones. Front-end wise, what with the trend of using frameworks (react/vue/etc) & a billion lines of javascript downloaded from npm, it'd probably be too much of a task to even begin profiling.
- 0xb0565e487 4y agoAs a "one of these day devs" I only care about performance when it starts becoming a problem and I see nothing wrong with the way I'm going about this.
- rojobuffalo 4y agoThe problem is that performance and reliability are issues that creep up and by the time they're a problem, they are much more expensive to fix than if they had been first class priorities from the outset. Everyone who didn't care before finds new reasons to put it off because now it's so expensive to address.
- jiggawatts 4y agoPerformance issues are also often trivial to head off from the beginning but require a rewrite to remediate later. To everyone that argues that premature optimisation is bad, that’s like saying we should go to the Moon by building a bus and then fixing any performance issues that prevent orbital insertion after it is moving down the highway successfully.
- JohnFen 4y agoAre you certain that you can adequately judge when the lack of performance is starting to become a problem for people who aren't you?
- crabbone 4y ago> I see nothing wrong with the way I'm going about this. The wrong part is that you don't measure performance. Which was OP's point. Just measuring the performance is very hard, labor-intensive, resource-intensive task. "One of these day devs" mostly don't even know how to approach this task, but even if they knew, the mountain of infrastructure they sit upon, which is in many cases completely opaque to them will make it impossible for them to be productive (or do anything at all) when it comes to estimating performance of their programs. Add to this also the fact that most things when it comes to performance are, basically, out of your control. If the problem is in the framework -- maaaaybe you can replace / patch the framework. If the problem is in the browser -- with a 0.1% probability you might convince users use another browser. If that's to do with OS in which the browser is running -- well, you, yourself, probably won't install a different OS only to make your own program happier... But, the complaint isn't about the "one of these day devs", it's about the infrastructure in which they live that made it, basically, impossible to care about performance.
- agentultra 4y agoI worked at a hole-in-the-wall-you've-never-heard-of software company that landed big contracts with large multinationals consistently that, from the customers' perspective, came down to one reason: it wasn't SAP. The licensing model of large, enterprise software does have ramifications for users on the floor. In this case it's because the software had a per-seat license and required expensive consultants to modify your forms and workflows. It cost millions of dollars and years to roll out SAP at a factory. The software we were making was faster, could be rolled out in weeks, and was user-extensible. The IT folks at said multinationals hated our software. It was the end-users that demanded it, and ultimately, won us our contracts again and again. Performance and reliability matters! It let folks on site get more work done, faster, and with better reporting and insights than they had ever gotten with their bloated, slow, expensive, and difficult-to-use software from more "traditional" vendors. It was a neat experience.
- mixmastamyk 4y agoIT folks hated it? Or maybe just the bigwigs? You don’t say why but guessing because you innovated away their headcount.
- radicalbyte 4y agoI assume that they were having to do end-user support. I was working in IT at that time and recognise that reaction from IT.
- ROTMetro 4y agoOh you just need to support this XYZ new database, our app doesn't have a way deploy with your deploy tools, doesn't have granular permissions levels (in a factory environment), etc. Why do you not want our tool? Also, we will silo away a bunch of data needed for an MRP/ERP system to be effective to our system outside the MRP/ERP system. Silly IT people, not understanding our work environment (even though you support every person on the factory floor and have to understand their job and workflow to do that, to the point your techs are better manufacturing engineers than our actual MEs).
- gilbetron 4y agoThe idea that software wasn't bloated and slow 20,30+ years ago is just myth. Everything was bloated and slow. MS Word in the 90s and 00s would regularly crash and take your file with you, and it often took minutes to start up. Yes, there were some brilliant counterexamples, just as there are today. But most software today is far more enjoyable and rapid to use than that from previous eras. While the software isn't as snappy as it theoretically could be, that is mostly because the market finds the tradeoff between features and speed. I'd rather have a search take a second or two longer if it is able to handle synonyms and different word forms. VS Code is so much better than Visual Studio from around 2000. Usually, the truly bloated software (like a lot of edutech) is just because of regulatory capture. Most of edutech isn't judged by the market, but by committees of corrupt idiots, who always exist and for which the open market is the solution for.
- amalcon 4y ago> MS Word in the 90s and 00s would regularly crash and take your file with you, It's an old joke at this point that you can tell when a person first became a serious computer user based on how frequently they save their work. My muscle memory for ctrl+s is so ingrained that I type it every minute or two in things like Google Docs that literally ignore it.
- baxtr 4y agoI remember playing “Maniac Mansion” for 12h without saving. Right before the end my computer crashed. All was lost. But at least I did the second run in 8h.
- ehnto 4y agoMy IDE auto-saves as you make changes, yet I still mash ctrl+s frequently. I think it's mostly games that gave me the habit though. PC gaming has always been a gauntlet.
- agloe_dreams 4y ago> My IDE auto-saves as you make changes This gave me shutters. Maybe it is some sort of manual transmission-type feeling of control, but that is terrifying to me. Something about that feeling of owning when the source file is changed.
- didgetmaster 4y agoA big part of the problem in my opinion, is that people are generally not interested in investing (money, time, effort) in technology. They focus almost exclusively on products. The short term is always given a much higher priority than long term. If someone invents a much better way (faster, easier, cheaper) to do some key part of a widely used product (operating system, database, file system, network protocol), they won't get any traction until they have built a competing product with all the bells and whistles around that technology. That can be a formidable task to a startup founder with limited resources who has to try and compete with products that have huge budgets and decades of development behind them. Investors won't touch it until you have a completed and tested product with many customers already signed up. Customers won't touch it until it is a 'drop-in replacement' for their existing solution which requires resources to finish. Classic catch-22 or chicken-and-egg problem. You can't just find a way to do something 10x faster and expect others to flock to it.
- sbthrowaway 4y ago> You can't just find a way to do something 10x faster and expect others to flock to it. I have learned this the hard way. People are generally loss averse and resistant to change so making things better is often an uphill struggle. As an example, I have worked on improving a build tool that is notoriously loathed in part for its poor performance. Part of the problem was that it was a jvm based tool and the jvm has terrible startup performance when loading lots of library code (the tool also made it easy to bring in dependencies so even small projects would often pull in massive amounts of vendor code). The only way to get a reasonably tight feedback loop under those constraints is to run tests in a persistent jvm process that can reuse the loaded classes from prior runs. The difference between using a cached jvm and a fresh jvm could easily be the difference between your tests running in tens of milliseconds or multiple seconds. I produced benchmarks that proved this. But one problem is that any resource leaks in your code or the vendor code will eventually cause the jvm to run out of memory (which often would be a slow process of gradually degrading performance). For this and other reasons, people would often opt out of the in-process test running and fork a fresh jvm with each test run even though it could easily cost them hours of time over the course of a week. The problem was that using the in-process runner required stronger programming discipline. My claim was that code that could reliably run inside of the build tool without resource leaks is more desirable than code that cannot. It is also not particularly more difficult to write, but it does require skill and discipline. There was no tool to statically detect resource leaks so the burden does fall on the individual programmer. It was an exercise in frustration to try and explain the value proposition and argue with people with very different priorities from me so I walked away from the project but to this day it saddens me how much time is being sacrificed to the altar of poor programming discipline.
- iveqy 4y agoI think there's actually something in this. That's why I've created my own CRM/ERP system. All page loads that are slower than 100 ms is considered a bug and I'm usually on under 50 ms. And of course I've a TUI version of it as well, with all data local (and synced to the cloud). I really hope that once I'm ready to put it out there, I will find the right audience.
- deleted 4y ago[deleted]
- shadowgovt 4y agoPeople care about performance and reliability when there is more than one way to do the thing they want to do. The slowest, most inefficient solution is (depending on the value of solving the problem) better than no solution at all.
- TeMPOraL 4y agoAlternate (and I think more accurate) phrasing: people tolerate bad performance and low reliability when there is no viable alternative tool that does the things they need. As is usually the case - software, particularly SaaS, resists commoditization. For almost any piece of software you may be using (and I am counting things like social media platforms or e-commerce sites in this), there is no equivalent substitute you could switch to on short notice. Often there's literally none at all. When there is, the effort to migrate your data tends to be prohibitive. Also, in my phrasing, I wrote "need" instead of your "want". From my observations, almost all interactions regular people have with software are out of necessity, in the sense that they're forced to use it to get what they want, and they have no power to change it. Examples: - Software your employer tells you to use at work, which sometimes is quite horrible, thanks to magic of enterprise sales. - Software your government tells you to use to submit various forms related to taxes, healthcare, childcare, business, social services, etc. This sometimes manages to not be all that bad. - Software your daycare suddenly forces you to use to communicate with their staff and access CCTV feeds. Software you can't ignore because absence reporting and invoicing goes through it too. Software that's hot garbage, surveillance capitalism optimized mobile app with no web version, created by some bullshit startup with lots of VC funding, which explains why, out of a sudden, every single daycare started to switch to it, despite the app being extremely limited, having abysmal ergonomics, discriminating against people who aren't glued to their smartphones, and likely violating GDPR in more than one way. I guess you can tell I'm a bit bitter about that last one.
- AnIdiotOnTheNet 4y agoI'm going to pre-emptively link Casey Muratori's Refterm Lecture Part 1[0], because invariably when this topic comes up people are all "but optimization takes time and we gotta push the new features right now or the market will eat us." Computers are so ludicrously fast these days that in the majority of cases you do not need optimization at all. You do need de-pessimization though. https://www.youtube.com/watch?v=pgoetgxecw8 https://www.youtube.com/watch?v=pgoetgxecw8
- phtrivier 4y agoTiming being nice, Casey just started a series on performance / optimization [1]. The pitch is that it should be useful even for people not using "down to the metal" languages - although at this point in the series they have been essentially: * yelling at the sky that software is slow (amen to that) * making fun at python for not being C (which is, I mean, true) * explaining why memory caching is important (which is both true and not obvious to most people) * diving into the details of SIMD intrisincs of x86 using some form of vectorized quantum hardware-specific instructions, which I'm sure is going to help me avoid a few calls to render in my React app _any time now_. (Just kidding, I'm pretty sure I'm going to learn stuff from the series, which is the point.) [1] https://www.computerenhance.com/p/welcome-to-the-performance-aware https://www.computerenhance.com/p/welcome-to-the-performance...
- jiggawatts 4y agoThe hilarious thing about the whole RefTerm thing is the armies of people defending Microsoft by saying that Casey is some sort of Dark Wizard and that his skills are magic and unique, which is why nobody else can reproduce his approach. Before I saw that video, if you had asked me to write a terminal I would have made one with essentially the same design as Casey. I didn’t even think that there is another way! Like… just draw the grid of chars. What else is there to do?! Why add extra steps? Microsoft added extra steps.
- MithrilTuxedo 4y agoEvil enters the world "because the people who do give a crap don’t have the power to do something about it."
- iinnPP 4y agoAt my previous job I was given permission to fully rewrite the call centre script/tooling used by sales agents. I also came from that team, and took a quick detour to the data team before finally landing in a development role. Giving me a full understanding of not only the agents needs and wants, but the limits on data being fed into this system. The resulting page loaded 10 times faster than what it replaced, which was a 'no code' option that the sales director set up. My solution was built with HTML/CSS/JS/PHP and contained authentication, accessibility, and a toolbox of modules for specific tasks that loaded only when needed (and still lightning fast). Scoring a perfect 100% in every test I threw at it. The positive result of this change was immediately apparent. Not only to the agents and managers, but to the data team. The speed resulted in a full 130% increase in sales, across all agents. Why? Well, the old script took time to download Google Fonts and a boatload of other garbage which put the page load at 2+seconds. This was dead air piled on-top of the delay caused by the auto-dialer. Meaning everyone we called had 3+ seconds of nobody saying anything. When this was cut to 1 second, there wasn't a telltale delay to work around in the sales process. So at least in this case, it took the sales director to care enough, not the dev. I built the entire thing in 3 days with zero assistance.
- mjburgess 4y agoIt feels like we need a youtube channel dedicated to 30min case studies of this. MS spent x months to build y, here it is in 3 days. etc. etc. People do not realise how fast development and software can be if you design with those priorities. It's orders of magnitude.
- JohnFen 4y agoAlso, many companies and people seem to have forgotten (or never learned) that small teams outperform large ones. There is a point past which every additional person will make the project take longer, and result in lower quality.
- LanternLight83 4y agoLike the Handmade Software ideals! https://youtu.be/hxM8QmyZXtg https://youtu.be/hxM8QmyZXtg
- AddictedA1 4y agobecause normal people r dumb and they will always think there poor hardware is not enough to run bloated software slows so buy more whole android phone market is like this.
- hbogert 4y agoThe author is my consciousness personified trying to slap me into learning tla+
- jvans 4y agoI like how this article highlights the complexity of many competing factors. We like to understand things by boiling them down to simple rules and catch phrases that make us feel like we understand the world but that is almost never how things work. As devs we need to take pride in our work, even when it feels like there's a lot of pressure to cut corners and ship trash. Take a few extra cycles to make your system just a little bit more resilient and give positive feedback to your peers who do the same.
- dsugarman 4y agoThe first sentence: >It’s well-established consensus that software is slower and more bloated than it was 20, 40 years ago. That's an absurdly ridiculous statement presented as fact with no citations
- Michelangelo11 4y ago"apex predator of grug is complexity complexity bad say again: complexity very bad you say now: complexity very, very bad" https://grugbrain.dev/ https://grugbrain.dev/ No really -- I would bet that the single greatest contribution comes from the massive growth in complexity, in all relevant areas, over the last 20+ years.
- faxmeyourcode 4y agoEvery time I see this posted somewhere it's been long enough for me to forget about it, so I go through and read it again and glean something new from it.
- Michelangelo11 4y agoHe also has a great Twitter account here: https://mobile.twitter.com/GrugBrainedDev/with_replies https://mobile.twitter.com/GrugBrainedDev/with_replies
- TeMPOraL 4y agoSome of the complexity is, unfortunately, introduced by grugs, because complexity smarter than grug and sometimes pretend is simple. Couple months back, I read an article that made a bold claim: that the old wisdom saying most software is IO-bound stopped being true some time ago; instead, most software nowadays is CPU-bound, typically on parsing JSON. JSON is something that may seem simple to grug, particularly a webdev grug. So simple that they'll use it for structuring and exchanging data everywhere. But while on the API side it seems simple, actual JSON parsers and serializers are quite complex, and the format itself expensive to parse and wasteful[0]. All that complexity gets silently embedded into everything, and the overhead at runtime is paid at nearly every step and nearly every level of software stacks, even though most of it isn't even needed. That's the failure mode of grug understanding of simplicity. Sometimes a little more effort up front yields much lower total complexity. (Also, eliminating complexity is good. Shifting complexity from developers to users is criminal.) -- [0] - It's better than XML in most scenarios, especially scenarios in which neither of them should be used in the first place.
- eliwri 4y agoIt's hard to make performance and reliability sexy to people who make decisions.
- ramesh31 4y agoPeople care about features. They don't care if a page takes 2 seconds to load or has a thousand npm packages holding it up. They care that they can click a button and it does the thing that they need to do to accomplish their task. This stuff is all magic and pixie dust to 99.9% of people. And if adding the new feature creates bloat and slowness, so be it. If this tiny little seemingly insignificant thing that user wants is not there, it doesn't matter to them if you have to completely break your "architectural purity" and hack something gross that messes with your Lighthouse score to put it there. It just needs to be there.
- torstenvl 4y agoMicrosoft had to force people off XP and then again off Windows 7. Firefox ate Netscape's (edit: Mozilla Suite's) lunch. Oracle eventually had to buy MySQL to stop the bleeding (and try to upsell). So no. While people do prefer a 100% solution over a 90% solution, they much more strongly prefer a 90% solution now over a 100% solution that keeps them at work an extra hour or two nearly every day.
- anthk 4y agoNetscape -> IE 6 dominates Netscape-> Mozilla Suite -> Phoenix -> Firebird -> Firefox.
- tonymet 4y agoI've worked at a number of big companies that have run experiments on TTI & response times and they've all shown statistically significant results that responsiveness impacts revenue, engagement & retention.
- jedberg 4y agoPeople don't directly care about performance and reliability, but it does affect their behavior. Back in the day at reddit, for example, we could see an uplift in usage when we made the pages faster, there was nearly a direct correlation. At Netflix we spent a lot of effort on reliability because every time we had a major outage, there was a dropoff in subscriptions with the cohort that had been affected. And I've heard similar from other people in the reliability space -- that there is no direct impact on retention from availability issues, but you can see an effect in the long term.
- ryanblakeley 4y agoWhat's the difference between caring and affecting behavior? If people cancel their subscriptions after a major outage, wouldn't it be reasonable to interpret that some of them cared about performance and reliability? I know I care. If I pay for something and it sucks, I stop paying for it because it's not up to my expectations.
- jedberg 4y agoI wrote it poorly and can't edit now, but what I meant was they cancelled 3-6 months down the line at a higher rate than those that didn't experience the outage. So they didn't cancel right after, but it does appear to affect their overall view of the service.
- JohnFen 4y agoI think people do care about these things, but they don't always know what it is, precisely, they're caring about. They just know that the thing they have is disappointing.
- bombcar 4y agoThe problem for the company is the people just silently leave. They don’t cry they don’t complain they just go away. That’s what kills companies.
- hinkley 4y ago
- fmajid 4y agoZoom (videoconferencing) was started by a former Cisco WebEx employee who was fed up with how sucky WebEx was, and decided to do something about it. So even in the enterprise space where the payer is not the user progress can happen.
- irsagent 4y ago"It’s well-established consensus that software is slower and more bloated than it was 20, 40 years ago." says it all. I see now why the suckless community makes the position they do.
- CalChris 4y ago> Programmers want to write fast apps. But the market doesn’t care. That's partly because Moore's Law, Dennard Scaling, ... meant that our apps were going to get faster next year regardless. Intel had better marketing than Joe Programmer. So Intel got paid.
- deathanatos 4y agoIts a mix. I'm sitting here trying to replicate a service across multiple zones this mornin— oh, it's not morning any more sigh — and, well, Code: ReconcileVMSSAgentPoolFailed Message: We are unable to serve this request due to an internal error At some point/level, Azure can't¹, so I can't. There's GCP, but high switching costs. (¹this is a fractal error, too. Part incompetence, part societal and economic factors way out of certainly my control.) But absolutely there is incompetence. I fielded this, this week: "the tests broke", "oh, sorry about that. I've introduced a bug. a while later It's fixed now." "the test is still broke for me?" "… you need to pull the fix…?" I've got another dev staunchly refusing to enable the logging necessary to print tracebacks, … while simultaneously being perplexed by a bug we're facing. IDK what's causing the bug either … but, IDK, let's get some logs in the meantime? Higher ups wondering "why can't anyone answer technical questions? How are our devs so incompetent that they don't know the answers?" after the entire team that managed the component to which the question is directed at has been laid off. I've answered questions in the form of, A: We do X. Here's a screenshot. <screenshot> Me: Where in your screenshot is X? A: Oh, you're right. Often enough that sometimes I wonder if ChatGPT hasn't already replaced some of the people around me.
- ep103 4y agoI bet you these developers can rotate the shit out of a red/black tree though! Thanks LeetCode-centered hiring processes!
- xyzelement 4y agoThe author says that he's not a product manager and doesn't have a particular insight. As a PM, I can share how I think: The main question is "does it matter?" The answer depends case by case. For example, if I am the PM for TurboTax Premier desktop software, I know that it's latent - but it probably doesn't matter in a way that deserves prioritization. Sure, my clients would like for the forms to load faster, but they care infinitely more about the scope of tax situations we cover, and the correctness of calculation. A person uses my product a few hours per year, so even if there's an accumulated minute of form refresh latency, it's just not that impactful. What that means is - if I have an "extra developer", I am going to direct them towards product scope and correctness, not latency. On the other hand, something like VSCODE (an example the article mentions), speed is part of the value proposition. As a developer, I need to quickly change text, quickly look up a reference, quickly switch files, etc. If things are sluggish, it isn't just frustrating but limits my ability to do development work. So a user of a slow IDE would be very motivated to seek alternatives, since they basically live in the IDE. As a PM, I would absolutely invest in performance if it was making my product actually less useful. It's like anything else, investment has a tradeoff. Chances are, whatever car you drive could have a faster 0-60 speed and in isolation, that would be great. But are you willing to pay 10x for the car? Are you willing to give up the seats and the trunk to make it happen? So your car may not have the best 0-60, but if it's an affordable family minivan that's probably the right call.
- somebody78978 4y agoRegarding TurboTax, I'm pretty sure the clients want the software to work slower; there are times when the software just pauses and says something like "Checking over to make sure we found all deductions", even though obviously all of that work has already been done.
- xyzelement 4y agoI was actually thinking about that case - does the slowness "suggest" that the software is really thinking deeply and working hard for me. I do think you have a good point.
- rgmerk 4y agoMy boss cares a lot about performance and reliability. I work for a financial services firm. We are consistently highly rated for customer service. One of the reasons that is the case is that our website is fast. It takes a lot of work by our devs for that to happen!
- nicbou 4y agoSeconds matter an awful lot to me. If things don't happen fast enough, I end up alt-tabbing to the browser, losing my train of thought, and perhaps wasting a few minutes browsing the web. I also work semi-offline a lot. My current internet connection is roughly 100 KBps. The connection in the underground isn't much better. I also work in airports and hotels. These pages that take 10+ seconds to load end up being abandoned. Amazon famously measured how slow pages correlate with lost revenue. You don't really notice this until you use something significantly faster, and you can stay focused on the task much longer. Things just work better. It's like using a sharp knife for the first time.
- RedShift1 4y agoWould you wait for 15 to 20 seconds for an SPA to load, if it's guaranteed to work faster during usage, or have it load in 1 second but be slower while using it?
- fleddr 4y agoThis implies that the typical SPA, once loaded, is just "there" and can be used rapidly as if it's some offline app. In reality, many of them make a huge amount of fresh network calls on each navigation. Still, it's an interesting question from the user's perspective. Reminds me of the downside of lazily-loaded images on the web. Whilst designed to help people with data constraints, it can have surprising side effects. The anecdote that comes to mind was a rural town in India where inhabitants would visit a particular place for internet access. They'd open a few URLs and just let it download, could take some 20 mins. Next, they'd return to their home to actually look at the pages they downloaded. This usage pattern doesn't work with lazily loaded images, it forces them to scroll and wait beginning to end on every single URL.
- nicbou 4y agoIt depends on where those 15 seconds fit. If I have to hold onto some thought for 15 seconds, forget it. If I'm loading an IDE or some other tool I'll use all day, it's fine. My bookkeeping software has lots of 1 second delays and it's really annoying.
- garrisonj 4y agoI would switch music providers if they had a client that wasn't buggy. So there is a market for quality software. It's just challenging.
- xupybd 4y ago>This doesn’t quite agree with my personal experience. I pay a lot of attention to people using computers in my daily life: clerks, receptionists, administrators, etc. And they’re pretty universally frustrated with how slow and unreliable their computers are. They’ll complain for hours if you give them the chance. These are not the people buying these systems. It's someone much further up the chain. They often don't care if the software is a dog to use. Unless that means they need to employ more people.
- gavinhoward 4y agoI agree with the author that we can make local changes, and I think we should. However, I disagree with the author on global changes. I think we can do them. In fact, I think local changes can grow to global ones, or close to it. Here's my personal plan: like many of you, I want to make money off of my FOSS projects. However, instead of going the donation route, I'm taking an entirely different tack. I am setting myself up as a professional. This includes accepting some liability for my software. You can bet that if I'm accepting liability, I will be testing my software until it screams. But the flip side of being professional means crafting software that is fast, and I'm going to do that too. Yes, I'll be expensive, but that software should be a massive lever as a result. The bigger the lever, the more likely that that software will help my clients out-compete their competitors. Helping them do so is my goal because if they do, their competitors will have to start caring about performance. And once people care about performance in one thing, it starts to disgust them to have to use slow software in other things. So it may be slow (over decades), but I'm hoping that my work will help performance go viral.
- zabzonk 4y agowhat on earth do you mean by "professional"? and how can your software be "expensive" if it is also FOSS? or is this satire?
- JohnFen 4y agoFOSS in no way means "free of cost". We use a piece of FOSS software where I work, and it costs 4 figures per seat.
- zabzonk 4y agowhat is it, how many seats, why not maintain it yourself if it is so useful? i can't believe that there is no closed source doing the same thing FOSS means free, depending on what you want from the software - if you want more than the FOSS offering does, you may have to pay for improvements, or you may not.
- probablynish 4y ago> Does performance matter more when the decision maker is also using the software? If any econ grad students are reading this, that’d be a good thesis topic. As a former Econ grad student, this is a case of what's called the principal-agent problem, which is a widely studied issue. From Google: "The principal-agent problem is a conflict in priorities between the owner of an asset and the person to whom control of the asset has been delegated. The problem can occur in many situations, from the relationship between a client and a lawyer to the relationship between stockholders and a CEO."
- crabbone 4y agoI work in a company which creates and maintains a dumpster fire product, closing on 20 years now. The product is neither fast nor correct. It has more tech support than developers (and our tech support writes code and solves problems usually associated with development, except, essentially, they are hot-patching the garbage our developers produced, live, at customers' site). The company was acquired a year ago by an international giant, but it didn't really change on the inside. So, what's the secret sauce? -- Exclusivity. Competition died off 10-15 years ago. The company used to compete with some big names in the field, but all those withdrew long time ago. So, we won. Unfortunately, this is also a "success story" of many other companies, some of them I even had a (dis-)pleasure to work for. This is also a solid market strategy: don't compete, find a market niche where you offer a unique service. Once you are there, do the absolute minimum to make users happy: over time you will have accumulated enough features and unique workflows that are virtually impossible for the competitors to replicate, at least not with the kind of funding a typical start-up may go into town. Also, new features are easier to add, and they bring about as much of customer satisfaction as improving the old and broken stuff. The novelty factor makes it look like customers are getting more treats, but the treats are really low-effort. In the case of a monopoly like the one I'm in, users feel trapped, often they don't even know how much better their software could potentially work, they accept ridiculous gaps in quality because there is no alternative. The requirements to performance and reliability are thus at the absolute minimum, and often lower. --- Just to give you a practical example of what I'm talking about: recently, I discovered that some genius from the department which is responsible for the core component, a service that, beside other things is responsible for processing and saving configuration submitted by users has implemented "buffering"... nevermind that it's working on Linux, with filesystem API which already does buffering and caching... But, unlike Linux filesytem API, this NIH caching will lose user's data if the service stopped after acknowledging the save to the user and actually writing data to persistent storage. Nevermind that amount of data it has to write is negligible (at most few Megabytes). Nevermind that it's typically an interactive operation where users are in no rush to write such data... I couldn't even convince the team responsible for the component that there's a problem... let alone do anything about it. And, yes, our product used by some of the largest / wealthiest companies in the world.
- julik 4y agoYes, people do care, but if they are not the ones making the purchasing decision (and instead it gets made by someone else who never has to suffer the software themselves) the problem will proliferate.
- jefftk 4y agoIn ~2006 I was working in tech support and we moved from a snappy homegrown ticketing system to one where tabbing out of each field took ~5. We all hated it and complained immediately, but the contract was signed and we weren't able to influence management. Evidence for "Customers aren’t the clients" and "People don’t decide on satisfaction".
- amflare 4y agoIn my experience it's less about what the end user does or doesn't want, but more about what the company can or cannot sell. That is why new features are the priority, because once a feature is complete, there is a clock on how long you can sell it. The problem, of course, is the that the market is usually 95% saturated from the existing customer based. So the gain is incremental at best as a few extra customers filter in now that the new feature is available, and then the race is on to find a new thing to tempt in new customers. Reliability and performance doesn't matter to people who are chasing sales (which is most of a company, not just the sales team, because that's how company success is measured). Retention is someone else's job, and so the focus will always be on churning out more and more feature that can boost sales.
- zac23or 4y agoFrom a business point of view, performance and reliability (and code quality) are irrelevant. The most important thing is that the product has a market to explore. We can see this in many products. I've been working with software since 1999, I've never seen any developer or manager worry about performance. I've seen a religious battle over formatting or using a Java library, or "it's not the Ruby way". I never participated in any performance or reliability meetings, or projects, or religious battles. In general, performance is only fixed in very extreme cases. For example, I worked on fixing code that generated a few megabytes of SQL. Or code that uses all of the server's memory. And it's hard to get permission to fix some extreme bugs. The code that generates a million stored procedures after a few months still exists at one of the places where I worked. At another company, I fixed a problem (infinite printing) that had been around for 20 years (I even made a birthday cake for the bug), under pressure from the biggest customer who couldn't use a report and no workarounds worked anymore. 20 years of workarounds. You are sometimes seen as a radical if you try to fix the most absurd bugs. Today I document the bug and wait for the prioritization. Sometimes you fix it after 20 years...
- pixl97 4y agoI agree. Typically when it comes to UI issues features and being first to market tend to win over speed. Simply put the slowness of the average human interacting with the software is a much larger factor then the software itself. Of course this is also to a point. 1 second versus 10 seconds to do a major software operation isn't going to affect most users. Now stretch that out to 100 seconds and priorities start changing. You get in the 'really annoying to people' zone. I think one of the differences when looking at performance is how many times it is executed. I might pull up some customer record/ticket in SAP 50 times a day. If its 1 second or 10 seconds doesn't matter that much because I can generally interweave it with other operations I'm performing. Now, if for some reason I was executing that a million time a day, like a single database query, suddenly we're talking about an issue that's worth fixing.
- superjan 4y agoI am sometimes surprised how work on optimization (unless explicitly demanded) is regarded negatively. Just do it anyway. No it does not add to my salary but it does wonders for my self-worth and work satisfaction.
- cratermoon 4y agoSuppose your software is a check-in system for an airline, online or mobile. The check-in is probably one of the least-loved aspects flying. How many flyers will decide to pick a different airline based on a bad check-in experience?