Preface

 

We can’t solve problems by using the same kind of thinking we used when we created them.

Albert Einstein

As I write this passage, I’m flying over the Atlantic Ocean on my way back from Europe to the United States for the second time in a month. This trip was to Tuscany for a meeting to discuss Seam’s future; the previous trip had been to Zurich, where I spoke about Seam at the Jazoon ‘08 conference. The first trip was especially significant to me because it marked the first time in the 30 years of my life that I’ve traveled outside of North America. I was beginning to think that day would never come, but it did, thanks to Seam. (And because my brother purchased the ticket to get me there. Thanks, Kevin!)

You might think I’m ridiculous for attributing this milestone to Seam. After all, how can a framework motivate a person to embark on an unprecedented trip? Before you call me crazy, let me explain how I got involved in Seam and how it influenced me to expand my horizons.

Around the time Seam was being developed, I was spending my days banging my head on a project built using Spring and JSF. For more than a year, I felt stuck in a rut trying to manage the application’s state, wrestling with irrelevant decisions such as whether to name a business object a Manager or a Service, and rationalizing how many layers to use and which layer should take ownership of a given task. All of these distractions held back the project and my growth. I kept looking for some way out.