Tuesday began with a presentation on software development which pointed out several things that cause software projects to fail, such as the vicious circle of buggy code maintained by experts who hack the system further in response to pressure from customers. In addition, to prevent these problems, a number of suggestions were made. For example, there should be a strong culture of testing, and there should be a separate QA team with minimal interaction with developers so that there is no conflict of interest. This lead to more than 80% code coverage, extremely low QA test recidivism, and a logarithmic increase of code size which in turn can be seen as code refactoring working its wonders.
Then there was a presentation about a complex software system that runs both on a desktop and a PDA. It is used to track the activities of a company that recycles clothing and other materials. So for example, the problems that are addressed by the software are the routing of drivers to more than 1200 containers, their activities, the tracking of how much stuff was picked up at each location, and many other logistic issues.
Since the next presentation was mine, I am not going to comment much on it.
After that, the Argentine army came over and talked about their experience with developing applications in Smalltalk. Here are some of the most interesting points.
- Smalltalk is very easy to learn.
- There is little ramp up time for new developers. If they only know OOP, then they can contribute within 80 hours. If they know Smalltalk as well, then they are productive within 40 hours.
- Adapting the software to new requirements is easy and can be accomplished without going through major trouble.
What is interesting about these is that if you ask any Smalltalk developer, you will hear the same things. But in this case, there is a study backing up these conclusions against the experience observed in other programming languages. In other words, it is not as biased as a Smalltalk developer would be, and as such it can be seen as external confirmation of what we all feel to be true.
During this presentation, a number of Smalltalk simulation applications were shown. All of them included rich graphical presentation, including for example the overlay of information of military value on top of actual satellite photos.
Then, just before lunch, we saw a presentation on context sensitive applications and physical hypermedia. I wish I had been able to take more pictures, but there was so much information that I just could not make time to use the camera. The first part was about a number of software models that can be used to deal with issues that come up in context sensitive applications (in which software is aware of what the user is doing besides what the user is actively telling the application), and the second part included a demo of a physical hypermedia application running on a PDA which allows users to navigate a city in two completely different ways: by following internet-like links to get more information, and by following physical links which are interpreted in a different way such as e.g.: the user wants to go somewhere, but the traversal is done by the user not the computer, and as such different rules apply. I am really not doing any justice to the presentation by compressing it down to a paragraph, but if I had to file it out here it would take me 20 pages or so.
After lunch, I attended a block of 3 presentations out of a possible 6. First, there was a presentation on how to integrate the SCRUM process to VW's Refactoring Browser in a multi user fashion. It included the following nicest of features: once you tell the tool which item you are working on, then it collects all the changes into a changeset. Then, when you are done, it sprinkles the changeset into the corresponding packages, does all the merge work for you, and even publishes it with the proper version numbers. Everything that can be done automatically is performed for you.
Then, there was a presentation about how to interact with objects in a graphical manner. Mostly, the conclusion is that one should not use a UI builder to build UIs because it causes all sorts of problems and irritations. Instead, if one could attach a set of halos to an open, active window, then one could simply switch the whole thing into edit mode, display anchors and other visual indications to show how widgets are layed out, and then simply change them on the real thing. It was followed by a demo of the actual thing, which was quite impressive.
After that there was a presentation about Squeak 3.10, which included many talking points about the development processes that are guiding the latest release of Squeak. We also saw, besides the release image, an image with a number of things that did not work in previous releases. Hopefully these will see the light of day soon.
And thus we went into the final presentation block of the conference. First we saw a presentation on GLASS given by James Foster of GemStone, including a demo of the GLASS appliance being actively developed right now. What could I say about this other than it was very impressive? The default configuration you get will allow web sites to serve 15 pages per second with a 10 minute timeout in under 4 gigabytes --- for free!
Immediately after that we had a presentation about Morphic 3.0, which includes a UI written independently of the notion of square pixels. In fact, besides having something like 10x less code than the current Morphic 2.0 implementation, it can do arbitrary coordinate transformations on graphics. So therefore if you have a rectangular map, you can project it into the screen via the cylindrical transformation of choice and presto, there you see a map on the screen. Or you could also apply a spherical transformation and then you see an Earth. It also includes other goodies such as subpixel rendering.
And finally, we had a presentation on controlling robots from Squeak via Bluetooth with the intention to play soccer with them. This is not easy to do at all, because you have to interpret images you receive from an assortment of cameras to figure out what to do quickly enough so that your robots can operate as a team. While showing live soccer would have been impossible due to the fact that being able to play currently requires something like 2 days' worth of calibration efforts, we did see the the simulators running on the screen. Amazing.
So this is how the conference ended on Tuesday.