Live data from Hacker News

Yagni Exceptions (2021)

lukeplant.me.uk

211–214 of 214 posts

Re: Yagni Exceptions (2021)

#211

YAGNI is about avoiding premature optimisation. A lot of these make sense. But they always do. And the road to shipping hell is paved in good architectural practices. To ship a first version of a product, we always need to cut corners. Deep, horrible, painful, cuts. Because if we spent the time to make the perfect product, we'd launch too late. A lot of these YAGNI things are not "you're never going to need it", but…

The hard lesson I learned during the dotcom era and immediately after is that this cult like worship of version 1 ends up sinking many companies but since it's new nobody wants to hear, it doesn't get reported well. Any asshole can ship version 1. Shipping version 2 takes some talent. In particular, to your scenario, there's a reason why companies operate in 'stealth' mode. The moment they are on the public radar, no…

Totally agree that version 2 is really painful, and more painful the more we cut corners on version 1.

But I've seen sooo many startups ship version 1 and sink without trace. I'd say the vast majority of startups don't ever need to worry about version 2 because version 1 isn't going to get any traction.

The thing about YAGNI isn't technical - it's commercial. Ship version 1 as cheaply and quickly as possible so you understand whether there's any point in continuing.

Re: Yagni Exceptions (2021)

#212

Earlier quoted context omitted.

Sure, but what if you never need to internationalize? Introducing a level of indirection have a cost. This is exactly why YAGNI applies. Refactor the code to support a requirement when the need arises .

Have you done that refactor? There is no timeline you can do once people are just injecting static text everywhere in the app. That project is 'done' when the interval between bug reports increases past some number where people decide it's done. But if you tell your boss "next month" then you're going to be proven wrong.

Are you asking if I have ever added internationalization/translation to an app which initially didnt have it? Yes I have done that.

It sounds like you have had a bad experience?

Re: Yagni Exceptions (2021)

#213

This is very nearly off topic, but "Ain't" is the correct conjugation to pair with "Gonna". This form comes from Britain and is preserved in some dialects of American English, but "Aren't Gonna" is a partial hypercorrection; if we want acrolect, we must go all the way to "Aren't Going To". "You gonna be at the thing this weekend?" "Nah man I aren't gonna" wrong For the Commonweath, to whom this is no longer part of t…

> This form comes from Britain

All forms of English, ultimately, come from Britain.

Re: Yagni Exceptions (2021)

#214

I will play devil advocate Relational databases add too much time overhead due to building schema or configuring orm for schema Migrations management Building an db model to domain model mapper and maintaining it You waste time thinking about building an db model and focusing on that technical layer which probably eventually affecta the way you model your system Nosql gives you modeling freedom which is handy for arc…

You might want to take a look at EdgeDB. You still have to define a schema, but both its data model and query language have much smaller mismatch with popular programming languages and APIs, so you don't need a complex ORM. For example it has first class support for following links (instead of awkwardly joining on foreign keys), outputting nested data and polymorphism.
Post reply on HN