Eric Lefevre-Ardant on Java & Agile

November 23, 2009

AppArmor: how to fix the Create New User issue with logprof

Filed under: unix — Eric Lefevre-Ardant @ 9:24 am

We have started to use AppArmor as a way to strengthen the security on our platform. A reasonably good tool for which you can find rather straightforward tutorials.

Portrait of a young woman dressed as Boadecia or Mother England
Portrait of a young woman dressed as Boadecia or Mother England by Powerhouse Museum

AppArmor is a tool that can explicitly allow or deny actions by some applications. Those actions are recorded in a profile. Many profiles are already available, for such tools as Firefox, but sometimes it is necessary to create your own. This was the case for us: we wanted to make sure using Mono was not too much of a risky endeavor (we run investment strategies written by our users in .NET).

Creating a profile for AppArmor can be done is a couple of ways. One is to run the application you want to lock down in record (”complain”) mode, check the logs produced by AppArmor and select the corresponding rules you want to enforce. The tool that checks the logs and produces the profile containing the rules is logprof, generally run with the aa-logprof command.

Last morning, when I merrily tried to run logprof, it prompted me at the end of the process to create a user.

Create New User?
(Y)es / [(N)o]

I didn’t know what “Creating a user” meant here. And, at this point, there is nothing useful to do. Whether you reply Yes or No, you are always prompted for a username and password, then asked whether you want to save the configuration, which inevitably ends with a Login failure, and you are back to the Create a User question (Ctrl-C to get out). Here is the whole trace:

Updating AppArmor profiles in /etc/apparmor.d.
Create New User?

(Y)es / [(N)o]
Username: noideawhatmyusernameis
Password: noideawhatthepasswordis

Save Configuration?

[(Y)es] / (N)o

Login failure
Please check username and password and try again.
RPC::XML::Client::send_request: HTTP server error: Not Found

Create New User?

It took me a while to understand what’s going on, so I’m writing this post in the hope that it will help someone (possibly me, in the not-so-distant future).

The user refers in fact to a user on the central repository for AppArmor profiles. You do not normally need a login for downloading profiles, but logins are required to upload them. Now, I obviously do not want to upload my profiles, so what’s going on?
In all likelihood, I must have enabled the upload of profiles at some point, possibly when I was trying to figure out what AppArmor was doing. There is a way to undo that, but very little documentation or discussions about it on the internet.
I finally found it on Novell’s site.

In the end, here is what you need to do:

  1. move to /etc/apparmor (and not /etc/apparmor.d, which is the directory where the profiles are saved)
  2. edit repository.conf
  3. in the [repository] section, replace upload = yes with upload = no

All done!

Footnote: the status of AppArmor is not clear to me. Wikipedia indicated that Novell has fired the original team that developed it and indeed Novell’s site only points to AppArmor v2.1 and earlier. A Google search returns many links to Ubuntu and indeed Karmic Koala comes with v2.3.1 (the latest, AFAIK), but Ubuntu pages do not offer very advanced documentation. Novell does have the best documentation but is strangely not well referenced on Google and the documentation only goes until v2.1, which is not impressive. The official development site is hosted by Novell, but it only mentions v2.3beta and has not seen any release seen mid-2008. Finally, a similar tool, Tomoyo, has been merged into the Linux kernel v2.6.30 since mid-2009. So I think that, once we will have move all our servers to Karmic, we’ll dump AppArmor.

September 28, 2009

Predictions for CITCON Europe 2009

Filed under: citcon — Eric Lefevre-Ardant @ 7:45 am

Last year, at CITCON Amsterdam 2008, a few of us stayed late into the night, drinking beer and discussing the state of the world.

And what to do when you have 21 geeks with time on their hands? Why, predictions, of course! (I want to do it again this year, check out the Google Moderator page I’ve started)

Bar at the Marriott Hotel

We decided to come up with a number of predictions (and bet on them), some serious, some not, that would be verified at CITCON Europe 2009, the price being beer points. And, the losers will be named and shamed, while the winners will be glorified (at least until new predictions are made, and for no more than a year, whichever is earliest).

