Back in April, I presented a talk about how you can use Lego as an analogy for software development in the ProductBeats Show. The talk was based on my previous musings about Lego and software. It was a great fun 15 minutes with a good after-discussion moderated by Magnus Billgren. As always at the ProductBeats show, Magnus nudged me and the audience to think. He kicked off the talk by asking the audience and me about the process of assembling IKEA furniture. Is that assembly about building or designing? That is a very god question. Here is my attempt at an answer.
Building or Designing
Is assembling IKEA furniture about building or designing? To me, that question really means whether it is about completing a task following given instructions or doing something creative. It seemed that most of the audience was really in the “task” camp and did not feel that assembling something from IKEA would be a very rewarding experience. Maybe a fairer assessment is that they put it in the “chore” category and would rather not do it at all.
I am somewhere in the middle. For example, assembling a basic Pax wardrobe is mostly a chore (did a few of them last year). There are many steps, a tiring number of hex screws, and don’t mention the nails used to fasten the back. However, selecting the precise features for the interior can be a rather creative and maybe even fun problem-solving task. You start with an idea for what needs to be stored, and then investigate the many options that IKEA make available.
That ties back to one of the main points about Lego: the key property of the bricks is their standardized measurements and assembly systems. IKEA has created a system much the same for their furniture – or at least the wardrobes. All internal features attach using the same set of standard attachment interfaces (also known as “holes in the side”), and almost anything fits in any location.
Building IKEA in Non-Standard Ways
IKEA modularity is somewhat limited compared to Lego. Where in Lego land you can combine most pieces, or at least combine any two pieces given a third pieces as an interposer, IKEA tends to build little local systems for each family of shelves or wardrobes. Not all ideas are present in each family. Had IKEA been more like Lego, there would have been a (supported) way to take an Utrusta fold-up door hinge and apply it to a Bestå unit instead of the drawers.
Still, most of the measurements of the pieces are close enough to each other that combinations can be forced with a bit of real tool use. We failed to apply Utrusta to Bestå, but we did manage to turn a piece that was only intended to serve as the front of a drawer into a door. What was needed was some custom drilling to provide the necessary holes for the (very standardized) hinge. Stepping out of just using IKEA’s fastening systems to standard carpentry – but using the pieces from IKEA instead of raw materials from the lumber yard.
Keeping to carpentry, another variant of building that was brought up was that of building a deck. Something it seems most people in Sweden have been doing during the pandemic. I think in this case “building” really is “designing” since every construction will be unique and forced to adapt to the local situation. Unexpected bedrock? Uneven ground? Constraints from existing buildings? Inspiration from other decks? Maybe there is room for something more than just a flat extend of wood?
Traditional carpentry is a creative problem-solving task. The desired result might be easy to define and not very creative (another deck, another inner wall, another shed, another staircase, …). But the details must be worked out depending on the situation on the spot. It is necessary to think through and create an overall plan before starting to work, and that is creative problem solving.
Design, then Build
I think that goes to the core of the difference between designing and building. Design must be done up-front, before starting to build. You cannot just pick up a set of pieces and tools and aimlessly start to put them together, at least not if the goal is to produce something useful. Building without designing leads nowhere, and in a well-designed system, building is easy even if design is hard.
Buying a flat pack from IKEA really means that you buy the design work and do the build work yourself. Buying a Lego typewriter model is the same. In both cases, the customer gets reasonable ease of assembly within a nice modular system, thanks to skilled designers having created both the pieces and their particular configuration for a given product.
This ties back to the point of my Lego presentation at ProductBeats – just because something is easy to build does not mean that it was easy to design. Building something that someone else designed does not make you a designer (unfortunately). Designing a system that makes building easy does not necessarily mean that the design task is any easier.
Learning by Building
However, if you want to be a designer, you must also learn how to build. My daughter recently asked me how I learned to program computers and when thinking about how I started out, it was essentially going from building to designing.
I started out typing in little programs from my Spectrum Basic manual, as well as from listings in computer magazines. Today, that seems extremely tedious and boring, but I think an advantage was that you got to see all the steps in the program. I got to do all the basic building tasks, over and over again, building (pun intended) confidence in the system and an understanding for how things worked. Eventually, an understanding how to independently solve programs using code evolved. I.e., moving into the designer role.
It is very analogous to the ages-old master-apprentice system. To master a craft, you start with basic tasks and potentially boring routine work. Without that grounding, it is hard to really become a successful master. Without a good understanding of the pieces, it is hard to design good aggregates.