Through the use of workshop activities, labs, interactive exercise, or simulations, attendees will increase their knowledge and develop skills while tapping into the wisdom of other participants. Pre-registration is not required, however space is limited. Experiential sessions are open to VIP conference pass holders on a first come first serve basis.

Full-Day Experiential
Tuesday, Sept 21, 8:30am-5:15pm
Agile Software Development & The Cooperative Game
Alistair Cockburn
Track: People, Process & Teams Level: BEG
" Agile" is an attitude giving priority to efficiency in the process, and maneuverability with respect to changing requirements, technology and team. Having the agile attitude does not yet make for a successful project. The team needs a certain understanding of core practices: incremental scheduling and staging, reflecting on its working style every few weeks, concurrent development, paying attention to the strong points of humans without building on their weaknesses, among others. This session consists of a mixture of lecture, exercises, and discussions. You will gain a sense for how it feels to be doing some of the key practices as well as what how it feels not to do them. The techniques reviewed are valuable in carrying out any kind of project, not only agile ones.


Half-Day Experiential
Tuesday, Sept 21, 8:30am-12:00pm
Domain-Driven Design
Eric Evans
Track: Design & Architecture Level: ADV
Large information systems need a domain model. This session delves into how a team, developers and domain experts together, can engage in progressively deeper exploration of their problem domain while making that understanding tangible as a practical software design. This model is not just a diagram or an analysis artifact. It provides the very foundation of the design, the driving force of analysis, even the basis of the language spoken on the project. The session will focus on three topics: The conscious use of language on the project to refine and communicate models and strengthen the connection with the implementation. A subtly different style of refactoring aimed at deepening model insight, in addition to making technical improvements to the code. A brief look at strategic design that is crucial to larger projects. These are the decisions where design and politics often intersect. The session will include group reading and discussion of selected patterns from the book Domain-Driven Design, Addison-Wesley 2003, and reenactments of domain modeling scenarios.

Half-Day Experiential
Tuesday, Sept 21, 1:45pm-5:15pm
Skills for Agile Designers
Rebecca Wirfs-Brock
Track: Design & Architecture Level: INT
Agile designers see the essence of a design problem and quickly shape reasonable solutions. When things don’t go according to plan, they react, readjust their thinking, and try again. To pull this off, agile designers need to be skillful problem solvers and communicators (and no, that doesn’t mean just writing clean code or producing barely enough UML). This session introduces several techniques and language for seeing and articulating design problems and crafting solutions. The session will touch on strategies for finding and characterizing objects and their behavior, designing application control centers, adapting patterns to fit your context, and framing your current design problems. You'll receive some language to characterize your design challenges and some techniques for adjusting effort to fit the problems at hand. You will get to practice some "seeing" and "framing" skills with hands on exercises.

Half-Day Experiential
Wednesday, Sept 22, 1:45pm-5:15pm
Managing Global and Distributed Teams
Rick Brenner & Ken Pugh
Track: People, Process & Teams Level: ALL
Miscommunications, misunderstandings, and interpersonal conflict thrive in the typical environment of the distributed team. Distributed teams, and especially global teams, are more likely to face these issues because of time-zone offsets and differences in organizational culture. Global teams are not only more geographically dispersed than domestic distributed teams, but they're separated by language, culture and a large number of time zones. In this session, we'll inventory the challenges faced by distributed teams and global teams, with special emphasis on the problems of managing outsourced elements, both domestic and offshore. We'll provide tools for anticipating and addressing the challenges managers face, and suggest ways to deal with crises that develop when global or distributed teams run into trouble. You will have the opportunity to participate in several interactive exercises to experience both in-sync and out-of-sync communication.