Here are the predictions, and the actual outcome (a couple of them were settled by votes at the closing session):

Prediction Votes Actual
CITCON Europe has more than 120 attendees (I had voted against!!) YES YES
more .NET developers than Java developers NO NO
CITCON will take place in Paris YES YES
at least 5% of attendees are female (I personally did vote in favor) yes NO
at least 20% of participants do Ruby draw NO
Java closures are considered too complex NO NO
IBM buys ThoughtWorks NO NO
IBM buys Valtech NO NO
there is a Maven.NET coded in Java, with MS Tools integration NO NO
Ivan Moore gives up on build-o-matic NO NO
McCain wins the election draw NO
CITCON Europe takes place in Frankfurt NO NO
Jeffrey Fredrick XOR Tom Sulston (that is, either Jeffrey or Tom, but not both) have short hair YES YES
Fewer Agile Consultancies NO NO

So, out of 14 predictions, we got 11 right, 1 wrong, and 2 undecided.
Now, you may think that the answers were straightforward. But you need to realize that, for each one of them, someone was willing to bet a beer against the consensus. In other words, at the time when the predictions were made, it was not clear cut.

In the interest of the bets, I shall now reveal the names.
Winners (Glory to Them All!)

  • Andrew Parker (8 rights, 1 wrong)
  • Eric Lefevre (that’s me) (10 rights, 2 wrongs)
  • Guillaume Tardif (6 rights, no wrongs)
  • Jean-Michel Bea (8 rights, 2 wrongs)
  • Pekka Pietikäinen (7 rights, 2 wrongs)

Losers (Boo to Them All!)

  • Julian Simpson (3 rights, 4 wrongs)
  • Jeffrey Fredrick (3 rights, 6 wrongs)
  • Paul Julius (5 rights, 2 wrongs) — PJ is still a loser, ‘cos he has been right on bets with small payoffs
  • Tom Sulston (4 rights, 4 wrongs)

I have started a new series of predictions for CITCON Europe 2010. There are two steps:

  1. suggest predictions & vote for the best ones
  2. when predictions have been selected, vote

To actually win your beers, you’ll have to come to CITCON Europe 2010 (still unannounced).
Please check out the Google Moderator page to propose your own predictions.

Sorting out the bets from 2008If you want to the gritty details, I have a picture of the full spreadsheet.

September 23, 2009

CITCON Paris 2009, a personal retrospective of the organization

Filed under: citcon — Eric Lefevre-Ardant @ 7:21 am

Closing session

As I write this, I have still not fully recovered from CITCON Paris 2009. This conference being one where I have been involved a lot into its organization, I would like to indulge in a bit of personal retrospective.
What worked:
* we had more than 120 participants, which is in line with CITCON’s goals and the highest number ever in 15 events. Also, it is very close to the number we estimated ourselves.
* all the people in the waiting list have eventually been able to join the main registration list; no one was barred from coming
* costs well were contained, especially thanks to the use of ISEP’s rooms; in fact, this event contributed hugely to settle debts from the past events
* sessions were mostly on topics relevant to the conference
* quality of food was fine (especially for a free event)
* there were many well-known people, helping make the event a success for other participants
What could have worked better:
* there was not enough food. I think this is partly because the caterer is not a real professional. Even though we had given excellent estimated for the number of participants, I think that, as the person in charge of the student foyer, he was used to students eating on a budget, not professionals used to (relatively) fancy eating. If we use a semi-professional in the future, we would be wise to over-estimate the number of participants for the purpose of food. Just in case.
* even though we did arrange the chairs in the main room in circles, we left the other rooms as they were, theater-style. This didn’t help having discussions groups (as opposed to presentations).
* I am starting to wonder if we have not reach the maximum possible number of participants. One of the things that I really enjoyed last year was the late night drinks with the few that dared stay. This year, we were 30 or 40 at the end. Groups started to split up. Guillaume and I led a few to the Ti Jos bar and to the Caveau des Oubliettes. Although nice, it was a bit sad, as there wasn’t really a “closing the closing” moment. We didn’t ever get to do new predictions! (and settle last year’s bets, BTW)
On a more personal note, the conference passed a bit as a blur for me. Despite using OpenSpace Technology, I still ended up as the contact person. Also, helping my brother with the filming didn’t help.
In the end, I even managed to miss the (now traditional) “Is Scrum Evil?” session, which had been a favorite of mine last year.

