Sunday, March 22, 2009

No Fluff, Just Stuff, Spring 2009 Day 3

Today was the final day for Spring 09 No Fluff. Another good day, quite enjoyable, but I'm glad it's over. I need to get some rest. I spent several (three to be exact) sessions with Stuart Halloway.

My first session was Agile, Relevance Style where he talks about how his company (Relevance) "does agile." It's a topic that's of interest to me in part because my company is using Scrum (an agile method) and I'm always interested about how others do things. I figure I may get some ideas that may help my own organization. He mentioned that they use two week iterations at Relevance. I've done some thinking and experimenting with two week iterations with my team (as a company we tend to use four week iterations). He made a comment that I think made a lot of sense: "For systems that don't have a good codebase, have poor test coverage, etc. - this may push you to longer iterations." The implication was that the technical debt the team has to deal with makes getting something working take longer, and thus lengthens the feedback loop. Made sense to me.

Some of the things I found interesting in this talk:
  • "Are you building systems to enable capable people to do things, or a system to prevent less capable people from doing bad things?"
  • Their iterations are bound to work days, not calendar days. This makes all iterations a constant (working day) length, thus making planning and project statistics easier and more meaningful.
  • They don't estimate hours for their story points. They rely on the "law of large numbers" to smooth out the variations in task estimates.
  • Looking at story points and hours is like looking at climate and weather. He was trying to explain the difference between looking at trends (or burn down) at a macro (climate) level, not a micro (weather) level.
  • Whenever possible, they pair everything, including business analysis, iteration reports, etc. Anything that requires "knowledge work."
  • "Why pair? Agile is about having the tightest possible feedback loops."
  • All refactoring is built in to estimates.
  • They have four day workweeks. Every Friday is their "20%" time. They work on open source projects, etc. They all do this on the same day, and don't interact with outside customers.
He also mentioned a video interview he did with on feedback loops in software development. I haven't checked it out yet, but it's on my list.

The second talk I attended was Taking Agile From Tactics to Strategy also by Stuart Halloway. This was a continuation of his previous talk, and talked about things at a higher level from his previous talk. Highlights:
  • "Agile works where risk and uncertainty are king." (we was talking about all knowledge work, including software dev).
  • All story points tasks are on a bell curve. For example, some two point items are bigger than others, some are smaller." This hit home with me.
And my favorite line from this talk:
  • "Code rots even if you don't touch it."
He was talking about the need for constant refactoring. Again, this really hit home.


The post lunch talk (number three) was also with Stuart (it may seem as if I was in a rut, but he's a really good speaker). This one was a departure from his Agile talks, and instead was on alternative languages on the JVM. The talk, Java.next #1: Common Ground, was quite interesting, and explored commonalities bet wen various "alternative" languages for the Java Virtual Machine, like Groovy, Scala, Ruby (in the form of JRuby) and Clojure. Again, some highlights:
  • "Design patterns are the crap we couldn't figure out how to reuse or build into the language." I've also heard Neal Ford sum it up another way: "Design patterns cover up code smells."
  • All objects in Clojure have equals and hashcode defined properly be default.
  • Checked exceptions violate encapsulation. It was an interesting experiment. It failed and we should get rid of them. He point out one of the few things Microsoft didn't copy with .net was checked exceptions.
  • The language Fan was one of the few that made a conscious decision to run on the JVM and on the .net CLR.
And the most interesting (and, depending on what you believe and what you do) scary quote:
  • "It is getting close to being professionally dangerous to start doing greenfield development in Java"
Note that he wasn't talking about the JVM, just Java the language. He also said that "I think we'll get another 10 years out of the JVM."

The fourth and final talk I went to was Become a Maven Maven, given by Srivaths Sankaran. I don't know a whole lot about Maven, and need to learn more as we're converting all our Ant scripts to Maven. Seems like it will be a big win.

Phew! It was a long day, and a good conference. I'll post a wrap-up of the conference after I've had more sleep...

No comments:

Post a Comment