Sunday, 28 April 2013

Two DIY half-day walking tours of Sydney

Last year Melissa and I visited Sydney and had a wander around for a couple of days. Very pretty city - we didn't have much time, but managed to get a couple of very nice - and relatively inexpensive - DIY walking tours in.

[A manhole cover that I liked and photographed with my shoe - near Sydney Central Train Station]

Both tours start and end at Circular Quay (CQ) - so theoretically say, if you were in Sydney on stop-over for 12 hours, you could catch the train from the airport to CQ and start from there.

So, here they are:

Balmain and Harbour Bridge - 

Synopsis - this tour takes you on a ferry ride from CQ, under the harbour bridge and around a couple of beautiful old suburbs. Start early/mid afternoon so that you walk back across the bridge about dusk – take in the view of the city at sunset from the walkway across the bridge.

(1) Start a Circular Quay – get a return ticket on Balmain Ferry (about $12):

(2) Jump off at Balmain, find a cafe, have a coffee and a wander around – some nice historical walks:

[L2R: ship-size sprocket, Colgate-Palmolive factory (now apartments), nice house - Balmain]

(3) Wander back to the ferry terminal and jump back on the next ferry – ride the ferry around Darling Harbour.

(4) Jump off at Luna Park, go for a swim at the pools and/or check out Kirribilli Village:

view from the walk _under_ the bridge from Luna Park, 
Melissa on the bridge footpath, 
Melissa appreciating the view from footpath to city]

Caveat emptor - the bridge footpath is HIGH, and the grill that separates you from the drop can I say this..."rusty"...? I'm not that good with heights and had sweaty palms and a relatively consistent surge of adrenalin the whole way across (I have sweaty palms thinking/writing about it now!). That being said - it is an awesome and relatively easy experience.

(5) Finally, walk back across the Harbour Bridge and through "The Rocks" to CQ.

Here's a very rough map that shows the course we took - you can work out where we jumped on/off the ferry easy enough. A return trip essentially lets you jup off the ferry and then back on again at any stage in the ferry's "loop":

[Follow the red line!]

Watson’s Bay and The Gap - 

Synopsis - this tour takes you out to Syney Harbour's heads (and back) and includes some delightful walking around the heads - with stunning views from the tall cliffs, and finishes up with a wander through some of the beautiful (and very plush!) old eastern bays suburbs. Do this one starting quite early in the morning, so you get the beach (Bondi) to yourself. We went on a Friday morning, started out about 7:30am.

(1) Catch the bus or train from Circular Quay to Bondi Junction – EOL, not much to see there.

