This years jfokus has ended and here is the summary of my whereabouts at the conference. Firstly - practicalities - the conference has moved from Electrum - a conference center in high tech industrial suburb Kista north of Stockholm - to Filmstaden Sergel - probably the biggest movie centre in central Stockholm. This means that more people can attend and that the choice of great pubs after sessions is much, much better.
First day is tutorial day. I aimed for maximum fluff so I turned down interesting offers about HTML 5, JavaFX and JPA/JAXB integration in favour of sessions about hyperactive teams running on scrum and the pomodoro technique, a personal micro time management method. Both sessions were definitely interesting.
From the first session - by Adam Skogman of Skåne based consultants Jayway - I expected more about increasing productivity in an already up and running Scrum team. Instead the session was kind of a recap of Scrum basics with some pragmatism added. So lots of the stuff was already known to me. Nevertheless useful since I work in a scrum team now and it is good to be reminded of some of the practices. One thing I have been thinking about a lot lately is how to integrate test people with a scrum team. Adam suggested that test persons write test cases (as they always do) but they are then not tested manually but handed over to developers that implement the test cases as automated tests using Selenium (or WebTest). Will try to persuade our test leader about this approach. Manual test will still be needed but more for usability reasons. Functionality should be possible to test automatically all the way. Another good thing with this session was that I finally understood the idea of estimating with points rather than hours. Might blog more about that later.
--- photo by Marco a.k.a. Mark_66it over at Flickr
The second tutorial about the pomodoro technique was far too long but introduced a very interesting concept that I actually might try in the future. The point is to chunk up ones time in 25 minute blocks and within each block focus on exactly one task. Pick a task, work on it for 25 minutes, rest 5 minutes, pick a new task or stick with the last one, work for 25 minutes, rest for 5 minutes. A 25 minute period is called a pomodoro. If you are disturbed during a pomodoro the pomodoro is lost and you will have to restart. If you are disturbed but manages to reschedule the distorsion you are fine. The progress is recorded: how many pomodoros you managed during a day, if you get distrubed and if it was internal (self inflicted) or external (phone, mail, questions). At the end of the day there should be time for some reflection on the day that passed so that improvements to the process can be made. Read more about it at Staffan Nötebergs blog.
Second day is conference day. It started with a keynote about JavaFX of all things. Interesting concept but maybe not that interesting. A rather boring and fluffy presentation. But to be fair I wrote the first part of this blog post during the session so I never really gave Mr Ritter from Sun a chance to get my full attention.
Then I went on to HTML 5 and its web sockets thing that brings full duplex communication to the browser world. Interesting stuff. The presentation was a bit technical but the implications of this new possibility worth pondering about for a while.
After that I listened to a low detail take on performance and tuning that ended with a long description about how to make a hash thread safe and fast. I never really got it. Might have been a problem on my end - not sure. What I really missed though was a stern warning about doing premature optimizations. Talks like this might cause developers to go back to work with performance as one of their highest priorities which might not be good at all for the system at hand. Only tweak stuff like this after metrics show you that it is necessary. Lunch after this was refreshing.
I had a hard time deciding what to do after lunch. Would I listen to DSL with Groovy or Domain Driven Design (yet another silver bullet?). Or maybe join the suits about agile organisations. Hanna convinced me that "Controlling your architecture" was the right thing to do. Turned out that this talk was interesting although it was much more about code and design than about architecture. Might be that the speaker only had experience from smaller systems. Anyway - I got with me hints to several tools that I would like to try out. Structure 101 seems to be a really nice code analyzer that generates graphs of package and class dependencies resulting in a very god overview of the system. I hope it works with Hudson.
Finally time for my co blogger Hardy to enter the scene with a 15 minute lightning talk on Hibernate Search. With new really nice slides he managed to get a lot of information out in a very short time. Well done! He makes a strong case for using Hibernate Search when full text search needs to be combined with the real objects that hibernate provides. Hibernate Search removes the need to code this infrastructure by oneself.
Then a semi weird talk about dependency injection which gave me some nice insights into Google Guice. The talk ended with paraphrasing the pragmatic programmers suggestion to learn one new language every year with learn one new dependency injection framework every year. Hmmm - I certainly don't wanna do that.... Dependency injection is a nice thing but what we often forget is that we are adding complexity when we introduce it. It makes code harder to follow and read in exchange for increased testability and loose coupling. I dare say that dependency injection is not always the solution. As always - it depends.
The conference day ended with a great talk about how to turn good developers into great developers by Chris Hedgate. Lots of common sense: don't be a star - be a guide and lead by example. Take the time to work with good developers so that they also one day might become great. Chris also made a great refactoring demo to illustrate how a great developer thinks. Simplify always. This was a great end to 2 nice days with some highs and some lows. For me - the best part is to meet and talk to many friends from previous projects. Some of us continued talking at the conference pub at Grodan and then later at Monks Bar.