Half-Day Experiential
Wednesday, Sept 22, 1:45pm-5:15pm
Agile Implementations, Agile Impediments, and Agile Management
Ken Schwaber
Track: Process & Methods Level: BEG
This session provides an overview of agile processes and describes them by difficulty of implementation - the skeleton, the sashimi, and the heart. The session will also describe how Scrum fleshes out each of these aspects of agile processes. Since it is easy to think one knows what agile processes are like without understanding what they really feel like, two case studies are used. Participants will be divided into small teams that have to plan a facility for trading excess Major League Baseball tickets, and then to respond to a major project change just 30 days prior to implementation. In both exercises, the teams will have the opportunity to work directly with the customer, Mr. Bud Selig, the commissioner of MLB. Having experienced the feel of agile and Scrum, advanced topics such as how to scale the Scrum process, how to use Scrum with Extreme Programming, and the relationship between Scrum and CMM are covered.

Full-Day Experiential
Thursday, Sept 23, 8:30am-5:15pm
Agile Model Driven Development (AMDD) Workshop
Scott Ambler
Track: Design & Architecture Level: INT
How do you successfully model the complexities of modern-day software without getting bogged-down in mountains of paper work? How do you effectively engineer the requirements for your system? What techniques can you apply to analyze those requirements? To design your software? This class is a straightforward, easy to understand introduction to the principles and practices of the Agile Modeling (AM) methodology and the effective application of object-oriented (OO), component-based, and essential modeling techniques for developing requirements, analysis, and design models. It includes the industry-standard techniques of the Unified Modeling Language (UML) v2 but goes beyond them to be sufficient for the real-world development of modern business applications. You will learn how to pick the right technique(s) for the job because you don't need every type of modeling artifact for every project, but you do need to understand the individual techniques so they are available to you when you need them. During this session, you will learn fundamental modeling skills needed to develop real-world business applications. You will work in small groups to model a real-world business case study.

Half-Day Experiential
Thursday, Sept 23, 8:30am-12:00pm
Architecting Challenging Scalable Enterprise Applications
Bruce Martin
Track: Design & Architecture Level: ADV
This session tackles the hard problems in architecting, designing and deploying scalable enterprise applications. An on-line Internet auction system is used as a real-world example when discussing the architectures of scalable enterprise applications. The requirements are to build a highly dynamic auction system with over two million bids placed and 500,000 items sold daily, one million visitors per hour and 24 x 7 operation. The class will address J2EE scalability, load balancing, fault tolerance, how to design applications for scalability, application server and database clustering, persistence choices, transactions and how to minimize the risk of an unsound architecture. The format of the session is highly interactive. Group exercises will allow you to apply the presented concepts to the design of the auction system. The exercises result in detailed synergistic discussions. You will learn a lot of techniques for architecting scalable enterprise systems, not only from the instructor's experience but also from the experiences of their fellow participants.

Half-Day Experiential
Thursday, Sept 23, 8:30am-12:00pm
Interviewing With Ease
Johanna Rothman
Track: People, Process & Teams Level: BEG
If you're like most technical people, you've never been trained to interview candidates. If you're lucky, you've learned a little about behavior-description questions, but not enough about auditions. In this session, the instructor will explain a variety of interview techniques, applicable to phone screens and in-person interviews for technical staff and managers alike, and then the class will practice them. Come with your hiring problems and we'll develop (and practice) auditions for them. You'll learn how to create an audition for a technical role and how to end a phone screen or in-person interview. You will practice selecting and asking questions for a phone screen or an in-person interview. The session will also explore successful interviewing. You’ll practice behavior-description questions, auditions, and riddles, to help you practice how to answer, so that you can progress in the interview.

Half-Day Experiential
Thursday, Sept 23, 1:45pm-5:15pm
Supporting the Release Lifecycle
Louis Taborda
Track: People, Process & Teams Level: ADV
A candid and stimulating discussion on what works (and what doesn't) as a project builds momentum and we head towards release-date. We will follow the lifecycle of a software release as it is defined, planned, developed, tested, integrated, and finally delivered. This is a high-level process forum where we look at the support and infrastructure essential for software development. We'll discuss planning a release, configuration management processes and patterns, what has to be done as we approach the release milestone, how we get a release out-the-door, and what we must do immediately following release. It should be fun and relevant for everyone—but it’s not just about coding, it is about getting the solution to the customer!