As I write this, 3 days after the closing, I have still not fully recovered from CITCON Paris 2009. I have been very much involved in organizing this edition, so I would like to indulge in a bit of personal retrospective, mostly on the organization of the conference. This is basically self-reflexion; if that’s not your thing, you can leave. You won’t miss much.

Here goes.

What worked at the conference:

  • we had more than 120 participants, which is in line with CITCON’s goals and the highest number ever in all 11 events. Also, it is very close to the number we had estimated ourselves.
  • all the people in the waiting list have eventually been invited to join the main registration list; no one was left behind
  • costs were well under control, especially thanks to the free use of ISEP’s classrooms
  • we got significant money from sponsors; in fact, combined with the well-contained expenses, this event contributed hugely to settle debts from the past events
  • quality of food was alright (especially for a free event)
  • there were a number of well-known people, helping make this event special for other participants
  • twittering was big; according to my feed on Google Reader, there were more than 300 tweets. Including quite a few from people regretting not to have come.

What could have worked better:

  • there was not enough food. I think this is partly because the caterer is not a real professional. Even though we had given good estimates for the number of participants, I think that, as the person in charge of the student foyer, he was used mostly to students eating on a budget. If we use such a semi-professional in the future (likely, since we want to use more free venues such as universities), we would be wise to over-estimate the number of participants as far as food is concerned. Just in case.
  • Even though we did arrange the chairs in the main room in circles, we left the other rooms as they were, theater-style. This didn’t help having involved discussions (as opposed to presentations).
  • I’m wondering if we have not reached the maximum possible number of participants. One of the things that I really enjoyed last year was the late night drinks with the few that dared stay. This year, we were 30 or 40 at the end. Groups started to split up. Guillaume and I led a few to the Ti Jos bar and to the Caveau des Oubliettes. Although nice, it was a bit sad, as there wasn’t really a “closing the closing session” moment. We didn’t even get to do new predictions! (and settle last year’s bets, BTW).
  • Some rooms were lacking a video projector. I wonder if it would be good investment for the Open Information Foundation to buy one of those small and inexpensive projectors that have appeared recently on the market

On a more personal note, the conference passed a bit like a blur for me. Despite using OpenSpace Technology, I still ended up as the contact person for many participants, suppliers and sponsors, which was distracting. Also, helping my brother with the filming didn’t help. I even managed to miss out on the (now traditional) “Is Scrum Evil?” session, which had been a favorite of mine last year.

I still had a great time. Met Antony Marcano and Andy Palmer from Pair With Us (they are hoping to join us at the Paris Coding Dojo sometime — looking forward to it) as well as Gojko Adzic, whose copies of book was given away to some lucky participants, and Jason Sankey and Daniel Ostermeier from Zutubi… Reconnected with many former colleagues and friends, too. I also attended a few sessions ;-)

Oh, and last but not least, I’m one of the winners from last year’s bets! What do I win? Well, beer, in theory. But, even better, I get to call PJ, Jeffrey, Tom, Julian and Yegor LOSERS for a year. Priceless.

Check out

See you next year, in one of the five cities in our short list (Zürich, Copenhagen, Belgrade, Dublin, and Prague).

September 22, 2009

Faster tests, at CITCON Paris 2009

Filed under: citcon, test — Eric Lefevre-Ardant @ 9:11 am

"Going nowhere fast"

“Going nowhere fast” by Nathan

