[HN Gopher] Scalability is overrated ___________________________________________________________________ Scalability is overrated Author : mooreds Score : 238 points Date : 2023-02-04 18:32 UTC (4 hours ago) (HTM) web link (waseem.substack.com) (TXT) w3m dump (waseem.substack.com) | m3kw9 wrote: | Tdlr: Over optimize is a bet on the unknown, usually the bet | doesn't pan out. | Existenceblinks wrote: | Yes. Most SaaS are B2B and good luck getting 200 customers. | quadrifoliate wrote: | Before startups rush to cargo-cult this model, I want to point | out one important thing - _Adjust according to your market_. | | Pilot's customer base probably looks very different than yours. | The author says in the article that they are a "startup-focused | accounting firm", so for _their customer base_ which is likely | startup founders or similar, the experience of talking to a | fellow CEO probably "helps to 10x the customer experience" as | the article puts it. | | On the other hand if you are selling me some software for a | boring Enterprise integration, please don't send me calendar | invites for a conversation with your CEO, I'd rather get great | API docs and integration guides. | flurly wrote: | I completely agree with the idea that scalability is often | overrated. While it's certainly important for large organizations | and enterprises, for smaller companies and side projects, | focusing too much on scalability can actually hinder growth and | creativity. | | It's often more beneficial to focus on solving a problem | effectively and efficiently, rather than trying to scale it | before it's even proven to be successful. By starting small and | iterating based on customer feedback, you can create a better | product that solves a real problem, which will naturally attract | more users and drive growth. | | That being said, scalability should definitely not be ignored | altogether. As a project grows, it's important to plan for future | scalability, but this should only be done once the product has | proven its worth and a solid foundation has been established. | simplotek wrote: | > (...) scalability is often overrated. (...) focusing too much | on scalability can actually hinder growth and creativity. | | I find this blend of comment unproductive and intellectually | dishonest. "Often" and "too much" are weasel words that remove | any objective meaning from the verbs they qualify, to the point | where stating the exact opposite is also valid. | | The truth of the matter is that scalability is only not | important when you don't need it, but it's already disastrously | too late if you failed to scale when you need to. | ec109685 wrote: | "SAS Startups: offer a one on one chat to new customers" | | Doesn't have the same ring to it. | ARandomerDude wrote: | The problem is if the commenter says "doing X works" instead | of doing "doing X often works" there will be a HN avalanche | of "yabut so-and-so didn't do X" and allegations of | survivorship bias. | simplotek wrote: | > (...) there will be a HN avalanche of "yabut so-and-so | didn't do X" and allegations of survivorship bias. | | Isn't it also survivorship bias to claim that scalability | is overrated because a non-scalable system didn't broke in | a particular case of a local deployment with residual | demand? | | Meanwhile hikes in demand hitting an unscalable system can | and do break businesses, and when it happens is already too | late to rearchitect things. | JohnBooty wrote: | That being said, scalability should definitely not be ignored | altogether. | | Yeah. You have to think about what's _possible_ to scale. | | You're planning to scale to 1,000,000 or 1,000,000,000 users | eventually? OK. Well, what's your service? Are you planning the | next Facebook where everybody can talk to anybody? Then you | have some challenges you better start figuring out. | | Or, is it a SaaS where nobody needs to access anybody else's | data? OK, then you can probably simply scale vertically for a | while up to $SOME_MILESTONE, and then scale horizontally via | some fairly simple sharding or maybe even just database | partitioning or something. No need to do that now. | dasil003 wrote: | > _You 're planning to scale to 1,000,000 or 1,000,000,000 | users eventually? OK. Well, what's your service? Are you | planning the next Facebook where everybody can talk to | anybody? Then you have some challenges you better start | figuring out._ | | Thinking this way actually leads to one of the most common | failure modes. Specifically the day-dreamer death where the | principals become so enamored with a fantasy of what the end- | state could look like that they lose focus on the next step | to improve their odds of success. This is under-reported | because day-dreamers are so common that when they try a | startup and fail, it's not really an interesting pattern to | report on. Such founders will tend to cite specific reasons | that sound better in context (eg. wrong market, product | flaws, sales funnel flaws, etc). But as someone who's been in | the web startup space 25 years, I've seen it over and over | again where founders fail to fully engage with the hard | problems right in front of them in favor of working on what's | fun, easy or tied to some dopamine hit of imagined future | success. | | In practice, you should not spend one second thinking about | the requirements of 1B users until you have at least 10M. You | will need to completely rewrite everything multiple times | along the way to that scale anyway, and more importantly, you | won't know the product requirements to actually get there | until you achieve the earlier milestones and get the | necessary user feedback about what's working at each size of | user base. | switchbak wrote: | Precisely. It'd be like trying to make an F22 fighter jet | right off the bat when you're still in the era of biplanes. | | I think people often underestimate the strata of learning, | and the essential feedback that gets you to the next level. | Or at least that's how it works for mere mortals like | myself :) | switchbak wrote: | That's exactly right: it depends so much on the context and | (expected) access patterns. Sometimes you really do need to | plan ahead, but even that's more about not painting yourself | into architectural corners rather than specific tech. | | What I see also is not just scalability over-engineering, but | the same in the solution domain. When you don't really | understand your customers needs sometimes there's a desire to | create something with ultimate flexibility. | | In the days of Xp we used to say YAGNI when people would be | overly general. I'm trying to bring that back into fashion. | scott_w wrote: | > Are you planning the next Facebook where everybody can talk | to anybody? Then you have some challenges you better start | figuring out. | | Even Facebook didn't start trying to figure that out until | they had to. Famously you needed an invite for a _very_ long | time. I'd imagine infrastructure limitations factored into | this. | | You'd be surprised how many successful companies push off | dealing with scaling problems until they absolutely have to. | Izkata wrote: | > Famously you needed an invite for a very long time. | | And then it opened to needing a college/university email | address. Then it opened to everyone. | | I got in with my college email address, and at the time it | was considered a feature, not a limitation: a combination | of higher quality since people couldn't just make new spam | accounts whenever, plus a bit of a status symbol compared | to just being on MySpace. | JohnBooty wrote: | That's a great example, thanks. | [deleted] | ranting-moth wrote: | IFIFY: focusing too much on scalability WILL actually hinder | growth and creativity. | | It will hinder growth and creativity because you are solving | the scaling problem, which is a hard problem. Especially if | you're early on and don't really have a product or customers. | | I've seen multiple projects tank because people working on it | were solving problems they didn't have and wouldn't have for | the next 2-3 years _at least._ But they only had a few months | of funding. | anyonecancode wrote: | It's kind of along the lines of "premature optimization is the | root of all evil." A true quote, that doesn't mean optimizing | isn't important! The whole trick is in being able to tell | what's core and what's premature. | | Another way of looking at it -- scalability is pretty much the | entire value proposition of software. It allows people to do | the same, or more, amount of work without having to linearly | scale out the number of people working on something. When | you're first starting out, demonstrating even being able to | _do_ the work is the first hurdle, but past that you're | definitely going to need to show you can scale that out | efficiently. | [deleted] | owl57 wrote: | _> Another way of looking at it -- scalability is pretty much | the entire value proposition of software_ | | That sounds like a good way to look. People are Turing- | complete, although that doesn't mean that they are very good | at scale without instructions, and "programming" clusters of | people has its own set of quirks. :) | | _> It allows people to do the same, or more, amount of work | without having to linearly scale out the number of people | working on something._ | | But this is not the entire story, but only the throughput | part of it. And there are entire classes of software where at | least part of the value lies in latency. That's, for example, | most of Internet as we know it, from the hypertext browsing | to videoconferencing, and most software we would call | "embedded", from watches to spaceships. | anyonecancode wrote: | > But this is not the entire story, but only the throughput | part of it. And there are entire classes of software where | at least part of the value lies in latency. | | Yes, that's a good point! | wanderingstan wrote: | After nearly two decades in early stage startups I couldn't agree | more. Looking back, I know we often built too much too soon, and | had too much confidence that we were building the right thing. | | These days I often advise would be founders to start with doing | their idea manually with just the minimum amount of tech. | | Maybe just a google sheet and answering emails and a handful of | "customers." If you can't give people a good experience with a | totally custom personal experience, they're not going to like it | any more when it's automated and scalable. | roncesvalles wrote: | This seems like a big reason why taking on investors too early | can be harmful. You can't be sitting on runway money and taking | baby steps with it, even though sometimes that's the right | thing to do. | adrr wrote: | It really depends on the situation. No one at a successful | startup says, we spent too much time on scalability in the | beginning. They probably say the opposite. I worked at one | company that we couldn't rack servers fast enough to keep up | with our growth. Our competitor who was the market leader had | to turn off the ability for new customers to signup to prevent | their site from crashing under load. We ended up surpassing | them. | | Getting a million customers isn't that challenging and really a | function of money. With $50 CPA, you just need $50m. 1m | customers will take down most sites unless you do some | optimizations. | klabb3 wrote: | I think you're both right, even if I'd guesstimate the | situation you encountered is very, very rare. | | You should make architectural choices that CAN be scaled | within reason, on demand and ideally incrementally. That | doesn't mean you need to build your app on Kubernetes and | automate welcome emails, surveys, metrics, A/B testing etc. | But you probably shouldn't build on top of fundamentally non- | scalable systems either. | | This is provided you're in an environment that can reasonably | scale to 1M users or whatever, which isn't true for all | domains. Say B2B where that last B is only 10000 people world | wide. | jdsully wrote: | Post product market fit scalability is critical. But a lot of | effort is spent on things that will never get traction in | startup land. Before you get traction the times at bat is the | more important metric. | avip wrote: | In other words, founders keep insisting on not reading the lean | startup, or ignoring all the advice given there. | | Ignoring history is a guaranteed path towards repeating it. | osigurdson wrote: | Is it possible to generate enough excitement with just a Google | sheet however? I suppose if it is B2B it would be fine. | ant6n wrote: | Well don't tell the public there's a Turk under that AI chess | board. | osigurdson wrote: | What type of business is this? It would be hilarious to | have a human reading through http requests and writing out | responses! | rr808 wrote: | Steve Blank has talked about this for decades. A startup is | about validating you have a product that customers want. You | want to connect with customers and prove you have a market | before scaling. https://steveblank.com/tag/customer-validation/ | davnicwil wrote: | I think this kind of concierge / person behind the curtain | approach only works for a certain type of business though, | usually services where aspects of the service pipeline can | either be automated or not. | | For purer technology / product businesses, how do you do this, | fundamentally? How would Google have manually mocked up their | early product? How would Facebook? Github? Tesla for that | matter? | | Sometimes you really do just unavoidably have to build the | product out before testing the market, and if it doesn't work, | just accept the sunk cost and throw it away - and sometimes | fail completely as a result. | | I don't see this as a fundamentally solvable inefficiency, just | part of how tech product startups work, and the very tradeoff | that must be made to allow for innovation to happen. | fragmede wrote: | > how do you do this, fundamentally? How would | | there are still smaller pieces you can MVP to a smaller | audience before launching it to the world. | | > Google have manually mocked up their early product? How | would | | Crawl an intentional community (remember webrings?) or other | small directed subset of the web and see if you're able to | get better search results using terms you know exist in the | corpus, rather than _all of the Internet_. | | > Facebook? | | They had Myspace as an example so the idea wasn't exactly | unproven. | | > Github? | | Kernel developers were already using the software, | successfully, all (for large values of "all") they did was | bring it to a wider market with a better UI. | | > Tesla for that matter? | | People don't get this, but Tesla's biggest achievement to | date, isn't the cars themselves, but the factory that they're | built in. There's no way to MVP an entire factory, but | building a car in a bespoke, pre-assembly fashion is totally | possible and totally doesn't scale. | | If you're asking if electric cars were known to work, the | first one came out in _1832_. If you 're asking about | product-market fit, they keep selling cars they haven't made | yet, just to gauge demand. Aka where's my Cybertruck!? | HWR_14 wrote: | > just to gauge demand | | The hundreds of millions of USD as an interest free loan | seemed more important than anything else. | itake wrote: | Most startups have a red-ocean indicator in the space to | point at when telling people about their problem. Most | startups fail. | fragmede wrote: | are those remotely correlated though? | kirse wrote: | _too much confidence that we were building the right thing_ | | SW is weird in that way, we can basically build houses that | nobody wants to live in. Thing is you probably were building | the right thing, structurally speaking. | | My rule over time has become "structure follows complexity" | i.e. Anticipate complexity where possible but don't apply the | engineering structure until the complexity really exists. If | you built an MVP house, don't add the second bathroom until | you've got customers complaining about deadlocks on the first. | | It's tough because that basically runs counter to the Spirit of | an Engineer, which is just to imagine the grandest well- | thought-out + organized thing and march toward creating it. | | The bonus of having two decades+ in building SW though is you | start to see the patterns and realize that the same fundamental | needs drive everything, so the intersection of building | something great with customer needs becomes less of a mystery | and more of a "how fast can we juice this thing". At that point | I think scalability prep is like compound interest. | Frost1x wrote: | >It's tough because that basically runs counter to the Spirit | of an Engineer, which is just to imagine the grandest well- | thought-out + organized thing and march toward creating it. | | I'm not sure if _Spirit of an Engineer_ is a book, essay, or | some prior set of principles I 'm unaware of but if it's not | (and even if it is), I tend to disagree here. | | The spirit of of an engineer, in my opinion, is to solve | problems and problems for people--that's what I and most | engineers I've spoken with have been drawn to (ignoring those | purely seeking a high paying profession here since were | talking about "spirit"). When I was youthful I sought out | technical complexity and grandiose solutions (I admittedly | still admire it when it's done correctly). None the less, to | me, most of it is wasteful and at the end of the day I want | to build the most _useful_ solution for people to make their | lives easier. | | _Some_ problems require high complexity and glass cathedrals | in terms of technical solutions, most really don 't, at least | most of the problems I've been exposed to. | btilly wrote: | Actual engineers generally do try to solve problems for | people. But the engineers understanding of the people that | they are solving it for is generally rather flawed. And | therefore their solutions frequently are difficult for the | intended users for reasons that the engineer can't see. | | And yes, engineers really do err on the side of designing | for future problems and future users that often will never | exist. This effect is worst on a rewrite of a system - look | up the "second system effect". We tend to only truly get | pragmatic tradeoffs the third and later times. | bcrosby95 wrote: | I call it "keeping an escape hatch". | | The potential need to scale and add features will inform my | design decisions, but they will not direct them. | pfarrell wrote: | "keeping an escape hatch". I like that. A former colleague | said something similar that also stuck with me. Good | software architecture allows you to delay decisions. | alexvoda wrote: | China proves that building cities worth of actual houses that | nobody wants to live in is a thing. | hinkley wrote: | There's a ninety ten rule with structure that can be hard to | communicate in code reviews. There's a subtle difference | between not adding unnecessary structure and writing code | that is antagonistic to it being added later. Opening a PR | where someone added a feature or fixed a bug exactly where I | would have done so is one of the best feelings. Especially | when they're changing my code. Either they're a very good | coworker or I've laid the groundwork well. Either of these | are good news. | | Very recently I've come to think of my architecture style as | Jazz. Like the old trope about listening to the notes he | isn't playing. But also the improvisational nature and the | flexibility to adapt to new information. | maerF0x0 wrote: | > with just the minimum amount of tech. | | as an engineer this part I entirely agree with. Far too often | CEO driven development leads to pivoting 1Month into 9 month | projects, 9 months in a row. such that you have nothing | deployed when you at least could have had 1 thing, but instead | you have none. | | This can be solved as much by discipline to stay on track as by | choosing to reduce scope to 1 month ideas only. | dhbradshaw wrote: | I think this is the right approach. | | There is however a pitfall that this approach seems to lead to | unless you actively prevent it. Roughly the process is 1. You | hire someone to take care of things manually. 2. As you grow, | your devs are worrying about other things and so instead of | automating you hire more and more people to handle the toil | that should have been automated along the way. 3. Because these | jobs are handled by one group of people and developers are | working on customer facing features, the communication and | prioritization necessary to fix the issues rarely come up. | StreamBright wrote: | s/scalability/technical scalability/ | | Other kinds of scalability (financial, development) are | underrated. | SCdF wrote: | I am aging myself, but: | http://widgetsandshit.com/teddziuba/2008/04/im-going-to-scal... | | The bit that stuck with me (re-reading for the first time since | 2008, I forgot how aggressive it was): "Scalability is not your | problem, getting people to give a shit is." | vrnvu wrote: | Great post thanks for sharing. I also highlight this one: | http://widgetsandshit.com/teddziuba/2011/12/process.html | chaboud wrote: | That's a great write-up. However, once people _do_ give a shit, | if you didn 't think about scalability, it becomes an | _enormous_ problem. | | And, funny enough, the people that didn't think about | scalability, if they're smart, have typically moved on to | something else. | switchbak wrote: | There's also the situation where you've passed your | scalability limits, you have users, the system is falling | down and the business has blinders on and simply won't accept | that they need to invest in a better way. | | Being overly speculative and ambitious early on is a great | way to fail. Building on top of something past its limits and | ignoring the (developer, customer, velocity) pain is yet | another. | cordobaplaza wrote: | chase demand, and build scalability only when the lack of it | becomes a problem -- definitely agree | jaequery wrote: | I just moved away from GCP to DigitalOcean and went from paying | over $1k a month to $100 a month. | | At this phase of the startup, we aren't missing a beat. | JanSt wrote: | I'm also running everything on DO. Dead simple and good | pricing. | osigurdson wrote: | The market wants cloud to be a commodity - I'm certain it will | get what it wants eventually. | convolvatron wrote: | I've been working on and off in supercomputing since the 80s. | | every system I've ever worked on has needed work to get to a | certain scale. and that carries you for a while and if you need | to get past the next plateau you need to rearchitect again. rinse | and repeat. | | so its not a binary thing. | | so unless you have some specific goal in mind, invest to get a | little past where you need to be today. | mansoon wrote: | Unless I have micro services then how scale?????? | taormina wrote: | Do Things that Don't Scale: http://paulgraham.com/ds.html | heywhatupboys wrote: | Went to the pilot.com website. Scroll down. | | In huge text: "We partner with the best financial tools in the | business" and a lot of logos from famous companies! I think, oh | wow I haven't heard of this company before. But then see the text | below the large text in small, gray text: "We're fluent in your | finance tech stack and seamlessly integrate with the tools you | use." | | oh... | wdaher wrote: | (Post author here.) | | In addition to having deep integrations with these tools, we | actually _do_ have real partnerships with almost all of them. | | "What's a real partnership?" is a great question, but I'd | mostly think of it principally as "We know them, they know us, | we have a red phone we can pick up to get things solved for | each other" (which is good for the customer), and then also | "And we occasionally do some comarketing together." | mlhpdx wrote: | Indeed. The hardest thing for a technology person to do is | nothing. It's seemly irresistible to "solve" problems fast and | consider the consequences slowly. My term for the consequences of | early structure is "calcification" - the loose aggregate of a | startup becoming an unyielding mass resistant to change. Code, | processes, culture, whathaveyou. | pphysch wrote: | It's easy to say "scalability is overrated" if you've dealt with | unnecessary k8s deployments. | | It's easy to say "scalability is underrated" if you've dealt with | businesses built on hundreds of standalone PHP/Perl/Python/JS | scripts with zero unifying architecture, where migrating a data | schema is virtually impossible because of the state of technical | anarchy. | | Scaling is hard. | purple_ferret wrote: | > PHP/Perl/Python/JS scripts with zero unifying architecture, | | That's why you use something like a Rails monolith....but oh | wait, Ruby doesn't scale well! | ndriscoll wrote: | That's why you write a monolith on the JVM or CLR, which do | scale well. | nine_k wrote: | As long as you can scale (shard) your persistence layer, I | don't see why RoR won't scale. | | Look at Github, for instance. | threeseed wrote: | Not everything is a glorified CRUD app. | | If you're doing any computation or highly concurrent | workloads then you will discover the performance issues | with Ruby well before you outgrow your persistence layer. | vidarh wrote: | I have done both in Ruby, and addressing it was not a big | problem. E.g. my MSc. involved doing a lot of statistics | and image processing in Ruby, and solving the performance | bottlenecks meant rewriting about ~30 lines or so in C | using Ruby Inline. Later I did map tile rendering on | demand handling thousands of layers uploaded by customers | in Ruby. Both using 1.8.x, btw. - far slower than current | versions. | | It took more CPU than if we'd rewritten the core of it in | something else, but it let us iterate the rendering | engine itself much faster, and most of the expensive | computations were done by extensions in C anyway (e.g. | GDAL and the like). | | Of course you can find areas where it's still not viable, | but my experience is that if you start by prototyping in | whichever high level language - no matter how slow - that | is most productive for you, you'll inevitably find you | need to rewrite far less than you might think to get it | fast enough. But more importantly: The parts you end up | rewriting will very often be entirely different parts | than what you expected, because being able to iterate | your architecture quickly tends to make you end up in a | very different place. | ecshafer wrote: | TFA isn't talking about that kind of scalability. Its | scalability in business processes. | karmakaze wrote: | Looking at the article title and comments I wasn't able to | clearly tell. The second heading "do things that don't scale" | is clearly recognizable and meaningful, but then in | agreement, I'd have no reason to click. | hinkley wrote: | You damned kids never heard campfire stories of being brought | in to consult on "scaling" a bespoke system for a growing | company that has been limping along with VBScript in an Excel | spreadsheet for five years past when it was still tenable to do | so. The amount of feature parity required to get out of that | blind alley often killed the project and injured the company. | Some lived it, the rest of us knew someone who had. | | There was a brief moment after Oracle purchased Sun where I | thought Oracle might try to engineer am Excel competitor on | Open Office that had an easier migration to a real database | (Oracle), but that dream died early. | klabb3 wrote: | FWIW I have a friend who works with market analysis and his | excel scripts save an enormous amount of manual labor, today. | It was the best tool for the job, for them. There are even | international competitions in excel automation, which is | kinda funny but also points to how far ahead Excel is for | actual business uses. | | Are there scaling issues? Version control issues? Absolutely! | But again, that doesn't mean that it's not the best tool for | the job. | | It's easy to mount the highest horse from a technical | perspective, but as engineers it's also our responsibility to | be curious about what people are using _voluntarily_ , and | not just what we think they _should be using_. | orwin wrote: | At my last job, my work was basically to read data from | proprietary APIs and shit an excel table. | | I think I was hit by everything. Easy stuff at first: Crlf | issues, XML Apis, weird rpc apis. | | Then, halfway through the project, the results had to change. | Not only the order, datatype and headers (I actually | overengineered the first version so those were configurable), | but the format, duplicate on multiple columns (and empty | fields counted as duplicate...). Worst job I've ever done. | I'm also disappointed in myself tbh. | | But now I'm a bit of an expert on excel format issue and | limitations, and that already helped me. | weego wrote: | That's conflating scaling with paying off technical debt | twawaaay wrote: | Scaling is hard. True. | | But the question is, are you trying to make your life miserable | by scaling before exhausting other options? | | Most applications can be optimised for performance by orders of | magnitude, much easier than trying to scale them by orders of | magnitude. Any problem is much easier to solve and faster to | deliver when you can fit it on a single server. | aleksiy123 wrote: | I once had a manager tell me scalibility was a good problem to | have as it meant people where actually using your product. | | Obviously with some caveats. That you don't fall over at a small | amount of users and you are at an early stage. | IncRnd wrote: | Your manager was correct. People often overengineeer or | overarchitect what needs to be done. In reality, you need to | meet the current needs of your business. Not every single | action has to account for what might happen - or what you hope | will happen - if absolutely everything happens perfectly. | 8note wrote: | Not only that, you've got more people using your product than | you expected | vidarh wrote: | Cash when you're growing so fast you're running into | scalability issues is also likely to be far cheaper than cash | before you have any customers to speak about. | | This is more general than scalability: The more of _any_ work | you can afford to defer without hampering growth, the more of | your initial capital you can spend on growing, and the more you | manage to grow the cheaper it will be to raise money to build | out the rest when it 's time for your next investment. | | The hard part is to determine which aspects you can _safely_ | defer. | freitzkriesler2 wrote: | I find myself saying "No" more often times than not with founders | who have scope creep. Scalability is one of them. | | Does it work well enough in the geo you want? Yes? You're good to | go . | mupuff1234 wrote: | The time you waste on building an unnecessary scalable system is | nothing compared to the time and energy you spend on maintaining | that overly complex system. | btown wrote: | This article is about a stellar founder-led onboarding | experience, with which I wholeheartedly agree! Especially for B2B | startups, showing that someone isn't just a row in a database is | vital. | | That said, in the current economic climate, the degree to which | your processes _don 't_ scale for _already-onboarded_ | customers... isn 't necessarily bad, but something to be keenly | aware of. | | If your support (or worse, product/engineering) staff is putting | out fires that affect single customers, and the solves don't | scale to other customers... you as a founder need to be _very_ | aware of this and not just sweep it under the rug as part of | operating expenses. Being diligent about the fully-loaded costs | of your humans servicing each customer, and comparing that to the | cash flow (not just lifetime value!) per customer, is vital to | ensuring your business is sustainable - and ensuring you continue | to lead it! | Joel_Mckay wrote: | Adjust scope to match your teams skill level. That way no one has | to adapt/train, and can stay in their comfort zone. | | Works fine until markets use-case suddenly shift, and a platform | is hammered out of existence. | | Really depends on whether a business plan includes rapid growth | (i.e. throw more money at the scaling issue), and an apology tour | in the media. =) | spamizbad wrote: | I do agree but I hope people don't take the wrong lesson from | this. | | For example, there's a "right way" to not do scalability and a | wrong way. The right way would be avoiding patterns like | microservices early on, while still minimizing human intervention | and brittle integrations. The wrong way is to just have some | kludgy solution that causes headaches for your customers. | | With our budgets tightening we axed startup vendor we were paying | $90K/yr to because their shit was slow and kept breaking, pissing | off our customers. We were able to spin up replacement | functionality for their product in 6 weeks. | maerF0x0 wrote: | A problem many start ups encounter though is that they're only | sustainable whilst doing non-scalable things. | | Using the author's example perhaps it's like they only way they | actually convert customers is if the CEO calls them. | | Or sometimes it's more to do with engineering. Each customer will | only stay if you implement a feature that costs you more than | their CLV. | | More than once I've worked at a startup, or a company that has | acquired a startup where this is the case. And when you suggest | to fix the problem usually people can't quite comprehend it, so | instead it becomes "you're the problem" | | Whenever this is the case it eventually catches up with the. | Sometimes through burnout and burn and churn employees, sometimes | because they finally learn you can't sell a dollar for 80cents | forever. | throwaway892238 wrote: | Scalability is unnecessary when you're not growing rapidly. But | when you _are_ growing rapidly, it 's suddenly very important. | And if you didn't think about it before, it's already too late. | | You don't have to build to scale _right now_. But you should have | a plan of _when_ you 're going to need to scale, and _how_ you | 'll do it. Or don't, and wait until your pants are on fire and | then run around screaming. | preommr wrote: | Someone explain the article to me. | | > I still personally email every new Pilot customer and offer to | get on a call with them. | | How is this a thing that needs to scale and how is it time | consuming to write some automation? Just export the contacts, and | write a small script that loops over it and sends an email using | some transactional email script if you've got something like ses. | It shouldn't take more than an hour to do from scratch, and like | 5 minutes if you look it up using chatgpt3 or even Stackoverflow. | Scaevolus wrote: | If you're going to spend 15 minutes in a call with someone, | automating away a 10 second email is not much of a time | savings. | sound1 wrote: | For me, if you are selling a service, customer service is | paramount. Everything else boils down from there, just my | opinion. | iamgopal wrote: | Rework is the book that is surprisingly underrated in this | community which covered all points of comments but a decade ago. | dboreham wrote: | "Don't solve problems you don't have" | eternalban wrote: | > But more importantly, it locks in an experience before you're | sure it's right. | | This single sentence communicates more than the author intended. | I see the phenomena all the time: _poorly architected systems_ | that are _brittle_ in face of user requirement changes. In the | extreme case, a new widget or input on the UI echoes all the way | to the database, touching and mutating every layer in between. | | So, it is a perfectly valid matter to weigh the benefits of | optimistic and forward looking engineering vs gaining deeper | understanding of a market faster. This is a valid consideration. | But if anyone tells you that going down any other path other than | tacking on bits and pieces on the way "as we learn" is an error | because of "user experience" (other than, ahem, performance) then | be certain, certain, that the speaker lacks the necessary | technical understanding to be offering strategic technical | advice. | Spivak wrote: | I'm not sure I like this because you will always be wrong in | what ways the code needs to be flexible. The most flexible code | is soaking WET where each component is self-contained with no | shared dependencies, no abstractions, and can be thrown out or | rewritten with absolutely no possibility of it affecting any | other parts of the service. | | Devs _hate_ writing this code, every fiber of your being | recoils at the thought of just copy /pasting everywhere, | ignoring anything that seems like a pattern, and having several | identical API endpoints just to keep everything wet. But you | will never be so productive in the face of changing | requirements. | Scubabear68 wrote: | I agree with the premise, but would rephrase it as "know what | you're going to need, when you're going to need it, and have a | rough idea what it'll take yo get there". | | And as the article implies, not just systems but also your | processes. I recently saw a moderately big startup strangling | themselves on processes that they won't need for several more | years. Mid level leadership (in itself a problem) agonized over | scale, and didn't realize that the products were being built at a | snails pace and money was being burned with abandon. Late 2022 | was a harsh wake up call. | beebmam wrote: | Couldn't disagree more, from my own experience, if performance is | important for your service. | twawaaay wrote: | As they say... when all you have is a hammer, every problem | starts looking like a nail. | | Nowadays, software engineers barely finish learning basics of | their first programming language and they jump in on scaling | their first applications they developed while following a | tutorial. | | It is always better to first exhaust other options like improving | basic efficiency and performance of your applications. A single | server can do hundreds of thousands or even millions of | transactions per second. I have many times seen vast farms of | servers doing each at most hundreds or thousands of very simple | transactions per second. | | A problem is almost always easier to solve and faster to deliver | when it is only expected to run on a single server. | | And don't start arguing on the need of having multiple servers | for redundancy. Properly automated, new service node can spawn | within seconds -- maybe couple of your users will see a slight | hiccup if you handle it correctly. | | The goal here is not to say those practices are bad. What I am | trying to say is that engineering is about understanding | tradeoffs and making _informed_ decisions. | | -- | | I worked for a large bank which had internal automation platform. | It consisted of about 140 "microservices" (apostrophes | appropriate here...), 20 servers running those services and about | 40 developers. | | When I left 3 years later we had 3 servers (bank required hot | backups, one within same primary DC and one in secondary DC), | just one monolithic app and only 5 developers. | | Our job was easier and we were happier than ever before. | Reliability improved vastly. And our internal clients started | getting the functionality they needed. | | Previously, any service call from a client had to jump through | multiple layers of "microservices". Vast majority of the | application was devoted to communication between nodes, error | handling, recovery from strange situations, etc. Once everything | rolled into a single service those vanished because there were no | longer network calls but method invacations. | | And we no longer had to release 140 components and maintain | versioning and dependencies between all of them. We only had one | component to take core of. | | I made a "new component checklist". Whenever somebody wanted to | spawn a new component they had to first go through team review | and prove the requirement would benefit from being separate | component rather than part of existing monolith. No new component | was ever created after this was instituted. | | Yep, they def did not need microservices... | tonetheman wrote: | premature scaling is the root of a lot of wasted time | | That said if you know where boundaries are in your design you | should keep those obvious and clear so that scaling will not be | hard if you are lucky enough to need to scale. | FpUser wrote: | Scalability "requirements" are often misused by the developers so | they get to play with "cool" and often very slow technologies at | the owner's expense. I've seen it happen over and over. | dilyevsky wrote: | Many experienced devs have ptsd from working themselves into a | corner on unscalable stack which required death marches to | resolve. Not surprisingly they often do a complete 180 after | that. A strong cto / senior eng core would prevent the company | from going to either extremes but unfortunately not many of | them have that. | fsociety wrote: | I am sure there is truth to this, but from my personal | experience the death marches I have seen have come from | overly complex designs which try to handle all future | problems but then fail miserably. Whereas evolving a simple | design to be more scalable often works out well. | | I am sure there are many situations this isn't true, but I | have not seen them in my experience. | ARandomerDude wrote: | This also becomes a self-creating problem where devs are afraid | not to have played with the cool tech, lest they fail to have | the golden resume. | JohnBooty wrote: | Yeah. Resume-driven development. "Hey, we need k8s and/or huge | AWS clusters because scalability" when often something simpler | would suffice. | | At a previous position our devops guy had provisioned a cluster | of god knows how many AWS Redis instances. I pointed out this | was a lot more than we needed. He swore up and down we needed | them _because scalability._ | | He had no idea how much data was in those things. LESS THAN A | MEGABYTE of data. In the whole cluster. We had no plans to grow | it, either. And we were only accessing it a few times per day. | We didn't even need Redis. We could have just stored it in the | database directly. | | He didn't know any of that, and he didn't care. Because it | didn't matter. Resume-driven development. | | He wasn't stupid. He was very smart. He knew what he was doing. | "Managed a Redis cluster" looks good on a resume. "Just used | the database instead" does not. | quadrifoliate wrote: | > He wasn't stupid. He was very smart. He knew what he was | doing. "Managed a Redis cluster" looks good on a resume. | "Just used the database instead" does not. | | Did your company fire him and replace him with a DBA instead? | If not, then the resume driven development is working! | | I hate it when people look down on resume-driven development | while simultaneously also doing things that promote it by | letting HR people unrelated to technology screen resumes for | recruiting. | | Here's a hint -- if your company is screening, even | subconsciously for buzzword (and believe me, most of them do) | then you are enabling resume-driven development whether you | like it or not. | tester756 wrote: | >He wasn't stupid. He was very smart. He knew what he was | doing. "Managed a Redis cluster" looks good on a resume. | "Just used the database instead" does not. | | Why not just lie that you did that? | | How employer would check that, lol. | morelisp wrote: | Then these guys dance off from that to a company that | actually needs to store tens of billions of k/v pairs, HA, | and can make a big mess there before anyone figures out | they're actually clueless beyond `sed s/replicas: 3/replicas: | 69/ && docker-compose up`. | ec109685 wrote: | Another example is how casinos treat their best customers. You | get an account representative, personal phone number you can text | message to. | | Slack still answers every customer feedback personally which is | endearing and encourages more ideas. | jsz0 wrote: | If you create something so great that demand is off the charts | chances are your users will stick around long enough for you to | fix your scalability problems. | mmcnl wrote: | Also, scaling issues are not a problem, they're milestones that | ought to be celebrated. The things you are building are being | used. You get to solve known unknowns, which are so much better | than unknown unknowns. The reward is clear. What's not to love? ___________________________________________________________________ (page generated 2023-02-04 23:00 UTC)