. @usdzshare says that instead of messing around with cardboards, the problem could be solved using a LiDAR equipped device + augmented reality app. What does it have to do with domain-driven design (#dddesign)? (3/13)
According to #dddesign, there are three types of problems: core, generic, and supporting. (4/13)
Solving a *core* problem is your business goal. Such problems require innovation. Either you're the first one to solve it or have a more efficient solution than your competitors. (5/13)
Solving *core* problems is the company's core business. How well you solve a core problem directly affects your company's bottom line. Hence, such problems deserve the most attention and effort. (6/13)
A *generic* problem, on the other hand, doesn't require any innovation. It's an already solved problem. Battle-proven, generic solutions exist and can be bought or adopted. E.g., encryption algorithms, authentication systems, etc. (7/13)
Solving a *generic* problem yourself is a waste. Even if you succeed, it won't bring any competitive advantage or financial benefits to the company. Using an existing solution for a generic problem is the cost-effective solution. (8/13)
Finally, as the name suggests, a *supporting* problem supports the company's core business. Although these activities have to be carried out to compete in the core business, they provide no competitive advantage. (9/13)
A company would prefer a supporting problem to turn into a generic one. For example, if an OSS solution comes out. Using someone else's solution is simpler than building your own, and it does not affect the company's profitability. (10/13)
What does it all have to do with that cardboard? @usdzshare suggests to treat the fridge fitting problem as a *generic* one: solution exists -- the AR app -- just use it. (11/13)
Truth be told, I did try a few AR apps first, but I couldn't trust the results. Probably because my phone has no LiDAR. Hence, for me, it was a *supporting* problem. I'd love to save the hassle of messing around with cardboards, but couldn't. (12/13)
P.S. What would be a core problem in this example? Probably making sure I can afford that fridge. That's the problem I have to solve myself. (13/13)
• • •
Missing some Tweet in this thread? You can try to
force a refresh
It’s a model of the Siemens KG86NAI31L fridge. The cardboard doesn’t look anything like the fridge? — That’s true but not important. A model is not a copy of a real-world entity but a construct supposed to solve a problem. 2/9
Hence, the correct question to ask is: what problem does this model solve? In our apartment, we have a weird entry to the kitchen. The cardboard’s is in the size of the fridge’s width and depth, and the problem it solves is checking whether it can make it through the door. 3/9
For quite some time, I’ve been questioning some of the SOLID principles’ relevance, especially of the Liskov Substitution Principle (LSP).
Until I was hit in the face by it.
Thread
First, the definition: LSP states that a program that uses an interface must not be confused by an implementation of the interface.
Now the story. At first, I really loved the idea of iCloud Drive: all the files you are copying into it are uploaded to the cloud storage and are downloaded automagically when you need them.