The session on Faster Tests (led by David) was interesting, at least to the extend that it was quite clear that we are not doing too bad indeed (Douglas Squirrel from youDevise is another one that seems to be quite cerebral about tests and builds).

Faster tests Faster tests

By looking that the various options discussed to get tests faster, I think it’s fair to say that the only way to really speed up tests is by compromising their integrity, at least to a level. In a way, to make tests faster, you’ve got to face reality and move away from their ideal abstraction (very reminiscent of Joel Spolsky’s Law of Leaky Abstractions). The only question is: how confident are you that those (slightly compromised) tests actually test something useful?

This leads to the conclusion that we only keep long integration tests because it is difficult for us to really understand what’s going on. If we did have an excellent understanding, we would have unit tests instead. And, interestingly, as we progress in our project, we find ways to convert integration tests into unit tests. In other words, we better understand what’s going on.

Also, check out my notes on the session on Mock Objects.

September 21, 2009

Mock objects at CITCON Paris 2009

Filed under: citcon, java — Eric Lefevre-Ardant @ 9:47 pm

The Mock Turtle

The Mock Turtle by Samantha Carlson

The session on mock objects, mostly lead by Steve Freeman, was a bit messy but interesting. My colleague David got to show some of our code on the screen, which was scary and exciting (he felt the urge to fix some of the tests he had shown immediately after). Also, I think I finally understood the relation between mock objects and interfaces that Steve insists on.

See, I always thought that Steve was in favour in adding interfaces directly on top of concrete classes. For example, if you have a FileManager, you would also have a IFileManager.

Steve made more clear that the idea was to use interfaces to represent a role, or (more exactly) just one of the roles that a class has. That makes sense. But, to be honest, I still prefer to have a single role per class. So, no interfaces really needed.

I wish I had more time to talk with Steve. Maybe his coming book will have answers for me.

Mock objects

September 10, 2009

Interviewed by François Beauregard

Filed under: agile, agile2009 — Eric Lefevre-Ardant @ 10:55 pm

François Beauregard from Pyxis Technologies interviewed me during Agile 2009 for their Vox Agile podcast. The interview is now online.

Toy sampling megaphone

We chatted about a favorite topic of mine: how to expand the horizons for Agile. My point is mostly that the Agile crowd is mostly talking about basic issues in software development, including during the Agile 2009 conference. I fear that this my give the wrong impression to beginners (”how, so we only need to do this and that, and we’re agile? Cool!”) and even to seasoned practitioners (”this Agile thing is not addressing my needs anymore”).
I would much prefer that we talk more about complex problems, whether they relate directly to Agile or not. This can include technical discussions or more touchy-feely ones. As long as we are addressing difficult problems, we will be making progress.

I also want to see more cross-domains talks. Obvious domains are the heavy industry (I won’t need to remind how influential Toyota has been to the IT industry) or performing arts. But that could also include things such as Behavioral Economics.

Or not. I don’t know for sure. However, I do know that we should be taking more risks. And stop presenting Introductions to Retrospectives for the upteenth time.

At the end of the talk, I mention 2 things for further reading. Here they are, plus a bonus book that I’ve just read:

The podcast is available in French on the Vox Agile site. Here is a direct link to the MP3 file.

Tim Harford

August 5, 2009

[Agile 2009] What’s in the conference for Java developers?

Filed under: agile2009, java — Eric Lefevre-Ardant @ 6:26 pm

quintessenceAgile 2009 is not just for Agile coaches or project managers. About one in three participants qualify herself as a developer or a technical leader. And the program reflects that.

Amongst the activities that might interest fans of the Java:

Here are a few sessions with Java either as the main topic, or as the language used for demonstration:

For some other sessions, Java is not central, but will be at least mentioned:

Check out the entire program on conference site!

Update (06/08/2009): should have mentioned that the Cast Codeurs podcast pretty much have the same information in French.

July 30, 2009

[Agile 2009] Presence of the CITCON community at the world’s premier Agile conference

