Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Author here! Thanks for sharing :)


The other aspect of IKEA that is criminally underrepresented in software that I really feel like should be a part of this article is having an incredibly succinct and universal DSL for documentation. Say what you will about the memes about people not being able to build IKEA furniture because they can’t follow the documentation. Once you understand the DSL, you’ll truly understand how incredible their documentation really is. It is incredibly succinct. They can guide you in less than 10 pages on assembling virtually any kind of furniture they sell. Think of how powerful something similar like that could be for software. How often have you dove into terribly written or overly long and dry documentation?

It is universal and approachable. Worldwide, IKEA has one set of documentation for assembly. It spans education, language, and cultural boundaries.

There is a huge value add in building software in a similar way in order to speak a certain way about that software. In some cases this may be untenable but in the vast majority of business cases I would venture that software and documentation inefficiency is born out of ignorance than necessity. I don’t mean that as a sleight, more that from a business perspective there’s generally a push for “new” and “more” instead of investments in refactoring and optimization.

The more that I am working with organizations looking for areas to improve in order to help them scale, the more the points in this article ring true for me. Thank you for writing it. It was a great read.


I've had mixed success with their manuals. While I admit there is a certain genius to it, I don't fully share your enthusiasm. Maybe I'm stupid but I feel like some words could really help to speed up the deciphering of the instructions.


One piece of Ikea furniture I assembled had two different depths of the same diameter nut. A single sentence warning about using the correct depth nut at one point would have saved me approximately 90 minutes of frustration.


Their manuals start with a list of parts, including the part number. You can see that number in the build steps too. If there are two parts that look alike, you can put them in two separate piles next to each other, so you know you should check if you've got the right one when you need a part of one of these piles.

I usually sort all the different small parts at the beginning of building something. It's nice to know that all the parts are there and you don't need to search for them.


If you look at steps 5 and 7 in this installation guide https://www.ikea.com/us/en/assembly_instructions/vidga-corne... you'll see that they have a way to tell you to use one screw vs another, but it's also true that Ikea's instructions aren't foolproof. This is just one example of how they really need to continue testing and improving their instructions because clear instructions are hard, and writing instructions without text is just making your job of communicating information that much harder.


At the start of the manual, the fasteners are shown to-scale and with a part number. Compare to the scale and you don't have issues.


I mentioned it elsewhere - though not that I've learned it the hard way - that IKEA instructions have extremely good attention to details. Yes, some warnings would've been useful, but after being burned by it once, I realized that if you look carefully, all elements are drawn both to scale, and accurate with respect to shape and attachment points - meaning, the steps are actually unambiguous, but you have to pay attention to those tiny details, sometimes 1mm or less in size.


Generally they will handle this case with a diagram of both depths of bolts with one of them being circled and crossed out to designate which to use.


> Once you understand the DSL, you’ll truly understand how incredible their documentation really is. It is incredibly succinct.

I guess that's great if you build IKEA furniture for a living.

I'm doing that only about once a year and don't remember all the subtleties of the DSL. Just a week ago I got caught by something which was differentiated by 2 different shades of gray which I unfortunately did not notice the first time around.

This point applies to computer DSLs as well - if your users don't write your DSL at least monthly, then the DSL might be more trouble than it's worth.


Hey, I like this. More than I thought I would, as there are a lot of cheeky patterns, but this really summed up a lot of the things I value nicely.

Most definitely bookmarking for later. This is good.

“Flimsiness is a feature” or something - I love this


> Flat-pack furniture is not meant to last. It has taken me too long to understand that flimsiness is part of its appeal.

Haha


Also seems to apply to US houses, doesn't it?


Minor bit of feedback: it's kind of confusing, for the first bullet, that the image shown is an example of what NOT to do. Most people would assume that's a pic of IKEA packaging, when it's actually Amazon. You should add a caption to make it clearer.


Which language is this?

  let points = 0;
  const usrs = await sql`select * from usr where country = 'JP'`;
  for (const usr of usrs) {
    points += usr.points;
  }
I like the approach of not having an ORM to learn.


It's JS with the wonderful Postgres.js package!

[1] https://github.com/porsager/postgres

Here's an example where it really shines:

  const users = [
    { name: 'Murray', age: 68 },
    { name: 'Walter', age: 80 },
  ];

  await sql`insert into users ${ sql(users) }`;


Thanks. This is best ORM I ever saw. Just write SQL. I'd like to have this in Rails and Django and unlearn almost 20 years of their ORMs.




Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: