Passionate Product Ownership - Jeff Patton
Brisbane, Aug 22- 23Sydney, Aug 24-25 | Canberra, Aug 29-30Melbourne, Sep 1-2  This two day workshop takes on the bad assumptions and bad practices that often emerge from overly simplistic approaches to agile development and Scrum. Jeff Patton will leverage his past product leadership experience, and years of coaching product teams to teach an effective product ownership strategy.


 Introduction to Functional Programming - Tony Morris
Melbourne - 20 AprilBrisbane - 26 AprilPerth - 5 MayThis lead in one day event for our Lambda Jam Conference in Brisbane provides a hands-on introduction to the principles of Functional Programming.  You will solve simple problems using the Haskell programming language, then move up in difficulty as time permits.  For programmers with a basic understanding of functional programming principles and vocabulary, you will gain a firm grasp of the practical application of monads, in any programming environment. You will be able to demonstrate to your friends and colleagues the meaning and application of this useful programming tool, along with many others.
 Working Effectively with Legacy Code - Michael Feathers
Perth - 5 May | Sydney - 9 May | Melbourne - 10 May
Test Driven Development and Refactoring are powerful tools. With them you can add new code to systems and make existing code more maintainable. However, refactoring code without having tests in place can be hazardous. This workshop presents a collection of dependency breaking and test writing techniques that can be used to get existing code safely under test for refactoring. These techniques can be used in conjunction with Test Driven Development to breathe new life into large existing code bases. This one day workshop includes talks, discussions, and hands-­on exercises.

Beyond Error Handling - Michael Feathers
Perth - 6 May

It would be easy to say that error handling is a black art in software development but that implies that there is some secret stash of knowledge out there. The truth is that we tend to think of error handling as a "lesser concern." If we know how to throw and catch exceptions, we feel that we are okay. The fact of the matter is ­ we aren't okay. Error handling in applications is often a symptom of incomplete design. This course will focus on techniques you can use to systematically increase the robustness of code by rooting out potential errors and designing them away.