Java forum the other day was a lot of fun. Actually, the whole day was packed with high caliber geek stuff and many interesting and fun discussions. It often turns out that way hanging out with my colleague Niclas Nilsson. Niclas had planned to meet up with Hans Brattberg and Henrik Kniberg from Crisp, which raised the geek factor considerably. Henrik, the man behind Scrum and XP from the trenches, was going to give a talk at Java forum Göteborg - 10 ways to screw up with Scrum and XP - later in the evening. It turned out to be a really good one!
Henrik's talk was touching many of the typical problems he'd been encountering in Scrum and XP projects. My favorite part was the discussion on Technical Debt; Henrik made the point very well. Being able to explain technical things like this so that stakeholders understand is of extreme importance to succeed with agile. Or actually, to succeed with software development. Check out Steve McConnell's blog post on this topic.
The second highlight of the evening was Pär Sikö's introduction to JavaFX. To tell you the truth my interest in JavaFX was not that big. Pär's highly entertaining presentation changed that quite a bit. Not that graphics/UI programming or animations are any of my specialties, it was more the architecture that attracted me; an architecture where the language was an important part. I don't know if JavaFX is a threat to Flash, or if it's better or as good as Silverlight. But I must say that the approach to put a special-purpose language layer on top of an existing technology stack - Java/Swing - to make it simpler and at the same time more powerful was very appealing.
For example the bind keyword, which associated a variable with another variable or a function, so that changes to the source variable automatically updated the other variable. In normal Java code this would require some kind of observer/observable design, which would add considerable levels of noise to a conceptually very simple intention. And then there were triggers and thread handling built into the language. JavaFX seems to be a good example of how simplifying and constraining a platform makes it much more powerful and approachable to a broader audience. I doubt that's enough for success, or if I'll be part of that audience, but it was cool anyhow.
And the evening went on with more discussions, everything from programming languages, the value of EJB and RDBMSs, and UI design to iterative vs incremental development, team coaching, and broken software process metaphors. And not the least: some wise words from Bruce Lee. Some days being a geek is not that bad at all!