Developing software products is a messy process. It’s messy because it’s so flexible and fairly new, only about 60 years old. It’s also abstract and not limited by the physical world, only by our creativity.
If you’re building with more concrete mediums, whether it’s furniture or a cake, there are well-documented rules about how parts work together and how it should look. In this sense, software engineers more closely resemble artists such as writers or musicians where rules are flexible and the result isn’t how it looks, but how it makes us feel. Great technology delights - think of the raw excitement the first time Steve Jobs presented the iPhone in 2007. Or the sheer joy of finishing tedious paperwork in minutes instead of hours because a computer automated it.
But, building delightful products is a process littered with worries. Work experience can help because it closes the gap between the execution required and final product vision. Unfortunately, experience is a nice way of saying learning from mistakes and there are always new ways to make mistakes. Experience isn't always enough.