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!