ericlefevre

July 13, 2006

How To Show Sub-Iterations in the Iteration Backlog

Filed under: agile, scrum, valtech — Eric Lefevre @ 2:14 pm

Once issue that we have with our customer is the definition of iterations. They want us to work with 6-week iterations, and release a previously-agreed scope at the end of the 6-weeks. The reasons for this according to them is that they need that long to run all the test cases they have (note that this development is a re-implementation of an application developed in Forte; all the specifications and test cases are already available and reasonably stable). At any rate, it does not break Scrum rules too much, so it should be alright.

Anyway, they do not mind us having shorter iterations. So we took the liberty to arrange the external iteration into three 2-week internal sub-iterations.

Problem is, how can we arrange the Iteration Backlog and still make things clear for the customer… and for us?

A first attempt has been to create new Excel tabs for each sub-iteration. So we would have 1 ‘backlog’ tab and 1 ‘burndown’ tab for sub-iteration 1, same thing for sub-iteration 2 and 3.
The issue that rose was that it became difficult for us (and for the customer) to understand what was going to be implemented in the external iteration. Say that the customer wants to check if a particular feature was going to be implemented. He would have to go to the first ‘backlog’ tab, then to each of the 2 other ‘backlog’ tabs. In practice, of course, he would stop after the first tab (I would too), and complain that we promised to do things and did not even list them.
As it turned out, the 2 other ‘backlog’ tabs did not contain this information. The person in charge of creating this Iteration Backlog had thought that things would be pulled from the Product Backlog during the Planning game for the other sub-iterations. Well, maybe so, but it is not making clear to the customer what we are hoping to implement in a given external iteration.

So I have suggested to rearrange the 3 tabs into a single one. The 1st tab would remain as it is. The 2nd ‘backlog’ tab would be copied just below it, in the same fashion as the ‘finer grained’ section in the Product Backlog, except that it would be called ’sub-iteration 2′ instead of ‘finer grained’. The 3rd ‘backlog’ tab would go further below. Maybe we could keep the labels ‘finer grained’ and ‘coarser grained’ as sub-titles for those sections, until we get in the middle of those iterations.

I think this allows everyone to see easily what is going on, while still capturing the idea that the later sub-iterations still need to be analyzed in the planning game.

Team Did Not Split In Feature Teams

Filed under: agile, offshore, scrum, valtech — Eric Lefevre @ 2:02 pm

On our project, there is a total of 21 tech people (plus managers and translators).
3 of us are onshore.
18 offshore.

You would expect this to lead to a natural split into 4 teams, right? 1 onshore, 3 teams of 6 offshore. Or maybe 3 Teams of 7 people, considering that we onshore are officially there for support (and not particularly for implementing features, though we do occasionally). This would nicely fit in the “7 plus or minus 2″ rule, right?

Incredible as it may sound, that is not what happened.
A couple of months after Craig introduced Scrum, I was wondering why there had been no mention of Feature Teams.

As it turns out, Craig *did* explain to them very clearly the benefits of splitting in feature teams. During the Retrospective Meeting, the Team (of 15 people, at the same) took the clear position that they did not want that to happen.

Craig’s opinion on this is that, in Scrum a Team takes its own decision. And if they do not want to follow a rule, then they shouldn’t be forced to.

Is it really so simple? For me, refusing to split in Features Teams is akin to flatly refusing to do Scrum at all. In the literature, I don’t really remember Ken Schwaber mentioning that it was optional, or even strongly recommended. It’s more like: “split the people in Teams, and then get them to choose tasks from the backlog”.

Now, I agree that once the team has decided *not* to split, then it is probably already too late. But why give them a choice at all? There are many other things they had no choice about, starting with using Scrum. I am convinced that, if they had been made to split in Teams, then they would have happily followed along without thinking twice about it.

July 6, 2006

Buildix

Filed under: test — Eric Lefevre @ 2:00 pm

Those fine people at ThoughtWorks have just blessed the world with Buildix, a bootable CDROM that integrates CruiseControl, Trac and Subversion. With this, you get an immediately available development platform. I cannot wait to test it.

July 5, 2006

Reshape to your will, or play with strengths?

Filed under: offshore, process — Eric Lefevre @ 1:53 pm

Last week, I attended a 3-hour session on wine. It wasn’t just wine tasting; the guy (only gave his first name, Alexis) also gave plenty of details on how wine is produced, etc.

He also explained the differences between wine-making in Europe (in general) with wine-making
in the New World (US, Latin America, South Africa, Australia, etc.). For him, it’s actually a philosophical difference.

  • In the New World, wine-makers are artists (almost) that consider that they can (and do) produce any kind of wine from any kind of soil. Preferably the kind that sells.
  • In Europe, from the concept of terroir derived the idea that the wine-maker should play by the strength of his environment and attempt to magnify the characteristics that are naturally present. If it doesn’t sell, well, too bad (I’m exaggerating a bit, here, of course).

Both attitudes have, of course, their own merits.

What does it have to do with software project management, you ask?

Well, here the idea (slightly far-fetched, I agree). Suppose that you are working in a multi-cultural project. Not with many different people in the same team, but rather with different teams in different countries. For example, our offshore colleagues are certainly more disciplined than we are (agreeing to work on Saturdays, for example); on the other hand, they are much less able to work without external help.

So, should one work with their strengths, or despite their weaknesses? A complex question that I will not try to answer in this column.

Javaday 2006

Filed under: conferences, java, valtech — Eric Lefevre @ 1:52 pm

