One of the things that surprised me so much, after spending multiple times more than working with typical platform, is the degree undocumented and ever changing implementation details must be known to do anything. Even the most basic administration commands, removing modules... you must care for the cache, why isn't that part of the command? Why does everything appear to be half completed?
You need to use the API to search for products, but not so fast, Did that mean searching for products as they'd be displayed on the front, or searching for them as they'd appear on the back?
Instead of anticipating well known use cases and planning to address them... we just expose more implementation details, and each must be already known before hand. How? Why? Now repeat that for EVERYTHING, and you have an answer to why development on magento2 is 6 to 1.