Why Everyone (Eventually) Hates (or Leaves) Maven
I found this article on why developers eventually hate Maven to be very insightful and to apply, beyond build tools, to programming in general.
“I defined two types of extensibility/programability abstractions prevalent in the development world: composable and contextual. Plug-in based architectures are excellent examples of the contextual abstraction.
...
Composable systems tend to consist of finer grained parts that are expected to be wired together in specific ways.”