My goal was to get some clarification, or concreteness, on the concepts I've been collecting in my head: Cloud, Google as a dev environment, Grails, NoSQL, etc. I haven't kept pace with the industry and I have a nagging suspicion that I need to change the way I think about development.
Overall I had a great time and learned a lot. The venue and amenities were fine, although the rooms were a bit cramped at times. This was a full three day event (Friday, Saturday and Sunday) and much to my surprise, I wasn't "full" on the last day. I could have kept going. But now I need a month off to pursue the all the ideas I've accumulated over the weekend.
The first day was about doing. I attended 3 sessions presented by Jeff Brown:
Enterprise Applications With Grails
GORM Inside and Out
Building Twitter with Grails in 90 Minutes
I didn't have any prior exposure to Grails, which is a framework for building CRUD web apps using the Groovy language. Grails is powerful and easy to use. It abstracts and automates the common tasks of web app authoring. During the session I was able to quickly set-up and use Groovy/Grails and by the end of the session I had a simple web app running.
One of my 2010 goals is to port my "breakable toy" JSF/Java web app to a new language. Prior to this session I was thinking about Ruby as the new language. After this session I think I'll give Grails/Groovy a try.
GORM is Grails Object Relational Mapping. It sits on top of Hibernate and makes it easy to deal with persistence.
In the final Grails session we were able to create a web app with the following functionality (in just 90 minutes!):
login / logout enter text on web page save in db query db display entries saved in db caching post / consume JMS messages
Prior to this introduction and use of Grails I didn't really understand how frameworks make development easier. But the sessions gave me an "aha" moment in understanding the abstraction of authentication, data input/display, persistence, etc.
The second day was mostly about thinking. I attended the following sessions:
Complexity Theory and Software Development by Tim Berglund
Decision Making in Software Teams by Tim Berglund
Pragmatic Architecture by Ted Neward
Architectural Kata Workshop by Ted Neward
It was interesting to discover the overlap between the books I have been reading and what was presented in the first two sessions. Seems like I gravitate towards human interaction topics. All of these sessions got my mind going. One of my biggest challenges is affecting some kind of change that can eliminate the downside of focusing strictly on the technical side of software development.
The third day was a mix of thinking and doing. I attended the following sessions:
Cloud Computing Boot Camp on the Google App Engine by Matthew McCullough
GAELYK - Lightweight Groovy on the Google App Engine - Tim Berglund
Busy Java Developer's Guide to MongoDB - Ted Neward
Hacking Your Brain for Fun and Profit - Nathaniel Schutta
Learning about the Google App Engine and MongoDB forced me to alter and expand my software mindset. Thanks, I needed that!
The only session that didn't rate excellent with me was the Architectural Kata Workshop. I was hoping to pick up some architecting skills but because of the attendees' skill variance and lack of domain knowledge of the kata, most of our time was spent trying to define and understand requirements.
Overall, I'm very satisfied and glad I attended. I'm looking forward to next year's event. The main takeaway for me: Don't think "Java" anymore, think "languages of the JVM."