Enter your email address:

Delivered by FeedBurner

May 2008

Sun Mon Tue Wed Thu Fri Sat
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

Tools

  • Google Referals

« September 2007 | Main | November 2007 »

October 2007

October 30, 2007

Carnival of the Agilists

Sorry this one is a bit overdue - it should've appeared last Thursday (Oct 25).

Welcome to the Carnival of the Agilists a carnival whose editorship rotates among four editors (Pete Behrens, Kevin Rutherford, John Brothers and myself).Carnival-Amusement-Small

James Shore hits a theme that's been bothering me a bit lately (see Don't call overridable methods in constructors) : "It's the Software, Stupid!". Scott Hanselman (channeling Patrick Cauldwell) says: "If your method can't do what it's name promises it can, throw". Its a simple reminder - if you can't meet the contract implied by your name throw an exception. Finally Ed Gibbs gives us the ultimate Agile Metric: Crap4J (a real Eclipse plugin, now supports other IDEs). Simply put it measures complexity (bad) vs test coverage (good) and gives your code a resulting crap rating. Very little code I've seen looks good when viewed through this lens.

Continue reading "Carnival of the Agilists" »

October 26, 2007

Good Agenda's make Great Meetings

At Agile 2007 I attended Jean Tabaka's "Why I don't like Mondays". In this session Jean emphasized the importance of a meeting purpose and agenda. At the time I thought "Well my meetings use the standard Scrum agendas and we get a lot of value out of the meetings." Wow was I ever wrong. I bought Jean's book Collaboration Explained and found a revised set of Agendas.Agenda-small

 Its funny compare the standard review and retrospective agenda

  1. The team demos the product.
  2. What went well? Often a round robin.
  3. What went poorly? another round robin.
  4. What could we improve next time? yet another round robin.

Stunningly we discovered only the obvious issues and did little to fix them.

Continue reading "Good Agenda's make Great Meetings" »

October 22, 2007

Working at a Distance is hard

Working at a distance is hard. There is a reason all the Agile methodologies recommend co-location. looking into the distance 

You miss

  • A sense of presence 
  • Hallway conversations 
  • Rich shared environment (whiteboards, flipcharts, …) 
  • Personal cues – you can’t tell when someone is focused or would welcome interruption. 
  • It’s very difficult to build trust. 
  • You don’t share the same hours

In short don’t do it. The best anyone can offer is mitigation strategies.

Continue reading "Working at a Distance is hard" »

One year of Scrum - Lessons Learned

This is a series of posts that will focus on seven key lessons I've learned over the past year of implementing and coaching scrum.

I became interested in Agile development in 2000 after failing at every other approach I’d ever tried: waterfall, RUP, drawing UML diagrams (I spent a lot of time perfecting the diagrams and less producing a working product).

In Jan 06 a team I was a member of started doing daily standups during a crisis. When the problem was solved we decided the standups had been effective at sharing information so we decided to keep them. After a reorg in Oct 06 we decided to start iterations and add regular Planning, Review and Retrospective meetings. So began our journey with Scrum.

Lessons Learned

I will post the details of these lessons at the rate of one or two a week until I'm done.

Programming note - the focus of these posts will not be cheer leading. Scrum has worked for us - if it didn't we wouldn't keep doing it. Instead the focus will be on the things that were hard

If you enjoyed this post, subscribe now to get free updates.

Continue reading "One year of Scrum - Lessons Learned" »

October 18, 2007

Wide Angle Zooms for DSLRs - a review of the reviews

Realizing that I'm likely to be shooting a DX camera body for a long time I'm starting to ask questions about my lens line up. When I shot 35mm film, I used a Tamron 20-40mm for nice wide angles. There were moments where I've wanted a slightly wider field of view but on the whole it's been an excellent companion especially at the price ~$800 Canadian (1998). But now I'm shooting on DX camera body and am stuck with the limitations of my 18-70mm (~= 28 - 105 in 35mm terms) - so I decided to research what my options are. Nikon-12-24mm-f4

