Wednesday, September 15, 2010

Agile Australia 2010: Personal Recollections

I attended the Agile Australia 2010 Conference in Crown Conference Centre, Melbourne, on September 15 and 16, 2010. Here are some of my personal recollections, remarks and photos.

DAY 1

First impression when I got to the venue :- lots of people. The expected Agile consulting/training firms were there with their promotional booths (some free iPads to give away), with Thoughtworks being prominently at the centre. Personally, I was more interested in training courses, and so grabbed some brochures from Renewtek and Agile Academy.


Promotional booths and the crowd


The conference was kicked off with a keynote talk by Jim Highsmith, who presented various pieces of data, statistics and graphs to tell everyone how to measure Agile successes.


Jim Highsmith's keynote talk


This was immediately followed by an excellent talk by Jeff Smith of Suncorp. His point that trust and respect were the crucial values necessary to foster effective teams resonated with my own recent experience with several teams in my own company. He also introduced the Agile Academy, which I didn't know of before.

Next, the conference was split up into three parallel streams. I attended the talks by Ben Hogan (Using Agile techniques to adopt Agile) and Neal Ford (Implementing Emergent Design).

Ben introduced us to John Kotter's 8 steps to successfully implement change, that he contended were not adaptive due to lack of any feedback mechanism. Therefore, he proposed using Scrum's feedback cycle to introduce adaptability to some of these steps. In order to introduced changes such as Agile adoption to people and organizations, he suggested using a longer iteration/cycle time (1 month) than in software development.

I was initially more interested in Neal's topic due to its developer-centric focus. He spent quite a lot of time explaining software design concepts such as:
  • inherent and accidental complexity
  • technical debt and negotiating payment
  • over-engineering for genericness

He presented enablers of emergent designs such as:
  • test-driven design
  • refactoring to harvest idiomatic patterns
He even went through some calculations of code complexity and class coupling metrics. However, given that Neal's talk was marked as for those thoroughly experienced with Agile, I was actually a bit disappointed to find it rather lacking in novel in-depth content. Surely, experienced agile practitioners would already know about complexity and technical debt. I doubt any experienced developer would have learned much from the refactoring examples. I did learn something useful though:- In Pacman, a ghost could not detect Pacman running right up next to it (his example of anti-object).


Neal Ford on idiomatic patterns and software design


By lunch time, I was eager to find out what delicacies might be served in the buffet. Alas, it was just beef rolls and sandwiches. Nothing to brag about. How I missed the comparatively luxurious offerings from the bygone Sun Developer Days conferences.


Sandwiches, rolls and some salad for lunch


After lunch, I watched the panel session, where five top agile practitioners sat together to discuss their preferred flavours of Agile. It was nice to be able to ask questions using Twitter. I was particularly interested in Kanban, and managed to tweet a Kanban-related question for Bruce Taylor from the comfort of my phone. By the way, my boss was also one of the panel members.

This was followed by the lightning talks, my favourite of which was Ben Arnott's Agile@Home. A light-hearted, entertaining contrast to the other serious topics of the day.



One of the lightning talks


The last full talk I attended on Day 1 was Craig Smith's Building An A-Team. The content itself was nothing new, mainly around how to identify and lead good teams. However it was concisely and brilliantly delivered with good humor.

Finally I decided to pop into the Agile Games session next door midway. This was what I saw :


Not too sure what was going on here


Groups of people throwing balls around. After 30 minutes and still failing to make sense of this, I switched to another room and caught the end of Jay Jenkins' talk on how ANZ did Agile.

Thus ended Day 1.

DAY 2

The second day started with an awesome talk by Martin Fowler. He reminded us of the reasons why we did Agile, the advantages of adapting to late changes, the importance of continuous integration and delivery, and finally the different types of technical debt. Of course, the best part was his impersonation of Uncle Bob Martin.


Martin Fowler giving the first talk of Day 2


