Increase exposure hours: We can understand if developers are struggling with our product by increasing our exposure hours. We talk to developers, watch their videos or read their articles, and even sometimes join their live streams.
Learn by building: We should use our product and be alpha testers for new features. Not only does this help us create educational content, but it also surfaces product feedback and areas for improvement.
The worst experience is what people remember—start there.

Empathy first: We want to enable any developer to build quality software, and that requires understanding their day-to-day challenges. Having empathy for both beginners and experienced developers is critical.
Consistency. Relying on previous knowledge. Use patterns, aiming for high consistency so developers have to learn once and use them everywhere. In the best-case scenario, they didn’t learn the pattern from our product.
Rule 1: reveal complexity progressively

Rule 2: define a priority of constituencies. The one used by the web https://www.w3.org/TR/design-principles/.
Rule 3: remove boilerplate that doesn’t need to exist.