The Rocky Mountain Software Symposium, or more aptly name "No Fluff Just Stuff" took place last weekend. This was my first time to attend and I was very impressed with the quality of the speakers and material covered.
The majority of the topics centered around Java development and what is happening in that world. As a QA professional that does some development I was in a little over my head, but that served only to make me even more inspired by what I saw and heard. Each one of the speakers was very knowledgeable, prepared, and worth listening to. I only wish I could have attended more of the sessions that I missed.
I decided to list here some the juicy nuggets of knowledge that I left the conference with.
First on the list was the talk on Test Driven Design (TDD) by Neal Ford (http://memeagora.blogspot.com/). Neal's presentation was very well done and opened my eyes to the way I should have been doing automated test development all along. (Automation in QA is really development in it's own right, a subject I will write more on later). The way in which the tests are written first, only to fail, then the code is written to answer the problem followed by the test passing is brilliant. I wish I had thought of it before now or at least read into it some time ago. Further into the presentation Neal showed how his code became more and more simple to read and execute while at the same time methods became more focused and specialized. This process made each method self documenting by the fact that they each were named well and did only one thing. I must read more about this as I integrated it into our process for automated test development. Neal himself is clearly knowledgeable and an excellent presenter.
Next most useful talk was by Ken Sipe (http://kensipe.blogspot.com) on Java Memory, Performance and the Garbage Collector. I have been load testing systems using the JVM on the server for many years and the information Ken showed would have been incredibly valuable in that process. In reality the application experts and java pros should have known their stuff about JVM tuning, but they did not and neither did I. Much guessing and voodoo was done to improve performance instead of accurate measurements like Ken showed us. I will be implementing what Ken shared with us and I expect to save a lot of time by either tuning the JVM or ruling it out as a performance bottleneck based on real data.
I attended another one of Neal Ford's talks, this time on code metrics. Again his presentation was very well organized, informative, and inspiring. For years we have been measuring our development work badly but with good intentions. Neal presented some great tools and ideas with an emphasis on not depending too much on one measurement. For instance cyclomatic complexity is tempting to use across the board but he showed that I does not tell the whole story. I especially liked what he said about "code smell" referring to overly complex routines, copy and pasting, and the lack of TDD.
Ken Sipe's talk on Career 2.0 had some very good food for thought. Some of the things he said that stood out were about increasing your digital footprint with blogging, writing, and so on. That footprint works in your favor to advance your career and expose you to others who may be interested in what you have to share. The other concept he talked about that stood out to me, was his statement about how the company managers a responsible for the company but you are responsible for your career. In many cases advancing your career also helps the company but even if it does not it's still up to you to make sure you are becoming more valuable in your career.
Last but not least, the introduction to groovy by Jeff Brown (http://javajeff.blogspot.com) was so inspiring I could hardly sleep. I was thinking about how I could speed up technical testing in the QA world by writing scripts very quickly. Aside from that immediate business need, Groovy promises to be very useful in so many ways that I am still thinking of them many days later. Jeff did a great job doing demos of how to use the tool and I felt like I could download it and get started right away. Once I get a break I will be diving into Groovy.
I highly recommend the NFJS meetings for anyone working with Java in their projects. I plan to attend the next time it comes up again.