Sunday, September 19, 2010

Pacific NW Software Symposium

This weekend I attended the Pacific NW Software Symposium - part of the No Fluff, Just Stuff tour.

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."

    1 comment:

    Jose Fernandez said...

    I agree fully with your comments. NFJS was excellent and I fully intend to attend next year.

    I also expected to be "full", but found myself invigorated instead. I wish there were more hours in the day.

    I wasn't very much into polyglot programming myself, but after this weekend I have also changed my thoughts to the JVM as a whole instead of pure Java.

    It's a great time to be a developer!