[HN Gopher] You don't need to be "enterprise-ready" or "scalable"
___________________________________________________________________
 
You don't need to be "enterprise-ready" or "scalable"
 
Author : gmays
Score  : 75 points
Date   : 2022-05-31 19:07 UTC (3 hours ago)
 
web link (www.gorelay.co)
w3m dump (www.gorelay.co)
 
| taylodl wrote:
| > "So unless your product legitimately only sells to the likes of
| Google, Facebook, and Apple, you probably don't need to be
| 'enterprise ready'"
| 
| What in the actual fsck? Check out this list of companies ranked
| by the number of employees they have -
| https://companiesmarketcap.com/largest-companies-by-number-o....
| Okay, Amazon is #2 - but notice the top 100 doesn't include
| Apple. There's a lot more to business than FAANG.
 
  | nijave wrote:
  | >The buyer is typically a VP, a director, possibly C suite,
  | depending on what you're selling
  | 
  | If a company has VPs buying things surely they have some sort
  | of internal vendor management that usually involves
  | accounting/legal/compliance reviews. Being enterprise ready
  | means you have the roles/documentation/process/procedure to
  | answer those questions
 
  | scarface74 wrote:
  | I agree. The last three companies I worked for were large
  | health care companies. They spend millions on SaaS products.
 
  | throwaway892238 wrote:
  | Although each of those companies is made up of 5 to 50 mini-
  | companies, each with more business units/products/services. You
  | have to understand which of them you're selling to, what they
  | need, how they will use your product. Are two completely
  | different tiny departments gonna hem and haw over trying your
  | product, or will the whole org use your software? You might end
  | up supporting a dozen users or 500,000. Will you still have to
  | support the same features, or can the tiny teams get away with
  | less? Is it even worth supporting the enterprise features if
  | your product fit is smaller teams and you wouldn't get a large-
  | scale contract anyway?
 
  | polote wrote:
  | And good luck selling enterprise software to Apple, Google and
  | Facebook, they all already have some custom internal softwares
  | for everything
 
    | scarface74 wrote:
    | No. They use ADP, Concur, WordPress (check out AWS official
    | blogs), Salesforce and third party SaaS products just like
    | everyone else.
 
      | Mandatum wrote:
      | Yeah, they know the "keep everything default as much as you
      | can" rule better than anyone else with SaaS providers. What
      | a load of gobshite.
 
        | scarface74 wrote:
        | Are you saying they should keep everything in house? I
        | can tell you from personal experience that the external
        | facing services from one of the major cloud providers
        | handle spikes in traffic and has much better uptime than
        | many internal systems.
 
  | onion2k wrote:
  | If you're selling enterprise software then the important number
  | is not "number of employees" but "number of employees who would
  | use your software". In large retail, manufacturing, oil etc
  | companies they have a lot of software of course, but each
  | person is typically accessing 4 or 5 apps at most (email,
  | office suite, HR, etc). In FAANG companies each employee
  | involved in software development is often using closer to 30
  | apps (project management, comms, source control, bug tracking,
  | telemetry, server management, i18n, etc). It makes sense to
  | focus on FAANG companies if you're producing enterprise
  | software simply because they buy more of it. That obviously
  | doesn't mean there isn't a huge market outside of that _as
  | well_.
 
