Posted by johnsmart
on January 12, 2009 at 9:00 AM PST
Last year, I had a lot of fun delivering the Java Power Tools Bootcamps in all sorts of different places, for all sorts of different organisations, and got a lot of very positive feedback. But people often wanted more. So this coming year, I'll be running them again, but in an expanded and updated form.
The 2008 Java Power Tools bootcamps were tailored for organisations trying to get started with techniques like build automation, TDD and CI. The basic course is quite flexible, however, and the content and level of detail varies from session to session depending on the requirements and preferences of the students. The course is great for shops that still have little or no (or possibly out-of-date) built automation strategies in place (and there are more organisations of this type out there than you might think!). But I've also given the course to organisations and students who are more familiar with the basic concepts and many of the techniques, but who want to get up to speed in other areas (such as Maven 2, BDD, or distributed CI strategies), or who want to get a well-rounded picture of the state of the art in build automation, TDD, BDD, CI, and so forth.
One of the great things about the new 5-day format is that it gives more time to cover more advanced topics such as automated release and deployment strategies with Maven 2 , Nexus and Hudson , advanced multi-module Maven projects, distributed builds, and more advanced TDD and BDD testing strategies.
Another innovation is the variable-speed labs. The labs start off with fairly simple exercises, and become progressively more complicated and more real-world-like. This lets people do the labs at their own pace. The more advanced exercises are optional, so people can take them home to do after the course if they don't have time during the workshops. At the same time more advanced students get some more realistic exercises to get their teeth into. For example, a lot of time is spent on Test-Driven Development and Behaviour-Driven Development. Labs in this area are often very simple - indeed, they have to start off this way so that people can come to grips with the basic concepts. However, it is nice to see how they apply to cases closer to those you find in the real world. So some of the advanced exercises (and course material) covers things like TDD with web applications, TDD with databases and TDD with legacy code.
In the new version of the Bootcamps, we also cover unit and integration testing in Groovy and JOLT-Award finalist easyb in a fair bit of detail, including web testing (Selenium ), database testing (dbunit ) using Groovy and easyb, and web service testing using SoapUI . We also talk about Sonar , a great tool for consolidating code quality metrics in one place.
We also cover more advanced CI integration strategies, including scaling CI, using CI with multiple SCM branches, automating deployment to different environments, co-ordinating releases with CI, integrating with tools like trac and JIRA, and so on.
I'm really looking forward to this season of bootcamps - I think it will be a lot of fun, and give enough time to both cover the basics and still get into some of the more advanced topics, or, for more advanced students, skim over the basics and concentrate on the advanced material in detail.
For anyone interested, the course is going to cities in Australia and New Zealand, but also the states (San Francisco in June) and to the UK and Europe (dates currently being organized - stay tuned!). We also do on-site courses, which can be customized somewhat to your particular needs. Check out the details here .