JAOO 2009 Highlights

Here we go again

For me, JAOO is the event of the year in the danish software development community.

Last year the buzz was all about functional programming. This years buzz?

Somewhere between cloud computing and self-improvement, combined with pessimistic note

Shu-ha-ri

The best talk was Keith Braithwaters “Techniques That Still Work no Matter How Hard We Try to Forget Them”. He calls himself Old School – old enough to have seen 2 of the 7-year cycles in software development.

Much to peoples amusement, Keith started by announcing, that if IT was a person, It would be diagnosed with
•  ADHD
•  Retrograde amnesia
•  OCD

Things we got right? Nobody has never been as productive as in Smaltalk. 21 years ago. And still is.

There was once a thing called System Analysis … Anyway, somethings wrong with the UML diagrams.

Instead, we should look into how Engineers model:

  • Models are useful for what they leave out
  • Faster, cheaper than building a prototype
  • Models Answer Questions – more quickly and easily than the real thing would

UML diagrams dont adhere to any of these principles …

Architecture Visualization

Michele Lanza , from University of Lugano, Switzerland had a fantastic talk about architecture visualization. Code is text – but we are visual beings. The proper visualization tool should enable us to tell the stories behind the software.

We all know that we should build habitable systems, and that the patterns movement comes from (urban) architecture. CodeCity is the “Habitable” metaphor on stereoids – software packages are converted into cities, classes into buildings, with one floor pr method.

Billede 12

Organizational patterns

This was my moment of enlightenment. I attended the tutorial by Gertrud&Cope about “Fine tuning Scrum”. As well as we have software architecture patterns, deployment patterns, concurrency patterns and … dating patterns, organizations have patterns as well.

Pick a set of them – organize them into a pattern language – and you have Scrum.

Pick another set – and you have XP.

Pick another …

This explains why the thing works – there are patterns underneath.

This made me thinking how this connects to the goals of Enterprise Architecture …

Deliberate practice

Mary Popkins had a fantastic lecture about how we can transform principles of deliberate practice, into the context of software development.

Malcolm Gladwell quotes the 10.000 rule in his book “Success Factors”, and Mary quotes the same research.

10000 hour rule

Any talent which follows deliberate practice for 10.000 hours becomes a Master.

Therefore, we should strive to nurture environments, that let our talents develop under deliberate practice. This requires:

  • Find a teacher / mentor
  • Practice repeatedly
  • Obtain immediate feedback
  • Focus on pushing the limits
  • Practice regularly & intensely

JAOO

I attended JAOO in Århus this year – what a fantastic experience, this conference has a special atmosphere. Denmark is such a small country, you keep meeting old colleauges, classmates, bosses – whatever.
This years buzz was all about functional languages – we finally need to decide what to do with side effects. One possible solution is to have the language give clear, big warning signs.
This is the old semantics vs syntax discussion: Giving clear names, typesafety etc doesn’t help to achieve the big golden dream of (finally!) having reusable software components. What we need to agree is semantics – what does it do, not syntax – how to call it.
I was enchanted by Bill Verner, and his Scala talk, and I am really looking forward to his newcoming Scala book. A typesafe dynamic language that runs on the JVM – I am kind of convinced that this is exactly what we need. To bad the book isn’t coming out before the conference is over – I would have loved a signed copy.
I also enjoyed Michael Nygards talk “Failure comes in flavors” almost without breath – his rant about patterns and antipatterns when time comes to deploying and keeping our applications alive was full of cliff-hangers. Respect. If you ever have a chance to hear this man talk – and if uptime is of any importance to your next web-app – don’t miss him.
I also spent some time discussing lean/agile architecture with James Coplien and his gang. He is promoting DCI – data, contexts, interaction, which is a new paradigm in structuring your applications architecture. James wants us all to move us away from class-oriented programming to true object oriented programming. We spend a couple of hours hanging out, discussing how to translate his example into different programming languages. I myself tried to convince James that you can do it -in Java too. Sitting together, 5 people, around a table, we discovered how we all have been searching for the same answer. Magic of coincidence, or is it the world allready moving in a new direction?