Next, I attended a couple of more practical talks. First was Jason Yip and Marina Chiovetti on how to properly measure and assess Agile adoption and success in different organizations. They pointed out that external assessments were misleading because results could be faked. Only when an organization defined a vision ("true north"), be transparent and internally reflected on how it was progressing towards this vision could it have a true understanding of its level of Agile adoption.

The second talk was very relevant to me as a developer. Chris Mountford described how he solved monster builds problems in Atlassian. His approach involved the following:
  • Always measure first
  • Be selective about what to test
  • Parallelize tests
  • Canary tests with a good proven version to detect environment/external problems
  • Choosing the right tools


At this point, the #agileaus Twitter feed was flooded with reports of how fantastic talks in the other rooms were. All of the talks during this time slot looked interesting, but alas I could only be in one place at a time.

I felt lunch on Day 2 was a slight improvement over the day before. The salad, rolls and sandwiches were still there, but they tasted a bit better, or maybe I'd lowered my expectations.


More salad, rolls and sandwiches for lunch


In my opinion, the talk with the best analogy (Death Star) and slides would be Nigel Dalton's talk after lunch. Nigel described how various non-IT teams (lawyers, finance, publishers etc) in Lonely Planet adopted Agile. Photos of their various Kanban boards managed to convey how these teams track their work in a highly effective and visible way. It was reassuring to know that Agile was not just restricted to us IT folks. Having personally spent a few months working at the Lonely Planet office in Footscray a few years ago, I was happy to see such a drastic transformation throughout the company.


Nigel Dalton described the Death Star as the perfect Agile project : "Build the weapon first!"


Nigel's entertaining presentation was followed by a more serious, enterprise-level talk by John Sullivan from Sensis, on how best to do "Enterprise Architecture" in an Agile company. This was a topic that interested me as a developer. Some of John's main points were:
  • Traditional enterprise architectural groups were unnecessary barriers between developers and business
  • Architects produced elegant but unworkable solutions
  • Better to form a temporary group of senior developers to sit with business in a requirements gathering session to identify key business and technical requirements
  • Implement an initial version of the architecture in code, or sometimes spikes, to gain technical insights to be able to provide estimates
  • "Architect" as a temporary role on an as-needed basis, not a job title
  • Get rid of people who get in the way
  • Split the backlog into
    • in-build : Only build this, but make the system extensible
    • in-plan : Something to keep in mind, but expect this to change
    • future-release : (I would guess don't worry about this)



John Sullivan declaring the end of the Enterprise Architect job title


Up to this point, DevOps people might have felt a bit left-out. Luckily, Jez Humble changed that with his informative presentation on DevOps and Agile Release Management. This was another area I had a special interest in. Jez stressed the importance of the definition of DONE, i.e. DONE when a feature got to production. The problems he presented were that DevOps people:
  • used to see changes as too risky
  • resisted new changes because they favoured stability
  • spent too much time firefighting rather than doing strategic work
. The solutions he presented were:
  • Culture : Have cross-functional delivery teams. Adopt Kanban to schedule work.
  • Automation : Environments could be procured using cloud computing and configuration managed by Puppet or Chef. He even mentioned cucumber-nagios which interested me a lot.
  • Measurement : Collate business and technical metrics. Perform root cause analysis.
  • Sharing : With big visible displays
  • Overcoming objections : By showing visibility, control, automated scripts and auditing
  • Deployment pipeline : Automatic deployment to various environments including production.
That was a lot of new tools for me to read up on.


Jez Humble talking about DevOps


Finally, I attended the Open Space session, first with the lightning talks group, then finally with a group discussing automated performance tests. The idea sounded good, but I felt there wasn't enough time to flesh out too much technical details.


One of the Open Space lightning talks


At 4:30 pm, snacks and drinks came out for the final networking session that concluded the conference.

CONCLUSION

Overall a worthwhile conference to gain an overview of the current state of Agile. I was glad to see the previously neglected area of DevOps getting some attention. As for the technically focussed talks, I would have preferred:
  • more technical depth
  • updates on the latest development, testing or monitoring tools
  • some discussion on the latest Agile practices when developing on mobile devices


Maybe next year...