| wereHamster wrote:
| I'm working on a project where the backend devs decided to use
| Cassandra to manage a few hundred entities. Due to different
| access modes they had to denormalize the data into multiple
| tables and we're constantly running into consistency issues. A
| fucking sqlite db with a few tables and indexes would do just
| fine. Also, the tool has maybe a dozen DAUs. But it's web scale,
| so, yeah...
 
  | bee_rider wrote:
  | This completely tangential, but any time I see someone talking
  | about normalizing a database, I briefly think they are talking
  | about doing something like:
  | 
  | x/|x|
  | 
  | Ya know, like normalizing a vector. Of course this brief
  | confusion doesn't matter, I sort it out quickly, and it is
  | totally clear language to other database people -- it is just a
  | funny quirk of overloaded lingo.
  | 
  | But I wonder if as big data and machine learning folks (since
  | there's some overlap with Linear Algebra there) ever get their
  | lingo mixed up.
  | 
  | "To predict where the ridesharing customers will want to go, we
  | will apply the taxicab norm to our database."
 
    | adepressedthrow wrote:
    | While the overloading is annoying, database normalization
    | actually has a strict definition that is not unlike the
    | standard mathematical use; that is, to imply consistency (to
    | make normal):
    | https://en.wikipedia.org/wiki/Database_normalization
    | 
    | I would also point out that normalization within mathematics
    | does not have a single concrete definition either, and it
    | depends on your domain and desired property to stabilize:
    | https://en.wikipedia.org/wiki/Normalization_(statistics)
 
  | jsiaajdsdaa wrote:
  | Why would a team decide to use nosql to manage "a few hundred"
  | entities?
  | 
  | Nosql databases excel at simple lookups and gets by ID, rather
  | than trying to sort and join pretty much ad hoc.
 
    | winrid wrote:
    | NoSQL might not be the right term here. Maybe you mean
    | "columnar databases"?
    | 
    | Ex Mongo sorts just fine, and can optimize sorting with
    | indexes.
 
  | twblalock wrote:
  | That's not a scale problem. That's a problem of database
  | choice. Cassandra is not good at that sort of query pattern at
  | any scale.
 
| FpUser wrote:
| I've delivered custom backend business servers to a various
| businesses of healthy size. Almost all were deployed on rented
| multicore servers with gobbles of RAM from Hetzner / OVH / etc.
| Some running for many years already. Not a single one required to
| be "enterprise scaled".
| 
| Granted all servers are C++ and talking to a local DB. No
| problems in processing thousands requests per second without
| breaking much sweat.
 
| jsiaajdsdaa wrote:
| You actually do need to be scalable if you intend to serve more
| than a few thousand concurrent customers.
 
| wildrhythms wrote:
| What an aesthetically pleasing website!
 
| yarg wrote:
| Though it helps if you design your software in a manner which
| allows for drop-in replacements to non-scalable parts of your
| design.
 
  | halfmatthalfcat wrote:
  | Great use-case for GraphQL, unironically.
 
  | robertlagrant wrote:
  | This is absolutely it.
 
| cubes wrote:
| Hard agree.
| 
| History is littered with dead startups that designed for scale
| before they had enough usage to justify it. Within reason, having
| users knock your site over resulting in failures like the Twitter
| Fail Whale is a good problem to have.
| 
| With that said, you need to be prepared to scale up quickly once
| you have this problem. There's a reason Facebook counts its users
| in the billions, and Friendster is a footnote in internet
| history.
 
  | bryanrasmussen wrote:
  | >With that said, you need to be prepared to scale up quickly
  | once you have this problem.
  | 
  | See I interpret that to mean that you should design for scale,
  | but not implement or invest in scale until needed.
 
  | s1k3s wrote:
  | Yes, but.. I am a software architect. ~90% of the job offers I
  | get are from CEOs/CTOs who want me to join their small company
  | to help them refactor because they can't grow anymore. Tech
  | debt kills as well.
 
    | icedchai wrote:
    | For every company that has this problem, another several
    | never made it far enough for it to matter.
 
    | dgb23 wrote:
    | Is that a "but" or is that how things should work? You solve
    | a problem when you have it or can reasonably predict it (in
    | technical/engineering terms). I also think it's sensible to
    | look for experts when you need them right?
 
| bigtones wrote:
| You actually do need to have Enterprise security and
| authentication features if you intend to sell to Enterprise
| customers. (SOC2, OAuth, SAML etc)
 
  | bob1029 wrote:
  | I am on calls all week with our banking clients about getting
  | SAML/SSO squared away once and for all.
  | 
  | We are having a lot more nervous takes around legacy LDAP/AD
  | auth mechanisms these days.
 
    | dt3ft wrote:
    | I developed SAML/SSO integration for an application used by
    | the Swiss UBS which initially relied on individual accounts,
    | not even AD. Tricky stuff.
 
      | formercoder wrote:
      | I did SAML with Barclays years ago. The hardest part was
      | getting someone there to click enable for our app. They'd
      | never reply to my emails so I called them until they picked
      | up. Then it was done in 30 minutes.
 
  | ozim wrote:
  | I agree with article because you don't need to have it to
  | "start talking" with Enterprise customers.
  | 
  | You probably have to prove that you have these on your roadmap
  | and that you have engineering team that can implement these in
  | not so distant future. That you know these things exist and
  | have will to invest in it in future.
 
    | haswell wrote:
    | These capabilities are increasingly required just to get in
    | the door, depending on your target customer.
    | 
    | The alternative is that your product becomes a security
    | exception, which infosec teams are more and more unwilling to
    | grant, for pretty good reasons.
    | 
    | The good news for product teams is that there are more and
    | more off-the-shelf options that can be quickly integrated vs.
    | having to start from scratch.
    | 
    | But the main point of this comment is: I think you're right
    | that "near term roadmap" was good enough a few years ago, but
    | less so now, and continuing to trend towards "not acceptable"
    | if selling to enterprise customers.
    | 
    | (Observations as a recent/former auth PM at a SaaS/PaaS that
    | sold primarily to enterprise customers).
 
  | JacobThreeThree wrote:
  | It's true. These types of security certifications like SOC2 are
  | quickly becoming a minimum requirement.
 
  | pid-1 wrote:
  | You actually need OAuth / SAML if you give 2 shits about your
  | customers.
 
    | GauntletWizard wrote:
    | You need OAuth and not to use SAML. Saml is insecure by
    | design: https://joonas.fi/2021/08/saml-is-insecure-by-design/
 
| corobo wrote:
| Maybe not quite enterprise ready but if you have any tabular data
| anywhere it's helpful to have an export to csv option. Business
| folk do love their Excel :)
 
