The ACCU 2009 Pre-conference Tutorial Day (21st April 2009)
In addition to the excellent programme, we are again proud to present the pre-conference tutorial day. Come to the event a day early, and benefit from a full-day tutorial from some of the leading figures in the industry. This year we are proud to present tutorials by Linda Rising, internationally known expert on topics related to patterns, retrospectives, and the change process; Alisdair Meredith, the UK's leading technical expert on C++0x; and Steve Freeman and Nat Pryce, international authorities on agile development, and the developers of JMock mock objects framework for Java. This is a great opportunity to expand your technical knowledge, by learning from the very best.
The pre-conference tutorial day is 21 April 2009, with tutorials running from 10:00 to 17:30.
Fearless Change: Patterns for Introducing New Ideas
presented by Linda Rising
We attend conferences or read books and articles discover new ideas we want to bring into their organizations—but we often struggle when trying to implement those changes. Unfortunately, those introducing change are not always welcomed with open arms. Linda Rising offers proven change management strategies to help you become a more successful agent of change in your organization. Learn how to plant effective seeds of change, and what forces in your organization drive or block change. In addition to using these approaches to change your organization, you can use them to become a more effective person. Come and discuss your organizational and personal change challenges. Linda shows how the lessons from her book, Fearless Change: Patterns for Introducing New Ideas, can help you succeed. Learn how to overcome adversity to change and to celebrate your improvement successes along with your organization's new found practices.
Up and running with C++0x
presented by Alisdair Meredith
This tutorial will break into three packed sessions. The first will take a look at the new standard memory model, support for concurrent execution and atomic operations. The second will take a look at designing new interfaces in code, highlighting rvalue references, variadic templates and lambda expressions. Examples will focus on how these features drive the new thread library, rounding out the concurrency support. The final session will take a deeper look at templates, with a major focus on concepts, introducing the new containers, iterators and algorithms library to provide examples. By the end of the day the attendee will be familiar with the major new language features and a large part of the library.
Prequisites: A good knowledge of existing C++ language and library, a passing knowledge of TR1 would help. Compilers will be listed nearer the time (session 2 would use a mix of GCC 4.3 and VS2010 CTP, session 3 requires concept GCC, thread libraray via Boost or Just Software. Session 1 is mostly theory - but we expect a broader range of support before conference time)
Description: The goal of this tutorial is to teach the major new features of the new C++ standard. These are seen to be (i) concurrency support (ii) concepts (iii) features for better [code] interfaces. This is a lot of material to present in a day, when you combine language and library, so the vast majority of examples to teach the language features and design will be pulled directly from the standard library. For example, the thread library will be introduced to teach move semantics (locks) and perfect forwarding (thread/function) - although additional time will taken to provide a solid grounding in the thread library too. Likewise, iterator categories, containers and algorithms provide great examples for concepts, and various approaches to designing concept-enabled libraries, but this also provides an introduction to the revised library. As far as possible the material will be supported by publicly available compilers, although there is no single compiler that covers everything (yet). Specifically all of the planned second and third sessions can be supported today via ConceptGCC, GCC4.3, or the VS2010 preview.
Growing Object-Oriented Software, Guided by Tests
presented by Steve Freeman and Nat Pryce
Test-Driven Development (TDD) is a deceptively simple idea: write the tests for your code before writing the code itself. We say "deceptively simple" because this reversal fundamentally changes the role of testing in the development process. The tests are now about helping the team to understand the features that the users need and delivering those features reliably and predictably. When followed to its conclusions, TDD changes the way we develop software and, in our experience, hugely improves the quality of the systems we build.
This advanced tutorial is for developers who have started with Test-Driven Development and are looking for deeper understanding. We will show how TDD fits into the whole development lifecycle, with an extended example started from scratch.
We will cover topics such as:
- What's the point of Test-Driven Development
- Kick-starting the TDD lifecycle
- Growing features test-first
- Maintaining the TDD lifecycle
- Object-oriented design with Mock Objects
- Working with third-party code
- Learning to listen to the tests
- Testing asynchronous code