I've taken over maintenance of a collection of apps written by a well-regarded team. It mostly works well, but I've encountered a few really painful, confusing and constraining custom frameworks written by an enthusiastic solo maintenance developer (in fact, if I see something weird on one of the projects, the source control history will invariably show it was done by this particular developer).Looking back on my career this isn't an isolated incident: many of my most frustrating moments in line-of-business development have come when I've had to fight against an in-house framework developed by well-meaning developers who were out of their depth, but looking for a challenge. I myself produced a couple early in my career, and I cringe at the complexity I subjected the hapless developers who came after me to.I'm sure there are successful in-house frameworks out there, but IMO the world would be better off without the vast majority.None of this is particularly novel, but I have to wonder why every cohort of new developers have to learn these lessons anew? Should "don't write a framework" become an aphorism, alongside others like "avoid premature optimization"?