| kodah wrote:
| I like the article, but overall I think it's the same advice as
| "start small, limit scope, be ready to pivot" with a dash of
| "don't make enterprises an early customer". I obviously
| paraphrased quite a bit.
| 
| What is glaringly obvious from this article is that "enterprise"
| in this industry has lost much of its meaning. It's almost
| ubiquitous with "medium+", which I think is a self-defeating
| definition that starts to make sense only when you look at what
| features are commonly gatekept behind enterprise distributions of
| software.
 
| fasteddie31003 wrote:
| I was interviewing for a platform engineer role for a company
| that from the outside their application doesn't seem too complex.
| Through the interview process, I find out that you cannot run
| much of their app locally to develop against and their staging
| environment does not reflect their production enviroment well. I
| asked them how they develop their new features if they cannot run
| the whole app locally and if they intorduce many bugs without
| testing locally. They response was along the lines that they
| hired good engineers that could understand all the complexity
| before deploying new features.
| 
| I believe having a solid development environment where you can
| develop and test the whole stack is key to making reliable
| software. Is this common at other companies that you cannot run
| the whole app locally to develop and test against?
 
  | icedchai wrote:
  | In my experience, good local development environments are
  | relatively rare. We had them at a couple of small <10 person
  | B2B, SaaS startups I was involved with. In larger companies,
  | there were just too many pieces to run everything locally. Or
  | in companies with software development, but not _focused_ on
  | software, local environments seemed more of an afterthought.
  | With increased dependencies on cloud services,  "serverless"
  | environments, etc. it can also be painful to run stuff locally.
  | Obviously you can build around this (and should...) but it
  | requires thinking ahead a bit, not just uploading your lambdas
  | to AWS and editing them there...
 
  | bob1029 wrote:
  | > Is this common at other companies that you cannot run the
  | whole app locally to develop and test against?
  | 
  | Yes. I work in B2B banking software, so having an "authentic"
  | environment to test against is extraordinarily complex. Even
  | the big vendors in the space seem unable to maintain accurate
  | facsimiles of production with their own decades-old core
  | software, so smaller vendors stand no chance unless they adjust
  | their entire strategy.
  | 
  | What we ultimately had to do was negotiate a way to test in the
  | production environment in such a way that all the activity
  | could be tracked and backed out afterwards. A small group of
  | important customer stakeholders were given access to this pre
  | production environment for purposes of validating things.
  | 
  | This is something that has never sat well with me. But, the way
  | the business works the alternatives are usually worse (if you
  | want to survive long-term, that is). We wasted 18 months
  | waiting for a customer to have a test environment installed
  | before we learned our lesson about how bad those environments
  | are in reality.
 
    | nijave wrote:
    | Worked with banking software before; it can be incredibly
    | complicated. I worked on proof of concept infrastructure for
    | a Websphere monolith that ran on AIX servers. It had at least
    | 10-15 services it connected to and each one of those were
    | huge Java monoliths, too. Some of those apps had 8+ copies of
    | /each/ environment (8x dev, 8x test, 4-8x stage/uat, 1-2x
    | prod) so you could do integrated tests without stepping on
    | other people or something software (software B might have a
    | dedicated test environment of software A)
 
      | winrid wrote:
      | This works well. I've seen deployments where you have
      | test1, 2, 3 etc, and you can "lock" the environment to
      | yourself for a few hours.
 
      | halfmatthalfcat wrote:
      | I haven't found a wholistic integration testing framework
      | where you can effortlessly mock out upstreams _as running
      | services_ , so that you don't have to ham-fist integration
      | testing code into your app or rely on actual, live
      | upstreams which are probably prone to breakage anyway.
 
    | acwan93 wrote:
    | Same here in e-commerce. We end up testing in production
    | environments with an element _somewhere_ that 's in a
    | development environment that can be tracked and actively
    | watched. Amazon notoriously does not have a production
    | environment, and eBay's is just unusable.
 
      | grogenaut wrote:
      | im pretty sure amazon has a production environment... just
      | their staging is problematic. It's incredibly expensive to
      | run a copy of prod and keep it up. You essentially have to
      | get paged for it doubling your burden.
 
  | asd88 wrote:
  | I work at a company that has similar practices to what you
  | describe (we don't run our services locally). While it's hard
  | to get used to at first, I think the silver lining is that it
  | forces everyone to write good unit tests, since it's the only
  | efficient way to run their code before publishing a PR. Having
  | worked on the opposite end (at a team where we mostly tested
  | locally and had almost no automated tests), I much prefer this
  | environment.
 
  | scarface74 wrote:
  | Why is it a big deal to run your app locally? You just give
  | each developer access to a cloud account (either one account or
  | one per developer) with wide enough guard rails.
  | 
  | Heck, when I am in a place with bad internet, I spin up a Cloud
  | 9 (Linux) or Amazon Workspace account (Windows) and do
  | everything remotely.
  | 
  | I'm not wasting my time trying to use LocalStack or SAM local.
 
  | [deleted]
 
  | bin_bash wrote:
  | Local dev is great until production gets complex enough that
  | you lose parity. That'll happen even earlier now that we run
  | x86 on the server but ARM locally.
  | 
  | At my company we don't support local dev nor have any sort of
  | staging environment. We have development linux servers
  | connected to prod services and dbs. There are no pragmas or
  | build flags to perform things differently locally. Things are
  | gated with feature flags.
  | 
  | It scared me at first but now I think it makes sense: staging
  | is always a pain and doing it this way we avoid parity problems
  | between staging and prod. Local development would be impossible
  | for a system at our scale but I think even a staging setup
  | would result in more defects--not fewer.
 
  | clepto wrote:
  | I work at a VOIP services provider and we operate multiple
  | brands which are companies we've acquired over several years.
  | One thing that has rang true of every company we've acquired is
  | that there is typically barely even a way to run one piece
  | locally, let alone the whole thing.
  | 
  | Some of these when I took over there wasn't even version
  | control, and they were being developed by FTPing files to
  | production server or even editing them live with vim or
  | something. Certainly no reproducible containerization or even
  | VMs to speak of.
  | 
  | I agree completely with you about having a solid development
  | environment. I've spent the better part of a year creating such
  | a thing for some of the brands, and it has increased our time
  | to ship features and fixes probably ten fold.
 
  | roflyear wrote:
  | Extremely common. For some reason it is cool to put stuff in
  | lambda or azure functions or whatever. Or to use 11 different
  | stacks.
 
  | nijave wrote:
  | Yeah, once you have more than a small handful of dependencies
  | (SaaS, databases, microservices). Some of the stuff I worked on
  | will have built in stubbing/mocking so you can run parts of the
  | stack locally and the test suite also uses the mocks/stubs.
 
  | john_the_writer wrote:
  | I'm in that boat. We have a "microservice" code base, and
  | spinning up the whole "app" is a Herculean task.
  | 
  | Even if you do manage to get it all running, getting the
  | multitude of database with useable data adds an odyssey to your
  | day.
  | 
  | We have some parts automated, but ops cannot keep up with all
  | the changes in the micro apps.
  | 
  | Back when I worked on a mono-rails app with a React front end,
  | getting things up and running was as simple as running the JS
  | server, rake db seed and then rails s. We used puppeteer to
  | test FE, and rspec for the BE. Two test suites, but we knew if
  | something was wrong.
  | 
  | That same place sometimes had a net outage, and I wouldn't even
  | notice because I was running everything locally.
  | 
  | Now I can only get everything running locally with confidence,
  | if I block out an hour or so.
  | 
  | Honestly... microservices are great in theory, but make dev a
  | huge pain. Docker does not mitigate the pain.
 
    | Nextgrid wrote:
    | That's the reason why I walk away as soon as I hear
    | "microservices". It's cargo-cult mentality where complexity
    | and the issues you speak of above are considered a _feature_.
 
| encoderer wrote:
| You don't need 90% of what you think you need before launching a
| product.
| 
| We didn't have a "change email address" flow for two _years_.
| Instead we focused on the product. That's what buyers really care
| about.
| 
| You need this stuff eventually - SAML included -- but not before
| you launch and refine your product.
 
| throwaway892238 wrote:
| Well it depends on what you're selling! Design for what you truly
| want to sell, and that will end up however it needs to end up,
| whether that's enterprise or not. This random blogger, and our
| random comments, can't tell you what you need. It has to emerge
| from the product development process like a sculpture from a
| block of marble.
 
  | tnr23 wrote:
  | Exactly this. It sounds easy but this type of creator who can
  | do this is very rare but usually has a high success rate. This
  | should be the defintion of the "10X dev"
 
| capkutay wrote:
| I wonder if a recession or bear market environment will quickly
| make this type of advice - that worked well for the 2010s boom -
| obsolete in a harsher climate. Might be hard to scale your go-to-
| market by depending on startups who don't want 'enterprise-ready'
| features to spend money on your product.
 
  | darkstar_16 wrote:
  | I think enterprise ready here refers more to scale than to
  | features. People try and go the microservices, distributed DBs,
  | hyper scale route way too early rather than focussing on their
  | product, possibly building it as a monolith with simpler SQL
  | DBs before going all out.
 
___________________________________________________________________
(page generated 2022-05-31 23:00 UTC)