A primary cause of complexity is that software vendors uncritically adopt almost any feature that users want.
Feature-based releases expand to fill all available time until someone feels guilty for not finishing the feature on a magical, wish-fulfillment schedule, and hey, has it been a couple of years already?