The options:

As much as I enjoy filling Nikon's coffers paying $900+ is currently just a bit rich for my blood. If you've got the cash then skip this post buy one. (If you buy any lens clicking on the link above then Amazon will give me 4% of the proceeds.)

Continue reading "Wide Angle Zooms for DSLRs - a review of the reviews" »

October 12, 2007

Nikon D3 vs D300

The announcement of Nikon's two new camera's has really been forcing me to crystallize my thinking around buying a full frame digital camera.

For nearly 15 years I shot with a Nikon F801s (an 8008s for my American friends), it was a solid workhorse of a camera with a good reliable spot meter. About three years ago now I gave up film, sold the 801s and bought a D70. I haven't looked back the D70 has been a great camera - but when I bought it I had my fingers crossed behind my back. I was secretly hoping that Nikon would produce a full frame DSLR for the pro-sumer market. I had such a strong belief in this that I kept my 20-40mm (a useless nearly useless lens on 1.5 crop sensor).

But now that D3 is arriving I forced to question my original desire for a full frame DSLR. I've come to really appreciate the extra reach that my 80-200mm has.

The quandry: If I will eventually buy a full frame DSLR then I shouldn't invest in any DX lenses - but I will need a good midrange zoom (don't have for historical reasons). If I'm going to stick with DX then its time to start thinking about a wide angle and the 18-200 DX/VR.

Key differences:

  D3 (FX or Full Frame sensor) D300 (DX or 2/3's sensor)
Telephoto lenses work at their original length. But to get the greater reach I have to spend real $$$. My 70-300, is an adequate 450mm. My 80-200 (with 2x teleconverter) makes a poor mans 600mm lens.
Wide Angle lenses I will have my wide angles back Hmm will have to part with some cash to get wider than 27mm.
Depth of Field (for equivalent Field of view) Shallower depth of field in any given situation Shallow depth of field harder.
High ISO Bigger sensor, less noise. Definitely great out ISO 1600 Apparently even 6400 is good. The few samples anyone has seen look pretty damn good.
Weight heavy - especially when you weigh all those full size lens.  

 

Unless Nikon has a stunning announcement of a pro-sumer full frame camera in the next 18 mths I will probably just bite the bullet and admit that I'm shooting DX cameras for a long time to come.

If you enjoyed this post, subscribe now to get free updates.

Caveat Emptor - There are a lot of previews out there that look reviews of these camera's. Beware these are just reviews of the specs. Only Cliff Mautner (wedding photographer) has been allowed to play with a pre-production D3. Even his notes are based on JPEGS (nothing handles D3 RAW files yet).

October 10, 2007

Protected variables cause subtle bugs - don't use them

This has been said before: Protected variables are evil. But apparently as I've been doing some debugging into the Eclipse code I'm reminded it needs saying again.

Let's suppose we write a base class

public class SimpleBase {
   protected Object value = new Integer(10);
   public printValue() {
      system.out.println(value.toString());
   }
}

public class Derived extends SimpleBase
{
   public Derived() {
     value = null;
   }
}
...
main() {
  new SimpleBase().printNumber();
  new Derived().printNumber();
}

Continue reading "Protected variables cause subtle bugs - don't use them" »

October 04, 2007

Don't call overridable methods in constructors

MS has a rule about this in FxCop. PMD has a rule:

ConstructorCallsOverridableMethod. In both cases the point is to discourage the following weird behaviour. From Eclipse:
public abstract class CellEditor {
    protected CellEditor(Composite parent, int style) {
        this.style = style;
System.out.println("CellEditor constructor");
        create(parent);
    }

    public void create(Composite parent) {
        Assert.isTrue(control == null);
        control = createControl(parent);
   }

    protected abstract Control createControl(Composite parent)
}

Continue reading "Don't call overridable methods in constructors" »

AdSense

  •  
    Web Notes From a Tool User

Amazon Store

Blog powered by TypePad

TheGoodBlogs