Upcoming Workshops

Object-Oriented Design using Agile Processes

We offer two public classes, presented back to back over the course of one week. Between them, they cover the entire Object-Oriented Design and Construction process, focusing specifically on the needs of an Agile-development shop. They can be taken together or separately. Both classes (and others) are also avilabie for in-house presentation.

This workshop focuses specifically on how to do Object-Oriented Design in an Agile (Scrum and XP) environment, where requirements are constantly shifting and you're working on a two-week development cycle. The workshop introduces both Agile and OO-Design principles, and the core of the class is a multi-day hands-on exercise in which you take an idea from conception through to a workable OO design expressed in UML using Agile techniques. We solve a real-world problem provided by one of the class participants, creating user stories, developing use cases, and building static and dynamic object models from which you can code. The workshop is a great way to learn how to do OO "right."

"I'm really convinced that the OO-Design workshop is by far the most effective way to learn OO design. The practical experience that you get really makes the methodology sink in, and you'll come away from the workshop understanding enough to actually do OO design in the real world."

Agile projects fail if you don't implement them in a way that can accommodate the needs of the process (constant refactoring, changing requirements, short cycle times, etc.). Without an Agile-aware architecture, your program simply won't be able to adapt. This class dives deeply into implementation-level architecture you need in a successful Agile project, covering both essential design principals and also the relevant "Gang of Four" design patterns. Our approach shows you how the patterns actually appear in nontrivial programs, so gives you a real-world understanding that you can't get from the more typical catalog-of-patterns approach.

Projects

JustATodoList.com

Make your to-do list your home page. This simple to-do list application (which runs fine on an iPhone and all the major browsers) lets your organize your to-do items. It's also a good example of an AJAX application built with the Google Web Toolkit (GWT).

Books

Holub on Patterns: Learning Design Patterns by Looking at Code

To be a good object-oriented designer, you have to know the design patterns cold, not just what they are, but how to apply them to solve real problems. Most books on the subject leave you in the lurch in the how-to-apply-patterns department. They catalog the patterns for you, but provide trivial examples that give you no real understanding of how the patterns work in the real world. Their examples don't show you the complex interactions between patterns, or the myriad ways that a pattern can be realized. Too many of the pattern books are filled with impenetrable academic prose that doesn't make the subject any easier.

I wrote this book to fix these problems. Get more information on the book's support page.