• Home
  • About
  • Sample Apps
  • Videos
  • OOP 2010: Day 3

    What I really like about the OOP (never been to this conference before) is the interesting medley of hard core technical topics and soft topics like develpment processes. Having had my share of soft topics yesterday I decided to look a little bit more into hard core techie stuff. The first session was presented by Jürgen Höller, Spring’s principle engineer. He talked about “The New Features of Spring 3.0“. One of the highlights is that Spring 3.0 now requires Java 5 at least. This gave them the opportunity to use generics and annotations. Generics can be a beast and they are a viral feature but I certainly like the enhanced expressiveness of the code (and getting more type safety as an additional bonus). Spring 3.0 also brings along nice REST support and component stereotypes. One can easily define a new stereotype (as an annotation) by declaring it with all the properties (as annotations) needed. A nice way to factorize your annotations for a component type. They also embraced JSR303 for bean validation. I am not a big fan of bean validation. You start out annotating your bean with simple constraints. However, validation is rarely simple and pretty soon you end up with way too many annotations for each property. Then you start to implement the more complex validations (i.e. the ones that are hard or impossible to define descriptively) in a validation class. Now you have two classes defining a bean’s validation. Maintenance will certainly be a pleasure for this scenario, unless you migrated all validations into the validation class and get rid of the validation annotations. I discussed this with Jürgen after the session and he is also not happy about this. I would recommend to forgo declarative validation and put all validation in a class of its own from the beginning.

    The second presentation was given by Ursula Meseberg who talked about her experience with merging usability engineering into a Scrum-based development process. User interface design and usability engineering have some up-front and long-running tasks which is not compatible with the narrow-scoped and short-term tasks in Scrum. After some trial and error they eventually succeeded by strictly separating view and view model and bringing a user interaction designer into the development team. The user interaction designer only cares about view and view model as far as user interaction is concerned. All graphical and visual design aspects are applied independent of the development cycle by a graphics designer.

    The afternoon keynote was about “The neighbour’s garden – where architects learn” by Gernot Starke. Very entertaining and still good food for thought. His point was that it is very hard for architects to learn about architectures. There is vast literature available but an architect should also have a look at successful real world architectures. This is where the problem starts. It’s either well documented architectures like the one from Flickr (but how many architects have something to build which resembles Flickr?) or it’s a code dump (aka open source) where it is very hard to find higher-level structures which make up the architecture. Moreover, the most important piece of information, namely why something was built this way and not some other way is usually missing. Most architectures are never disclosed anyway since they are considered a competitive advantage by most companies. I also liked his statements about how software architects can improve. Learning a new language such as Scala or Haskell practically adds nothing to an architect’s qualifications. Improving the communication skills can make a vast difference, though. And successful software architects shy away from the cool stuff (i.e. latest hype) in order to minimize risk.

    For the last session I had intended to learn something about application integration with REST. However, while preparing for my talk yesterday I sat next to Gregor Hohpe (software architect with Google) in the speakers lounge. He made quite some interesting comments on various topics which convinced me to attend his talk on “Distributed Computing the Google Way” instead. The most rewarding information I got from this talk was not how the Google File System (or Big Table, Map/Reduce, Sawzall) work but what the design decisions were (as Gernot Starke demanded) and what works with these technologies resp. what doesn’t. Sometimes you can even cheat a little bit to make it run in unexpected scenarios. You can find the slides here.

    Bottom line: like yesterday there was not a single disappointing talk, kudos to conference organizers (and lucky me for picking the right sessions).

    1 Comment »

    1. Hamlet D\\\'Arcy said,

      January 28, 2010 @ 8:37 am

      This is a great writeup, Bruno. Maybe it is time for me to finally read Gregor Hohpe\’s book…

    RSS feed for comments on this post · TrackBack URI

    Leave a Comment

    This is a captcha-picture. It is used to prevent mass-access by robots. (see: www.captcha.net)

    You must read and type the 5 chars within 0..9 and A..F, and submit the form.

      

    Oh no, I cannot read this. Please, generate a