Filed under: agile2009, citcon — Eric Lefevre-Ardant @ 6:32 pm

CITCONers are everywhere! And nowhere more than at Agile 2009 Conference.

First, CITCON will be represented by Lydia Tripp and myself during the Freshers’ Faire at the Ice Breaker. Watch out for the CITCON easel pad… and world-famous t-shirts ;-)

CITCON alumni are now a big crowd (there are more than 750 mailing list members, and presumably many more attended the CITCON events). Many of them will present at the conference
Modern and traditional tools

It Takes Two To Tango Also, Lisa Crispin is producer of the Testing Stage. And don’t forget that many more CITCONers will be presenting on the OpenJam stage, too! I know I‘ll be.

Lastly, I will be appearing a one of the contestants in Programming with the Stars! This means that I’ll be paired up with a “star”, then we’ll try to show our mad programming skillz and outperform our competitors. This is incredibly exciting but also very intimidating. Although I consider myself a competent programmer, I am certainly not the best, and the participants at the conference are not exactly beginners. Scary!

Check out the conference blog for an account of how Programming with the Stars went last year.

June 12, 2009

[Agile 2009] Continuous Integration

Filed under: agile2009 — Eric Lefevre-Ardant @ 6:32 pm

This year, just like last year, Continuous Integration is proving to be a popular topic at Agile 2009.

Phew! That’s quite a mouthful. Interestingly, there are many more talks listed here than I managed to get last year (and there are half as many talks this year). One reason could be that I was much more thourough this year, reviewing most of the sessions details — last year, I simply searched for keywords in the submission system.

To be honest, seeing as many sessions related to CI is rather a disappointment. I mean, CI is not a difficult practice, and you would think that many participants to Agile 2009 would be familiar with me. Plus, most sessions are introductions rather than advanced talks.

I guess I will content myself with Tom Sulston’s sessions (”Cage Fight” & “How to be awesome”).

June 11, 2009

[Agile 2009] Hudson-related presentations

Filed under: hudson — Eric Lefevre-Ardant @ 1:42 pm

Going to Agile 2009? Cannot get enough Hudson? I have put together a list of sessions at the conference that will explicitly mention the best CI server eveeeer ;-):

OK, I do prefer Hudson (I am a contributor, after all). But I also watch the competition… err, I mean, like the other tools ;-) Here are other presentations I could find that mention competitors to Hudson:

June 3, 2009

XP France becomes Agile France, and other news from the French Agile community

Filed under: xpday — Eric Lefevre-Ardant @ 5:33 pm

XP France MeetingAs a member of XP France, I attended the annual meeting that took place during XP Day Paris last week.

Things have been moving for our little group.

Agile France

First and foremost, the group is renaming itself. It will thereafter be known as Agile France.

The extended French-speaking sphere

Second, its bylaws changed to reflect that the group is willing to help anyone in the extended French-speaking sphere (ie. French-speaking countries, non-French groups in countries where French is spoken, and French-speaking groups in countries where French is not an official language).

6-member strong board

Thirdly, a stronger team of people has been elected members of the board. We are jumping from 3 (Laurent Bossavit, Gabriel Le Van, Patrice Petit) to 6 (Raphaël Pierquin, Bernard Notarianni, Sandrine Olivencia, Antoine Contal, Laurent Bossavit). This boardis elected for 2 years.

What to think of all this?

  • in my view, the name change is excellent. I do believe that it will give more credibility to the organization. I remember talking to someone who thinks that the French Scrum User Group had been created in part because they felt that Scrum was not well represented by XP France — he repeated that this was clear to him, considering the name. I do not believe XP France is neglecting Scrum, but it is just as well that the name makes it clear.
  • specifiying that the association is willing to help the whole “extended French-speaking sphere” proved to be controversial. I personnally do not care much, but many thought that we can get into conflicts with other groups, such as Agile Québec. I’d personnally be very surprised if that becomes a problem.
  • though I agree that the new team looks strong and motivated, I am disappointed by the slightly heavy handed manner. We were basically told “oh, we are also going to change the board and, by the way, there is the only team you can get to vote for”. A simple email to the mailing list would have helped make things easier. I think. Also, a few people seemed to be disappointed, as they would have been candidates, given the chance.
  • I am also disappointed by the rather long mandate (2 years, down from 3 years in the original proposal). One argument was that 1 year is not enough to let the board members settle, and they would then be judged unfairly for their first year. Well, who’s saying that the members of the association would be so harsh as to kick them out if they can explain why they haven’t achieved much? Surely, a reasonable explanation is not too much to ask.

