Back in November 2009, I attended the third annual QCon conference in San Francisco. QCon first started 3 years ago in London, UK. Another edition of the conference took place this year in California. The conference lasted for 3 days with sessions organized around the following topics: Agility, Architecture, Java, Ruby, Cloud Computing, Emerging Languages and SOA. Not surprisingly, those topics are very close to those found on infoq.com, co-organizer of the conference.
Each day started with a keynote followed by sessions grouped within tracks. With 5 or 6 tracks each day, there was a lot to choose from and it was often hard to decide where to go, even though my priority was the architecture-related sessions.
I started the first day with the "architecture for the architect" track. The most interesting session that day was the one called "Adventures of an agile architect" during which Dan North talked about the issues one might encounter when working on projects and how he had dealt with them. For instance, how do you deal with a highly-skilled team member who works on their own and who is not that social? Dan's approach is to ask the team member for advice so that he feels more involved. As he realizes that people value his opinion, he starts asking for advice too and works more with the team. Sounds reasonable. Dan is a very good speaker and knows how to get people's attention.
The day ended with a social gathering in a venue nearby which allowed people to get together and exchange experiences in a friendly environment, complete with food and drinks.
Thursday began with a keynote by Don Box, a major actor in the Microsoft world, known especially for his involvement with the COM project. He was on stage and he started the keynote by tweeting on his Twitter account. He was writing, among other things, that he could not do a full talk this way. The room was quiet and I thought he would stop after a couple of minutes. This lasted for twenty minutes, and in the meantime a few people left the room. After he realized this was a fiasco, he started talking but was ill-prepared, and he deviated from the original topic. It was just outrageous and preposterous - an hour of my life that I will never get back. After each session, attendees were asked to provide feedback by putting a piece of paper in a box whose colour indicated how good it was: green for "above expectations", yellow for "meets expectation" and red for "below expectations". I don’t need to tell you which colour filled the box for that keynote. I am not a Twitter user and haven’t yet been convinced of its true usefulness, but it certainly wasn’t appropriate in this context.
ROO’s main aim is to increase productivity: the new tool supports widely used Java frameworks (Spring, Spring Security, Spring Web Flow, Hibernate and AspectJ, among others). Usability is supposed to be high and learning curve low. Last but not least, ROO can be removed within minutes, should users decide to leave it.
I then attended some sessions from a part of the track called "The cloud: platform or utility.” This included a very interesting session about how the cloud can be used. In a nutshell, the cloud helps when some of the following issues have to be solved: scalability, complex calculation, storage, communication and multi tenancy (a situation in which a vendor hosts software serving multiple customers). Customers usually want specific customizations which could be hard to manage when it comes to specific UI and database design.
I also attended Max Ross's talk about the Google App Engine. At a high level, Google App Engine is Google’s cloud service. This included the characteristics of the Datastore: transactional, natively partitioned, hierarchical, schema-less and not a relational database. It is meant to simplify the development and the management of applications. It is based upon the “pay as you go” model and free to get started.
One important technical characteristic is the use of soft schemas (i.e. schema-less). They define soft schema as a “schema whose constraints are enforced purely in the application layer”. It is supposed to make the development process simpler, but since some of the responsibilities (schema, foreign keys for instance) of the database are now moved off to the application and have to be taken care of in a less standard way, I am a little skeptical that it really makes developers’ lives easier. Anyhow, Google recommends JPA (Java Persistence API) to take care of that part. Max then explained how to move to the Google App Engine and out of it again. The main benefit of moving seems to be cost reductions.
As a supporter of Spring, I had to attend Rod Johnson's talk about ROO. I was quite surprised to see the CEO of Spring Source (who I believe must be fairly busy on a daily basis dealing with issues far from lines of code) show us a demo on Spring Source's new code generation tool. ROO’s main aim is to increase productivity: the new tool supports widely used Java frameworks (Spring, Spring Security, Spring Web Flow, Hibernate and AspectJ, among others). Usability is supposed to be high and learning curve low. They claim that there is no trade off in terms of engineering and the generated code is of high quality. Last but not least, ROO can be removed within minutes, should users decide to leave it. It looks like an interesting tool worth trying and it will be the subject of an upcoming article.
The last talk on Friday was entitled "Amazon S3: architecting for resiliency in the face of failures". Jason McHugh explained to us how they designed the architecture with the basic idea that no matter how reliable the hardware is, no matter how good the developers of the software are, failures will inevitably occur. They have some interesting practices, such as what they call "game days", during which engineers unplug some of Amazon's datacenters and see what happens. According to Jason, they have never experienced any major losses. This reminds me of a cell phone carrier whose main network completely crashed a few years ago and the backup network never took over. Customers were unable to make or receive phone calls for about 10 hours, the operator lost millions in the process, and gained a bad publicity. Maybe such a practice would have helped them avoid it. You can find out more on Amazon S3 here.
Overall, the conference was of good quality. The topics were interesting and most speakers were good. I definitely recommend this conference for whoever is looking to keep up with current trends.
Jonah Group is a digital consultancy the designs and builds high-performance software applications for the enterprise. Our industry is constantly changing, so we help our clients keep pace by making them aware of the possibilities of digital technology as it relates to their business.