(2) Catch the bus from Bondi Junction to Bondi Beach, find a cafe, grab a coffee (we went to this place - - "Gusto" - it was very nice, but the muffin that we had hadn't been cooked quite though - delicious nonetheless!) and have a wander along the beach – if you go early, it’s probably going to be pretty empty.

[L2R: early-bird surfers at Bondi and a nice view from South Bondi]

(3) Catch the bus from Bondi to as close as possible to Watson’s Bay – not sure what the bus number is (380?):

(4) Walk from about here to The Gap ( and around.

The view across the cliffs close to Waton's Bay and The Gap, 
the Watson's Bay Pub, 
and finally, Watson's Bay!]

(5) Go to the wharf and get some Fish n’ Chips at Doyles ( - website doesn't seem to be available currently, trust me through, the fish-n-chips is fantastic) and take them on the ferry back to Circular Quay (first ferry leaves about 10:45am).

(6) Jump off at Rushcutters Bay or Double Bay (we were feeling energetic, so got off at Double Bay) and walk back through these beautiful suburbs, into Pott’s Point (King Cross) and back to CQ.

[Rushcutter's Bay Cricket Grounds]

wandering toward Elizabeth Bay from Rushcutters through one of the neat little alleys between the bays, 
Elizabeth Bay - neat little cafe area where we stopped and had a coffee and a cake, 
King's Cross, spherical fountain]

Finally, here's a(nother) very rough map that shows the course we took - as I mention, the first ferry leaves Watson's Bay (on Fridays at least) at about 10:45am, so there's a bit of time for just wandering about and enjoying your fish-n-chips, or perhaps even a dip in the bay, if the tide is right!

[Follow the red line!]

So that's it, dear reader - I hope that if you choose to do one of these tours, that you enjoy it as much as we did. One last point FYI - we went in early December - the weather was very nice, and not too hot.

Sunday, 14 April 2013

Agile as an Antidepressant

Ever-soaring anti-depressant usage seems to rapidly be becoming one of the hallmarks of western civilization – at least among the OECD nations. The following chart shows how much antidepressant use has increased across a range of OECD nations in the 10 years 2000-to-2009 (the defined daily dose – DDD – is “the assumed average maintenance dose per day for a drug used for its main indication in adults):

At the same time there is growing evidence that once a certain level of comfort is achieved by a country – as measured by GDP-per-capita (admittedly a coarse and arguably fallible metric) – the level of “life satisfaction” reported by a nation’s people levels off. Currently, according to “The Economist”, the level of income required to reach that point is about $15K (USD) per head.

The blog post associated with the link that I’ve extracted the above chart from, argues that the chart on the right (log scale) is the more accurate one, and that the chart of the left (linear scale) is essentially a “dismal” view of the world. Sure, fair opinion. My opinion though is that that is a dubious attempt to avoid facing the possibility that all of the world’s problems (as perceived by an individual) may not necessarily be solved by acquiring an overabundance of resources (that is, spending power).

Let me qualify my thinking here by saying this post is not about money equality/equity – that’s a whole other discussion. This post is about change and improvement. At this juncture I should also say that I don’t claim to be an expert on any of this; I am making a partially informed observation and offering an opinion.

So, the statistics available on antidepressant use tell us that despite being flush with cash in the west, many of us are pretty unhappy. Increasingly people are looking to alternatives to antidepressants as a way to feel better about their-selves. For example, the following chart illustrates a study that investigated the link between exercise and recovery from depression, versus medication:

Which brings me to the role of Agile. I have been fortunate enough to have seen in my career the power that Agile has to change the way that an organisation thinks – not just within IT, but at the organisation level. Furthermore, I have the benefit of having come from a non-Agile background; that is, I have seen – and see – how bad things can get. A colleague once told me when I asked him how he felt about a Scrum implementation that he had participated in - “Scrum has made me a more relaxed person”. Of all the comments, statements and motivational speeches I have heard over the years relating to Agile adoption, this one really hit home and has stuck with me – most likely, because that’s how I felt also.

“Scrum [Agile] has made me a more relaxed person”

Proper application of Agile is a lot like regular exercise; Agile gives us many of the psychological ingredients that we need to be able to feel better about ourselves:

  • Regular feedback cycles, opportunities to communicate and to improve.
  • Team work – that is not just being a member of a team, but working, taking responsibility and achieving, as a team.
  • A visual, tangible means of communicating our goals, progress and difficulties.
  • Increased opportunity to succeed (as per the following chart).

Just like regular exercise, Agile may not always go the way we want it to; as is reflected in the pie charts above – although Agile results in a higher percentage of successful project outcomes than Waterfall, it falls short of delivering a successful outcome even 50% of the time. And it can be hard to get Agile right – it takes discipline, practice and commitment. However, like another colleague of mine said once – “Agile is the worst development methodology in the world – with the exception of every other development methodology” (paraphrasing Winston Churchill).

To summarise; I have been fortunate enough to have “seen the light” in terms of product development – it is Agile. For those who work in this field on a day-to-day basis (there are many millions), Agile “done right” I think really is an antidepressant. It is not a pill or a silver bullet; it is a principled approach that can (re)ignite that spark that makes people leap out of bed in the morning, eager to help make the world a better place. Believe it.

Saturday, 6 April 2013

Book Reviews: Agile, Programming and Refactoring

This blog post started as being a review of 12 books, then I cut it back to 7, then 5, now 3. Hey, it's late on a Saturday night and I am now knackered. In any case - here we go, three good-uns:


Agile Estimation and Planning (Mike Cohn - this book took me from being a person who knew how to setup an Agile team and practice Agile development, to - as the cover says - being someone who can plan and estimate relatively large software development projects using Agile methods. I've used the approach Mike lays out "in anger"; it works - superbly.

Mike has published an accompanying book on User Stories, which I have not read, but I imagine would compliment this book nicely.

Basically, if you want to understand how to successfully extend your Agile practice from being a way to manage programming on a day-to-day (or Sprint-to-Sprint) basis - and to develop the maturity of your Agile approach - then this book is like a step-by-step "how to". The guidelines are easy to follow, and to me at least, everything just makes sense.

Caveat emptor though; I imagine the approach would be harder to apply in practice - and/or make sense of - to someone who has not practiced Agile development relatively solidly.

The C Programming Language (Brian Kernighan and Dennis Ritchie - Anyone who works as a programmer or is interested in programming should read this book, IMO. Admittedly I didn't get around to it until I was well into my programming career - however it is really a pleasure to read, and if nothing else, sheds a lot of light on the nuts-and-bolts under the hood of your Ruby, C# or Java compiler/interpreter. And, well, what programmer doesn't get a kick out of finding out about the nuts-and-bolts?!

Cleverly written, and flows beautifully. This is not a technical manual (although in some editions a manual is included), more like "the story of C". I can see why it is a classic. Aside - this book is where the "hello, world!" program comes from.

Working Effectively With Legacy Code (Michael Feathers - Again, this is another classic, IMO - and is arguably a bit more practical for most modern programmers than "The C Programming Language".

Feathers defines "Legacy" code as essentially being any code that is untested or currently untestable. Most professional programmers worth their salt will have come across lots of this stuff - in fact, I would hazard a wager that many (most?) coders are in-fact working with legacy code (as Feathers defines it) on a daily basis... Anyway, Feathers introduces us to this notion and then moves on to the thrust of the book; which is to introduce myriad patterns that enable the user to wrap or refactor legacy code in such a way to make it testable.

The book is written in the style of the "Gang of Four" Design Patterns book - there are three sections; the first sets the stage, introducing Michael's reasoning, definitions, and some tools. The second section is scenarios (essentially suggestions as to how to apply patterns to deal with problems, like "My Application Is All API Calls") and the third is a reference for a stack of dependency breaking patterns.

This book in my opinion is great - there should really be a hell of a lot more writing about how to address the problem of refactoring legacy code - after-all, it must be one of the key issues that the software industry faces currently. Perhaps the subject is just not sexy enough. In any case, I think the author does a slick job of "coolifying" the subject matter - and this book in my opinion is a much easier read than Fowler and Beck's "Refactoring".

Also, I like the cover - presumably, it's some sort of timekeeping mechanism...


Goodnight - perhaps I will post some more book reviews soon!

Friday, 5 April 2013

Human Behaviour and "The Cat In The Hat"

I love these books. I have been reading them to my daughters on-and-off for the past few nights; my wife picked some of them up from the school fair the other day. My daughters love them also - it is one of the only ways currently, that I can get them to stop their (admittedly, delightful) chatterbox-ing!

What I find fascinating about the books is how they are, seemingly, a metaphorical study of human behaviour - or, of my own behaviour, at least!

The Cat In The Hat and his cohorts ("Thing 1", "Thing 2", etc) represent a preposterous and apparently overwhelming challenge, introduced into the lives of Nick, Sally and The Fish, who are otherwise working hard and/or bored. The Cat in The Hat is the proverbial "spanner in the works" - that we so often find has been thrown into our otherwise apparently peaceful (mundane?) existence. Sometimes, we seem to introduce The Cat In The Hat ourselves, sometimes he seems to be introduced by others - or by nature. In keeping with "real life", there is even a touch of danger and mystery in the books - like the imminent threat of Mother arriving home to a stupendous mess, and the way that you never actually see Mother's face.


The Cat In The Hat is like our reckless happy-go-lucky side, The Fish is our cautious dutiful side, Mother represents our responsibilities and Nick and Sally are you and me.

Currently, I am wrangling what seems to me to be a huge "Cat In The Hat" (one I have invited into my world all by myself in-fact!), which I guess is why I've taken a shine to these books all of a sudden. After having read them many times in the past, I'm seeing the logic with fresh eyes!

At the end of the day though, our "Cat In The Hat" is an opportunity for us to learn - for kids, literally; for adults, metaphorically. If we are not sometimes faced with - and addressing - preposterous challenges, what motivation is there for us to see/do things differently? As much as I don't like to rattle off "inspirational" quotes, there is one that comes to mind...

"Stay Hungry. Stay Foolish." (by...go on, you know who!)


The Cat In The Hat character profiles:

Migrating (and Open-Sourcing) an Historical Codebase: SVN-to-Git

I have a SVN repo on my local machine that I have been shoving stuff into since before I knew how to use revision control systems properly (...