Software Design/Steepness of learning curve

Steepness of learning curve is a high-level software, interface, and code quality that reflects how much effort a user or a developer has to put into learning the software, or the interface, or the codebase before they can use the software or the interface, or work with the codebase effectively.

The essential contributing factors to the steepness of the learning curve are the complexity and the conceptual weight of some software, interface, or code. The primary software qualities and factors that may contribute to accidental steepness of learning curve are
 * Inconsistency in naming, parameter order in functions, code formatting, etc.
 * Obscure code.
 * Codebase requiring to navigate a lot.
 * Untraceable code behavior.
 * Unknown unknowns stemming from unapparent dependencies and poor discoverability of the software.

Relevant practices

 * Don't hide an object access chain