Cognitive biases in software design - The IKEA effect

Disclaimer: This is actually not based on science, just personal observation and opinion.

Having worked in a large organization for almost 4 years now, I've (naturally) observed a lot of office and organization politics, both from technical people (developers, architects, etc) and people with a more business-oriented background.

A recurring theme I keep observing in many different situations, is how people get attached to their ideas. This could be a business idea - like a new product or new functionality, but I also observe this for technical people - like solution design, architectural design, or even a pattern someone wants to employ. Being invested usually manifests itself by people being really hard to be convinced of the flaws of their idea, and they can almost become zealously attached to their idea. I'm sure you can think of a time you've observed this yourself. You've probably even been there yourself. I know I have.

What's going on here? Well, probably lots of things, but there's one thing I've been thinking about lately that I think can explain this. As you've probably inferred from the title, I'm thinking about The IKEA effect. To make a quick summary of the effect: people tend to prefer their self-assembled IKEA furniture to higher quality, professionally assembled furniture, even when their IKEA furniture has missing parts or are incorrectly assembled.
Now, like I said, there's probably many things going on here, but I believe that one of the causes of this is the time and effort people invest in their IKEA furnitures. This makes us attached to our creations, and the same thing happens when you spend time and effort on developing ideas or software design.

Ikea effect. Source: sketchplanations.com

So, how can we combat this? I think a good frame to have when working with software development projects is to think of yourself as a scientist. Your ideas are just hypotheses, and discussing (and implementing!) them are just experiments attempting to validate your hypotheses. If one of your hypotheses is invalidated (by others pointing out it's flaws, or it not working out after it's been released), it's good! You've just learned something new about your domain, and you can now improve your understanding of it!

So the next time you feel hurt or offended when someone criticize your idea or design, remember how valuable that feedback is, and reflect on what you've just learned. Remember, you're a scientist!