Feb
8
2010

Standing up at your scrum

The scrum stand up meeting, is sometimes renamed to “the scrum”.  This is fine but remember you are supposed to stand up.  The reasoning behind this is it keeps the meeting short.  People do not become too comfortable.  The idea is very simple.  Quickly broadcast any information from the scrum master, then whizz around the team collecting status and blockers.  Each member outlines what they are working on that day.  No design discussions or protracted dialog on anything else.  Take discussion offline.  Keep screens and software products tracking tasks out of it too.  Its not a bad idea to have the visual indicators available.  People can then point to the task card, this helps other interested parties keep track of what is going on.

Beware all yea who let the stand-up slip into longer formats, your wasting company money and time.  Possibly you could end up on this new social site Meet or Die!

I have been in scrums with established teams, where extraneous dialog started to creep in.  My scrum master introduced a speaking ball.  The ball is passed around.  You can only speak if you have the ball.  Anyone speaking out of turn is marked on a board.  When you gather enough marks you have to buy food for the team.

Sounds silly, but it did make the meeting fun…chucking the ball around, and kept it short.

Feb
8
2010

Estimates are not commitments!

Velocity, the new estimate

Cambodia, Phnom Penn, the water festival: Martin Harris

Probably one of the most common mistakes in Software Development is to allow Estimates to become Commitments.  I am sure you know the following scenario all too well.  The development team is called into a meeting room and asked the following question.  We (the management team) have had a look at the estimates, and your tasks on average are taking longer. The insinuation is that the development team is, stupid or perhaps lazy.  Worse still, an individual is called in because the stats show their work is “Behind Schedule” as judged by the estimates.  The problem is none of this though, the problem is believing that estimates are anything other than an educated guess.

Continue reading Estimates are not commitments! →

Feb
7
2010

FlatFrog gets $18m – challenges the MS surface

Its great to see some competition finally in the surface race.  FlatFrog have got a siseable funding according to this gear crunch article.  I can see all kinds of uses for this technology, but currently its very expensive.  I wish FlatFrog luck in producing a cheaper alternative.

Feb
1
2010

Leveraging Eclipse for TDD

I have found that quite a few programmers struggle to work in a completely test driven fashion. I myself whilst writing tests for many years, took a long time to move over to writing the test first. I think one of my problems was that I always wanted to do my thinking in the implementation class. Recently I have found a great way to leverage the Eclipse IDE’s code complete functions so that its more natural to work from the test class.

The idea is to save effort and time by getting Eclipse to create the implementation side. I have long been used to changing the code, and then using code complete to refactor. For instance you can change a class name or package name, and use CTRL-1 to get a list of options on the code that will not compile. Then use an option to move or rename the class performing the re-factor.

This turns out to be a very powerful technique for driving development from the test.

Try out this simple example I think it makes it more natural to TDD, but I would be interested in your comments.
Continue reading Leveraging Eclipse for TDD →

Jan
25
2010

Eclipse, Static imports quickly and GitHub gist.

Every one has a collection of favorite Eclipse templates.  I find the simple ones are often the most useful.  The examples below create you a static import and finish the method your typing.  They even put the cursor in the right place if you need arguments in the method.  I am going to collect more of them using the incredibly handy GitHub gist: My Static Import Templates For Eclipse.  GitHub gists are great for these kinds of programmer reminders.  In addition edits get version control.

Typical Eclipse template for Google Collections

${:importStatic(com.google.common.collect.Lists.newArrayList)}newArrayList();
${cursor}
${:importStatic(com.google.common.collect.Sets.newHashSet)}newHashSet();
${cursor}

To use them, just open Eclipse Preferences: Java Editor: Templates.  Add new templates, and give them a name similar to the method.  I.e newArrayList.  Then your code completion hot key will run the template completing the text your typing in.  i.e you type newArrayList [code complete key] and it adds the static, and the rest of the method, placing your cursor at the end of the line.  Neat!

Note: See the comment from Yuri below, the above templates are no longer required for static imports. Its possible to configure the Content Assist to bring in a whole type, or member using Prefs:Java:Editor:Content Assist:Favorites. This is better as it scans all possible available methods in the type.

The code you end up with is tidy too:

List myList = newArrayList();

There is another thing I can never remember the syntax for! :-)   The markup to add the syntax highlight for this blog. Available as a gist: http://gist.github.com/234709