Continuous Delivery, and stuff

Is Maven agile?

Is Maven agile? Here’s my half-assed reasons why:

agile methodologies can uncover issues in your organisation. I’ve got a pet theory that Maven will do the same for your code. Some build tools allow you to paper over the cracks of your code and tests. Tests too slow? Then parallelize them. Code won’t compile cleanly? That’s okay, you can frig the build file until it does. Maven doesn’t help you do this kind of thing. Maven makes you do the right thing. I’m sure there’s a plugin that spits at your feet for even thinking about accommodating software quality problems in your build tool.

agile engineering techniques ensure that we can continue to deliver at an appropriate pace. I was arguing about Maven with Steve Freeman recently; he pointed out that an Ant build should be a trivial thing to write. What I didn’t say is that once you’ve got your maven build sorted, the plugins that you can employ come at a very low cost: Cargo and Sonar can save you literally hours of fiddling with XML. So don’t compare time spent implementing the two tools so you can compile your code; look at what you have to do over the whole lifecycle.

Disclaimer: Your Milage May Vary. Maven may not suit your needs. Ditto with Ant. The value of your technical debt may go up as well as down.

Agreed on both counts. Which is why I think a lot of developers don’t like Maven for the same reasons other developers don’t like Agile- it forces them to see the problems and do something about them instead of passing them on to someone else.