3rd day of JAOO and wrap up
Day started of with a keynote by Cameron Purdy. Basically the talk was about why Java has overtaken C++ as the main programming language and a bit of speculation about the future. Maybe Scala is the next language?
Linda Rising held a talk that was not directly related to IT and certainly could be applied to any discipline. Starting out in the industrial revolution and the introduction of clocks, schedules and plans to mankind she suggested that this may not be the ideal way of life. Until rather recently in the history of men it has been possible to sleep until waken. The physical clock of the body was the only one. Then factories appeared and with them a need to make sure that people worked a certain amount of time every day. We still live under this preposition whether or not it is a valid one. Around the same time as the industrial revolution caffeine came around. So in order to be alert enough to work the exact times that factories required we started to (ab)use this substance. Apparently we miss good research on what caffeine does to our body. We know that it inhibits our feeling of being tired. This could mean nothing or be a really bad thing. Linda showed pictures from an experiment on spiders and their ability to make webs when influenced by different substances. Spiders high on marijuana actually performed better than the ones with caffeine.... Linda went on to talk about sleep patterns and the well-known 90 minute cycle. We probably need 5 such cycles a night and it is a good thing to wake up when a cycle just ended. When woken by the alarm bell the need for caffeine is naturally higher than woken naturally and thus we end up in a vicious circle. This can be extended to the daytime where cycles naturally also is important. 90 minutes work chunks might be a good idea and then breaking and perhaps even napping. Breaks with physical activity is preferable and what we naturally are disposed for. Several studies shows that taking a nap during the day increases our ability to learn. She referenced the pomodoro technique as one way of reaching this way of working. (I wrote about Staffan Nötebergs pomodoro tutorial at jfokus this year. Apparently there is a book coming out very soon.) All these things affects our productivity in the most profound way.
The talk "Organizational Patterns and Scrum: Fine-tuning your Agile Implementation" held by the couple Gertrud Bjørnvig & Jim O. Coplien aka Cope started out with a little play involving people in the audience where proximity between different roles in a team illustrated different patterns. Cope then went on to talk about organizational patterns in relation to Scrum. I didn't know that the first incarnation of scrum actually was a pattern language. He related this to the pattern language he and some others have evolved and published in a nice book. This is indeed interesting stuff in times of naive simplicity and was a reminder to bring forth that book again. Surely there are things to learn and apply in my current context. Cope also mentioned that there will be a ScrumPLoP conference in Sweden next year.
Mary Poppendieck talked about "Deliberate Practice in Software Development" - a talk about expertise. She started out with looking at some other disciplines and related research that suggests that practicing makes an expert. Apparently some 10 years are needed to become an expert in a field given a continuos practicing during this time. There are 4 elements of deliberate practice: mentor, challenge, feedback and dedication. Mary then applied this to software development and noted that open source projects often offers an environment that fosters learning.
Lastly (cause I had a flight to catch, I missed the very last session) I listened to Richard Durnall from Thoughtworks. The first name today that I didn't recognize and a really interesting speaker. (Also nice slides.) The main thing Richard pointed out to me was that continuos and incremental improvement isn't always the right thing to do (a bit contrary to what Cope said earlier on). He illustrated this with a graph with Performance on the y axis and the choice we make to set up our organization on the x axis. If there is only one peak on this curve then incremental improvement will work perfectly. You change a little, measure performance to get the feedback if you are moving in the correct direction. If not - move in another direction. But consider the possibility that there are several peaks in productivity. Then incremental improvement may lead us to a lower peak although there are better performance peaks around. To avoid this problem consider a more radical change where the organization is thoroughly changed. Richard went on and compared 2 types of organizations, the standard command chain organization that is built inwards-out and the process organization that is built outwards from the needs of the customers and in. It took 5 years for Ford to discover that jeeps are not sold anymore. At Toyota however..... see rambling about Toyota below..... There are several benefits from process organizations but some of them comes with a bit of pain. Richard ended his presentation with this depressing quote by Konosuke Matsushita:
We are going to win and the industrial west is going to lose: there’s nothing much you can do about it, because the reasons for your failure are within yourselves. Your ﬁrms are built on the Taylor model; even worse, so are your heads….
Have you notices that Toyota is the new holy grail for methodists? Toyota works fine and is probably a great place to get inspiration from. But one thing that strikes me is that the software business doesn't seem able to come up with stuff of its own. We have the architecture analogy since way back and now we have a car dealer to draw from. Can it be that our discipline is too abstract to just talk about as is? Do we need clues from the "real world" to actually understand what we are doing? Probably nothing to be sad about but rather a sign of sanity!
This has been 3 great days with lots of interesting insights from lots of cool people. Going to conferences like JAOO is a great way of getting the feel for what is up and coming in the business. To my delight portals and portlets weren't mentioned a single time fueling my criticism of the project I work in currently. A bit surprising was the lack of an Erlang presentation - it seems like just as interesting a language as Clojure or Haskell. One thing I missed was more interaction. All sessions were mostly one way communication. There are several formats that can activate the audience but none of them were used. With this many developers around - wouldn't it be great with a hackathon for example? (I guess the pay extra tutorials are like this but....)
By the way - slides are available at the conference site. For some a password is needed but most are freely available to anyone.