Last week, I went with 3 others Valtech guys to Javaday in Versailles.
Javaday is an interesting concept. It lasts only one day, and has no entrance fee. Even the lunch sandwiches are free. With such a premise, you would expect marketing talk and no much meat behind it. There is no doubt that it is a good publicity stunt for Sun (and you might leave the conferences believing that NetBeans is the only game in town, Eclipse coming as a distant second - IntelliJ or Visual Studio don’t even get a passing mention). But the presentations were remarkably technical and candid. In fact, only some of the presenters were Sun employees (including James Gosling). Most were from the French Open Source scene, with a strong delegation from the OSSGTP (Club Open Source Get Together Paris - weird name).

In the end, I left the venue with a warm feeling of contentment. I have seen real stuff; I have seen people that were happy to do those stuff; if fact, it makes me feel like, yes, I want to be part of that scene myself.

Now, a few words on the presentations.

Eric Mahé from Sun France gave the expected marketing presentation. As a tongue-in-cheek thing, he pretended to have found a new movement “Extreme Pixel Programming“. Hm… sure, why not.

  • Oh, in the last slide, he pretended that 100% of Sun’s revenue ($13B) are coming from Java. Yes, I know that he meant that it is *derived* from Java. But still… who is going to believe that?

James Gosling gave an overview of what was going on and what should be expected. Nothing revolutionary.

  • He said that Java was in 4 Universes (Enterprise, Standard, Embedded, Card) and that Enterprise is only the first step. Seriously, how many times have we heard that? Also, “the terminology application does not apply anymore, with components here and there”. Uhu.
  • Among the usual new things from Java 5, he mentioned Collections.shuffle(List). That brought back memories to me from me I was in high school and trying to shuffle my own list. My solution was to randomly take two elements, and swap them. Reiterate as many time as you can afford. I wonder what they have done there? (update: as it turns out, it was available in 1.4 already; however, it has been updated in 1.5 to handle generics)
  • Also, he said that Java 5 included many utilities and helpers. I hope it means that the incredibly useful (though low-profile) Commons package from Apache has found its way in there.
  • BlueJ is an IDE designed to appeal to first time developers (”who haven’t written a single line of code before”). Between this and the proof-of-concept implementation of a Visual Basic-like language that compile into JVM bytecode, it seems that they are at last seriously targeting this crowd of people who does programming on the side with VBA. Will take years to make any impact, though.
  • Similarly, Java Studio Creator (demonstrated many times during the day) is an answer to the drag & drop goodness of .NET Visual Studio. I saw a demonstration of Visual Studio 6 months ago, and it was seriously impressive. This thing seemed to be equally nice to show… though, like Visual Studio, it still means you’ll eventually have to dig into the code yourself, eventually.
  • Pleasant demo of ICEbox (don’t bother looking it up on the web; it is proprietary; also, it has nothing to do with ICEsoft), a 3D design tool apparently developed at his brother’s company (??) …mostly shows that a company with a clear business process will do well.
  • Reiteration of the usual performance claims. Apparently, some benchmarks have proven that Java is about as fast as C/C++, or even faster. It would also near Fortran. OK, why not?

We had a quick word from Max Lanfranconi, to promote the Java Community Process. The real meat was in the afternoon, but I didn’t get to see it, as I was booked into the AJAX demo.

Ludovic Champenois from Sun, and Emmanuel Bernard from JBoss/Red Hat demonstrated the power of annotations in JEE 5, and of the Java Persistence API.

  • Annotations are here, of course, to supplant XDocLet. But apparently, they are also replacing Spring in some was, as they provide support for Inversion of Control.
  • Emmanuel demonstrated all this with Hibernate, of which he is part of the team. Was a nice programming presentation, using annotations, Hibernate Validator. Too bad he had to manually edit XML files to make it work!
  • A few years ago, I used to work with Emmanuel, when he was employee of a major retailer in Paris. His project was eventually canceled, but by that time he had become seriously involved with Hibernate. He was eventually hired by Hibernate/JBoss. And now that Red Hat has acquired JBoss, he was moved to Atlanta. Wow. I think I’m jealous.

Romain Guy, formerly from the Swing team at Sun, demonstrated Aerith, a Swing demo. It is in fact a mashup of Google Maps, Yahoo Geolocation and Flickr. Eye-candy-a-plenty.

Next, we had a presentation from a number of actors in the French Open Source scene (representing xwiki, Groovy, Hibernate, jCaptcha, Maven, and others). Interesting, though nothing new came up.

Finally, the morning was closed with a Round Table that included James Gosling. The usual questions came up (what is Sun going to compete with .NET? when is the GUI going to catch up? etc.).

  • It was interesting that one of the guys (from the French Java Club) put on the same level Swing, Flex, Ajax and Vista, explaining that next year will probably see a war between them all.

In the afternoon, we had a 2-hour long session by Alexis Moussine-Pouchkine from Sun, on AJAX.

  • Here are the tools he mentioned: Google GWT, Yahoo, Zimbra, Prototype, Atlas, DWR, AjaxAnywhere, DOJO Toolkit, jMaki. He also recommended looking at the Java BluePrints Solutions Catalog.
  • Mentioned that JSON was an alternative to XML in the AJAX context.
  • His presentation of the integration of jMaki into Studio Creator was quite impressive. Felt like RAD development, similar to what we see with .NET Visual Studio.
  • Most interestingly, he talked about AJAX and server performance. Apparently, the first studies conclude that there is, in general, an improvement in the general performances, due to the lower quantity of information sent to the client. Of course, it is still important to make sure the Use Cases are correctly taking the constraints specific to AJAX into account.

For more about Javaday, check out Xavier’s blog.

Powered by WordPress