Are dynamic languages the next best thing?

31 October 2007

We had a preview of Ivan’s talk this morning comparing the up-and-coming IronRuby dynamic language in .NET with C# 3.5.

My first impressions of Ruby on Rails and IronRuby are that they give you fast results now, but at the cost of maintainability later (since everything’s a tradeoff). But, maybe maintainability doesn’t matter so much, because its faster to just re-write it.

In C# & Java, I like the fact that an interface is a contract and the implementation is abstracted away from caller. Dynamic languages lose this explicit interface-driven-design in favour of a test-driven-design.

At the end of the day, its what gets better results for less effort that matters so it will be interesting to watch if dynamic languages can improve project success rates and deliver cheaper and better quality software.

Are dynamic languages the next best thing? Ivan definately thinks so and will be writing more about IronRuby on his blog.


Is your strategy working?

28 October 2007

In my post ‘What is strategy?‘, I finished with the question, ‘Is your strategy actually working?’

How do you know if your strategy is working? How do you know whether to persist or change tack? The answer lies in being able to measure your results and you could argue that its not really a strategy, unless you can measure it.

Some questions to ask about your strategy:

  • What does success look like?
  • How will you measure it?
  • How long should it take?
  • Do you have the resources to get there?

When it comes to measuring stuff, Steve McConnell has a great tip:

Count if at all possible. Compute when you can’t count. Use judgment alone only as a last resort.”


Foxmarks

25 October 2007

I recently installed foxmarks – a bookmark synchroniser for firefox and I like it. I don’t use bookmarks a lot (except for the bookmarks toolbar) but now I can bookmark a page instead of emailing myself the link between work/home/laptop.

I wasn’t looking for firefox plugins – and I’m sure there are other plugins that do this too, but I came across this company foxmarks, and was quite impressed by the bio’s of the two founders: Mitch Kapor and Todd Agulnick. I also liked their simple mission statement:

At Foxmarks, we’re turning web search upside down. Creating a better way to search that is community inspired and people powered. Getting you to the content you really want – faster and easier.

Our first product – Foxmarks Bookmark Synchronizer – is just the start. Stay tuned for more. And more. And more.


Is estimating a waste of time?

22 October 2007

I’ve talked a bit about estimating software projects and products and the difference between business goals, estimates and committments. David and Amit have some interesting comments on why estimating is a waste of time and they make some good points.

  • If you’re in a short development cycle, then does spending 5-20% of your time making estimates add any value?
  • Do estimates ever change reality?
  • Do they provide a release date with any more certaintity?
  • Assuming that you’re not going to sacrifice quality, then there are really only two factors to control: dropping features or pushing the release date.
  • All effort should be focused on delivering quality software in the most efficient way possible.

I think there is value in estimating, but there are two big problems.

The first is that estimates often only take into account the complexity of the task – not environmental factors such as skill/experience levels, available knowledge and other project/people dependencies. The second problem is that estimates often don’t take into account, or are prejudiced by, political and motivational factors.

A different approach is to use story points, which don’t try to estimate any factor other than complexity. Story points assign a complexity rating to a feature that is meaningless except in relation to other features. Then, instead of estimating time by looking forward, we can estimate time by looking back at how long other features took and comparing story points.

Story points aren’t a new concept by any means – but they are interesting because they place a good amount of value on estimates. Release dates and feature priority/impact is driven from the business goals and strategy, not from the project plan. Points are used to plan the start dates of features in order to meet the release goals.