Agile Zone is brought to you in partnership with:

Julian writes by night as The Build Doctor, a poorly disguised non de plume. By day he is a freelance build engineer, systems administrator and all round useful guy. Julian lives near London with his fiance and children. He enjoys balancing a love of real ale and Indian food with cycling. Julian has posted 16 posts at DZone. View Full User Profile

Is Maven agile?

04.01.2010
| 6140 views |
  • submit to reddit



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.

(Image via http://www.flickr.com/photos/zenera/)

References
Published at DZone with permission of its author, Julian Simpson. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

Comments

Ronald Miura replied on Thu, 2010/04/01 - 7:34am

I love Maven. I wouldn't start a project without it unless I was forced not to.

But, saying that Maven is 'agile' is the same as saying that a hammer is 'agile'.

What makes agiility is people, not tools.

Fab Mars replied on Thu, 2010/04/01 - 9:26am

Maven, agile??

Ahah come on, April's Fools, right?

Michele Mauro replied on Thu, 2010/04/01 - 10:48am in response to: Ronald Miura

I agree completely. Agility comes from people. Scrum, in the hands of the wrong people, can be anti-Agile.

Edwin Quita replied on Sun, 2010/04/04 - 10:34pm

you need to invest some time in getting to know Maven to really get the benefit it offers, otherwise it may become your worse enemy and be a set back rather than a tool that promotes agility in your team.  some knowledge in Nexus and Hudson can make portable and automated builds a breeze.

for us, it has become our best friend.  it encouraged best practices in our development like having unit tests, standard project structure, project templates, re-usable components, and portable builds.

1. project templates

   - i love Maven's archetype plugin.  we used Nexus to host/publish our archetypes and have our developers access them in one place. (ex. mvn archetype:generate -DarchetypeCatalog=http://host:port/resource).  we have a customized GWT, CXF, Axis2 archetypes for our project.

 

2. re-usable components

  -  from using the simple maven-archetype-quickstart archetype, we were able to build components (jar) and easily declare them as a dependency other maven projects, couldn't live without this.

 

3.  portable builds

  - how do you manage to build a project for different environments(dev, uat, prod) in Ant?  with maven Profiles, it's like a walk in the park.  we used separate Hudson instances (although one instance will do) to stage and automate our builds.

you may call me a Maven fanboy, but i wouldn't go back to user-defined Ant targets from standard maven plugins like clean, compile, test, package, test, deploy, and release (and i didn't have to refer to some build.xml file heh)

 

Liezel Jane Jandayan replied on Thu, 2011/08/18 - 8:30pm

In order to get a project funded, there has to be a reasonable assurance that it is going to make money. Answers to questions like how many engineers should be assigned, how much effort should be spent in marketing, etc, are determined by taking the feature set and doing research to understand how much are people willing to pay for a set of features.

 

http://yochananberkowitzonline.com/

Rehman Khan replied on Sat, 2012/02/25 - 4:35am

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.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.