Categories
Development

JavaZone 2008 is over

So JavaZone 2008 is over. Had a blast, and saw lots of cool stuff. It was a bit crowded some times, and a bit too many talks was full, but all in all good. Just a short summary for on the good stuff:

  • Heidi Arnesen Austlid on Open Source in the public sector – The government in Norway has a strong preference for Open Source. The motivation for this is to reduce costs, enable exchange of information through open standards and take back control of their it-systems.
  • Rickard Öberg on Qi4J – A good introduction to the component oriented stuff Qi4J is built upon. Everything i compiled by the Java compiler, and everything is refactorable. Really nice stuff, that will be extremely interesting once it matures.
  • Mary Poppendieck on the Double Paradox of Lean Software Development – Mary is always interesting. Utilisation is not the thing to strive for, throughput is. In fact if you maximise utilisation for the expected you have no capacity to handle the unexpected and performance will suffer severely when the unexpected occurs.
  • Robert C. Martin on functions for Clean Code – Uncle Bob is also one of those really good speakers that are always entertaining. A good talk on the basics of function design and how to make this readable and maintainable. Most of us has a lot to learn about pretty basic things, and that a lot of this basic training in good programming (often good OO) is ignored in our education.

Reviewing the program I now see that I have missed more good talks than I really wanted. A mix of bad planning, beer and walking around meeting people will have to take the blame. 😉 I hope they publish most talks as videos later on.

Great conference, see you next year. 🙂

Categories
Development

Learning Scrum

Geoff Watts was in Oslo a while back giving a talk on how British Telecom introduced Scrum to the organisation. Important elements in his talk was how to motivate, and how to let experience gained in some teams propagate to other teams. To summarize in short it was by stating the goal instead of how to do it (deliver something every 90 days), and have experienced coaches come in and lecture but also participate in the new teams that are just started and trying to find their way.

Similar and more specific ideas can be found in the slides Jeff Sutherland did at Google. I would love to hear the talk, but the slides gives a lot of interesting information on how they introduce new teams to Scrum at MySpace. Some of it seems a bit harsh, but I do actually believe some teams needs a painful bootstrap to get into it.

Categories
Development

Agility in operations

It seems like Facebok is pretty agile in how it handles new features and roll outs. According to an article on the High Scalability site they actually do major releases every week. One of the things that struck me was this:

Be Innovative, Not Safe. Fear of failure often shuts down the organizational brain and makes it hide behind excessive rules and regulations. A technology company should have a bias towards action and innovation. Release software. Don’t stifle genius. Rely on your tools and processes to recover from problems.

This isn’t a solution to problems, but it is a pretty accurate description of what I want to achieve myself. Making a release shouldn’t be difficult or scary. This means that we need tools and methods that:

  • Enables us to be relatively certain that we don’t introduce any errors
  • Enables us to recover from a failure, because we will eventually fail

Tools like JUnit, Fitnesse, Selenium are all tools that allow us to verify the behaviour of our application. They help us verify that what we have done doesn’t introduce any errors. This should enable us to roll out quite easily, but I think in many projects one doesn’t trust the quality of the tests and you fear rolling out because you don’t have a good recovery plan.

I think we have a lot of tools available to us when it comes to writing tests, we just have to get better at using them, and eventually improving the tools. Where we seem to be missing is the part where we do good rollbacks. Maybe we don’t even need tools for that? I’d like to hear how you do it, and what tools you use or are missing.