Anyway, at least it seems that the association is doing its best to be as relevant as possible. I think those changes are for the better.

See you next year and all the best to the new board! There is certainly work to do  for everyone.

June 2, 2009

“Is Scrum Evil?” Beyond our session at XP Day Paris

Filed under: scrum, xpday — Eric Lefevre-Ardant @ 12:14 pm

Is Scrum Evil?Our session “Is Scrum Evil?” at XP Day Paris this year went well. Attendance was good (50 people or so). One participant called it an “eye opener“. Two recorded the discussion (one of the records is available, in French, here; look for the podcast published on May 30th 2009). Nicolas Martignole even did a transcript of the session (in French — you might want to check out the Google translation).

I thought I would give more details here.

Our goals

We didn’t exactly manipulate the participants, but we certainly did not reveal, on purpose, what our goals were:

  • help dissenting voices come out of the closet — very few people are vocally criticizing Scrum today in France, and I have found no blogs. I wanted to show the pro-Scrum side that they do not have the final word.
  • let people vent — both pros and antis
  • make participants think — one later came to me and suggested that I should have offered “alternative solutions”. Well, I have none (though I do have some starting points, see below)Is Scrum Evil?

Alternative endings

We had prepare additional materials, in case the discussion died out. Fortunately, it was so lively that we couldnt use them at all. You’ll find all three of them below.

You are not alone

The first thing I wanted to highlight is that, though dissenting voices on Scrum (or Agile) are not currently heard in France, they do exist in the rest of the world:

Is Scrum Evil?

Scrum has Crossed The Chasm

There is a model that give hints to the current situation with Scrum. It is the Technology Adoption Life-Cycle, as amended by Geoffrey Moore in his seminal book “Crossing The Chasm“.

In short, it appears that many of the arguments against Scrum do not just mean that it is poorly explained, nor just that it is poorly understood, but rather that it is now being adopted by a large number of people. Or, to rephrase this, that it has been (consciously or not) packaged in order to be palatable to the mainstream. This implies trainings, books, consulting services, explanations, case studies, success stories. In short, packaging the approach just like a marketing team would do. That the people behind Scrum did it on purpose (as I believe) is beyond the point: the Agile approach that wins the hearts and minds of IT professionals everywhere is necessarily the one that comes with such as package, a whole product, in the words of Moore.

That is a reality that people that are blindly against Scrum must acknowledge.

ARXTA

Finally, I would like to point any aspiring Scrum-evil-ist to Brian Marick’s writing on Agile roots. His argument is that “Agile” (and, I guess, the names of pretty much all Agile methodologies) is too easy a term to adopt. In other words, many people will look at the name, glance at the practices, and quickly come to the conclusion that “hey, this is exactly what we’ve been doing all along! Let’s avoid asking ourselves hard questions and let’s not change the way we work.” Which is, obviously, missing the whole point.

Brian has came up with a new name for the roots of Agile: “Artisanal Retro-Futurism, crossed with Team-Scale Anarcho-Syndicalism.” The name is cryptic (and even slightly repulsing) on purpose, so that people will have to ask, and will have to have a conversation.

Further reading

Check out

May 21, 2009

[Agile 2009] Self-management: Pomodoro

Filed under: agile2009 — Eric Lefevre-Ardant @ 4:07 pm

I have become interested in Pomodoro at Agile 2008 in Toronto, so I thought it’d be nice to check out where in Agile 2009 you can get to hear about it.

