The other day, I was having a conversation over Slack with my development team. They were working on a client project (and doing a killer job), and there was a particular UX pattern that seemed very unintuitive to me. This app was designed by the client, so there was little the dev team could do beyond making suggestions, so they went ahead and implemented it per the spec.
After fiddling around with it for a few minutes, I literally couldn't understand how to complete the particular task and had to ask the team lead for some help. He assured me that it made sense and offered to walk me through the architecture and data models to help me better understand the flow.
Sometimes, as developers, we understand these super complex systems solely because we architected them. They seem intuitive to us because we know the underlying data structures and algorithms involved. When we are speaking to other developers about those systems, they usually get it too, because they understand things at a software level.
This doesn't always translate well when it comes to UX design for the end-user. I believe developers have a bias when looking over the product in which they are creating. It makes sense to us, so it must to everyone else. I opted to not learn about the underlying code, so that I could better QA the product by removing some of this bias.
Next time you are testing your software, have as many people not involved in the project test it as possible. Given them very little context. Watch them use your product. Find out what is intuitive to them and what isn't. You will be pleasantly surprised and your software will be better for it.