Friday, February 27, 2009

A Friday at work

Post 177 - not prime, but at least the product of two primes: 59 and 3.  Had a pretty good at work, especially at lunch hour.  The last Friday of every month some people bring in their Rock Band and have at it over lunch - but must be done by 1pm.  Anyway, it's a pretty good time - there are quite a few people that are really good with the various instruments, especially a couple of incredible drummers.  Always impressive.

More interesting was the initial reports of some investigations into using Maven.  Maven is a development tool, used to compile/package and generally create a piece of software.  Other similar tools are "make" and "ant", with ant being more closely related.  Currently we use ant to manage our builds, but there will be a move to maven for the next release.  Given some of the problems encountered testing it out, I wanted to find out what has been motivating the move.  Especially when I found out how easy it was to retrieve libraries from Internet sources.  For an open source project, this is a tremendous feature, but for a proprietary embedded system, I'd be more comfortable with a rigidly contained system.  By that I mean one that will not attempt to search for data beyond a specified file system area.  So I went to talk to the person who has been working on this initiative for the longest and he had all the "goods", so to speak.

The reason for the move had two main motivations - the first being the default mode that Maven operates in.  Maven expects projects to be structured as a series of modules.  This encourages projects which have lots of pieces with well defined boundaries.  This is something that our company wants to promote internally, so Maven promotes it by making it the simplest choice.  Maven's strength comes in the way it describes dependencies between modules, with the simplest configurations being when most configuration files only contain the dependencies.  The second motivator was that modules can describe a dependency on an old version, so development could continue in place without breaking other modules.

After my conversation, I was pretty happy with the discussion.  The tool doesn't eliminate problems, but steps will be taken to minimize the likelihood of certain problems.  I wanted to convince myself that we won't be walking into a new set of pitfalls without enough forethought.  I believe if certain configurations are used, the future project will have fewer potential problems.

Ah well, I guess that's a first cut at that discussion.  My brain is tired and trying to get me to sleep, so it won't let me continue heavy thinking.  Tomorrow then...

2 comments:

Peter Janes said...

Something I (the guy with the goods :)) didn't mention is that it took a lot of convincing to get me interested in Maven. My previous experiences with Maven 1 weren't good ones. At some point, though, after a conversation similar to ours today that I had with our Agile consultant, the light bulbs (LED, of course) started coming on.

cjguerra said...

That's good to hear. I was just worried about how to weigh the difficulties learning the new method against improving the current one. The classic problem of software - whatever "it" is, we can do it. We can always make any particular build tool do the thing we want, if we know what that is ;)