May 19, 2009

XP Day Paris, Agile 2009 and CITCON

Filed under: agile2009, citcon, xpday — Eric Lefevre-Ardant @ 9:47 pm

I will be quite busy in 2009 with conferences.

Coming up is XP Day Paris, May 25th & 26th (next week!). No less than 3 sessions will be presented by yours truly:

  • Introduction to Retrospectives, with Laurent Bossavit
  • TDD Explained to Managers, with Stephane Labati, a former colleague from Valtech
  • Is Scrum Evil? a workshop with Guillaume Tardif — the session I’m most excited about!

I will be at the dinner on Monday evening as well; feel free to come and talk.

In August, I will be at Agile 2009 Conference in Chicago. This time, I will host a Coding Dojo on Legacy Code, with my partner in crime Guillaume.

Unfortunately, Is Scrum Evil?, a session I had proposed with Jeffrey Fredrick, has not been accepted. Fear not! We will be back with a revenge during the Open Jam part of the conference. I have hope many big names of the Agile world will join us. Promising session, trust me.

Next, September 18th will see CITCON Paris. This conference is dear to me — I have participated to all previous European CITCON events, and I am sure this will be one to remember. 3 months to go and the list of registrants is already closed!

As you may know, this is an Open Space event, so sessions are not known in advance and will be discovered during the opening session. Sounds scary? Wait until you suggest a session! ;-)

Other events of note this year will surely be Valtech Days 2009 and Devoxx. I have helped organize Valtech Days in 2007 and 2008; having left the company, it will not be the case this year, but, who knowns? I might still get to host a session.

As for Devoxx, I have never participated so far, but I heard so many good things that I really want to make the trip this year. We’ll see.

Well, this will be a busy year. Hopefully, I will have a few vacation days for non-techie stuff as well!

May 6, 2009

Maven: it ain’t too bad

Filed under: maven — Eric Lefevre-Ardant @ 6:45 am

(or Maven Doesn’t Suck™)

My colleague David recently wrote a controversial post on Maven and what is wrong with it. As his neighbour in a cramped office room, I feel compelled to give my own opinion about it. Which fits in a few words: it ain’t too bad.

Maven did get some things right

My argument is that Maven did help teams to Get Work Done, mostly by paying less attention to the build system. I enjoy playing around with build scripts and the like, so I’d rather dabble more with them, as I used to in the heydays of Ant. But I can’t justify it anymore. Maven has allowed me to concentrate on more value-adding work.

But, obviously, that does not make it an all-around Good Thing. It does have its flaws. Yes, the dependency system is not great (I believe this can be partly alleviated with proper unit testing). Yes, too many people use it in too many situations. In a word, the paradigms in Maven break when pushed too far.

Well, couldn’t the same be said about Ant, Java, Microsoft Windows, or even computers?

Leaky Abstractions

All these things are Leaky Abstractions. They try to make our life easier by hiding the complexity, while in truth there will always be a point where the abstraction breaks down. This happens pretty much any idea is made concrete by some implementation. There is an inevitable point or situation where is does not work anymore. That is part of life, and no other build system will ever perfectly.

So they ARE lying then!

Of course they are. Nobody ever sold anything by saying “well, our tool is reasonably good, but keep in mind that it does not work in many situations” (and even open-source projects need to sell themselves). No, they must always oversell a bit, if they want a fighting chance (check out the website of any software if you do not believe me). If that means that some users will later be disappointed, that’s a chance they are ready to take.

So, what can we do?

If you are so inclined, feel free to provide your own solution, as long as you make it available to the world. But be aware that, despite all its benefits, at some point someone will come and bash your little tool, for the right reasons.

Or, you can periodically survey the available tools and change every time one seems better. Or wait for an external consultant to come to your project, laugh at you and point you to this new thing that “everybody is using.” But, in the end, if you want to keep your sanity, always take claims with a large pinch of salt.

Older Posts »

Powered by WordPress