QCon SF 2008 – Day 1
Coming into this conference I have some very high expectations due to the caliber of the speakers at the conference. That being said, it started off with a bang, the opening keynote featured Martin Fowler and Rebecca Parsons of ThoughtWorks on the topic of how an architect and the agile process are complementary and not adversaries as many many think. The talk was more aimed at the large corporations that have various hierarchies of architects and how companies set up the architect position to fail by asking them to “oversee” the development of several projects at once. This task leads to the architect being “pushed” away from the daily activities of each of the team and the application development itself. In doing this the architects tend to recoil to an ivory tower and make all sorts of decrees and standards that don’t get implemented. They made an interesting point about how companies push experience away from the development by not being willing to pay a developer with 10+ years of experience to code. If you want to be paid for your experience you have to become an architect and you can’t touch the code.
It made me think about our policy here at 2paths, everyone codes to some extent. As an architect myself, I may not code large volumes of code but I do develop code. This makes my opinion relevant when we make design decisions. Ironically, their suggestion to fix the situation was just this, architects must be part of the dev team and need to look at the code developed/checked-in on a daily/weekly basis and in the ideal case code.
The great thing about thing about this conference is the big name people they have as speakers. The speaker to attendee ratio is 1:4. Every big name author of the various tech books are here:
- Martin Fowler
- Rod Johnson
- Kent Beck
- Geagor Hohpe
These guys are treated link rock-stars here. At the keynote, the guy sitting next to me was giddy to be in the same room as Martin Fowler .The thing is that just because they are smart and wrote great books it doesn’t mean that they give good presentations/talks. Point in case, Kent Beck. I went to two talked by Kent and though he’s funny and witty the talks were very convoluted and definitely not to the point. That being said, both sessions were packed…people were sitting on the floor…it was surreal.
Gregor Hohpe gave a great discussion about principles underlying the creation of appkications that use a “cloud” architecture. Cloud computing is basically the use of services from other organizations/companies within your application. Examples of this would be to have an application that uses google maps or Amazon’s EC2, etc. The main take-aways from his talk where:
- Learn to live with uncertainty
The services you are using are not controlled by you so you have to design for the component being down/unavailable because your customers don’t care what services you are using under the covers.
- Keep things simple and small
- Learn to properly design for asynchronous
- Embrace the new programming model
- Resist applying traditional patterns
Point 1 was the most relevant and leads to a redefinition of ACID transactions
A – Associative
Service calls/requests need to be associative. Ie (A + B) + C = A + (B + C)
C – Commutative
Service calls/requests need to be commutative. ie A + B = B + A
I – Idempotent
One needs to design services to be able to handle a request or response that is received more than once due to re-sends due to delay, etc…
D – Distributed
He admitted that this was a filler since applications built on the cloud are distributed by their very nature.
All in all day one didn’t meet my expectations entirely though there were flashes of what I expected but I have hope that tomorrow and Friday meet will be better.
Update: This blog post has been featured on the infoq.com website