In the last post, I talked a l ittle about my QCon experience and provided a list of the sessions I attended. In this post, I’ll go more into how those sessions went… enjoy the ride.
My QCon experience started off kind of heavy as I listened to a keynote given by two venture capitalists. Try as I might, I couldn’t remember anything remarkable from this talk. I think this is when I created the new twitter account.
After the keynote, I went off to see a talk by Joseph Yoder, a consultant who helps people write software. He wrote a paper called Big Ball of Mud and he referred to this throughout his talk. His talk was about architectural patterns, you know stuff like client-server, model-view-controller, etc.. His favorite pattern was the Adaptive Object Model and you can read a lot more about that on the Adaptive Object Model website!.
Rebecca Wirfs-Brock presented a thoughtful look at the process of an architectural review. Lots of talk about getting through logic bubbles, knowing your audience, etc. Two interesting things I wrote down. First, when presenting a few choices and doing pros and cons, remember to summarize these in a succinct sentence before making any decisions. This draws the true value out of the different options. Also, when probing for answers from a domain expert, be patient, endure long stints of silence, and keep probing.
Dan North’s talk was a freaking riot. The guy should do stand up. Seriously. His content was solid and he kept the audience’s attention. Some tidbits included advice on introducing “pair programming”: if your team resists “pair programming” and you think it necessary, just call it “helping” and park yourself there for the day. He also said, “A bunch of alpha’s aren’t going to pair. But they are more than willing to show off what they know. So, take advantage of that.” Also, many people at QCon were down on Maven. Dan was too, saying, “Maven is like an obsessive compulsive, comes into your house, brings in apache kids, and begins to rearrange everything.” Also, Dan said an essential role in any team is the role of Shaman, someone who knows the history and who knows why this and that happened. Oh, and ESB’s are only good if they’re beer. Anytime a speaker mentions beer, they have my attention.
Next up was Nathan Dye, who talked about continuous deployment. He claimed that Microsoft can deploy up to 200 times a day. A friend tweeted me and said that was often enough to catch every “oops” check-in that happens in a day. What Nathan was describing is that when you can deploy so easily that any checkin can be built, tested, packaged, and deployed, your software is bound to be maintainable. He went into many all of the techniques that can help companies gain the benefits of continuous deployment.
Day 1 was rounded up by a fantastic talk by Eric Evans. Eric was by far the best presenter, IMHO. I might be saying that only because I’ve shared a beer with Eric on a few occasions since he consults with my company. Like Dan, Eric had the audience laughing, but not at jokes… at scary truths that everyone in the audience was familiar with. Eric’s talk was an introduction to Domain Modeling, the topic of his excellent book on Domain Driven Design.
That evening, QCon hosted a party an Jillians. We got two drink tickets and a whole crapload of bar food. Me and my buddies played pool and met up with Eric Evans, who introduced us to other clients of his. I didn’t know people still programmed mainframes! But, they do since these guys told me they did and I believed them. All joking aside, this is exactly the kind of environment where the domain-driven design philosophy can work magic, helping companies avoid wasting millions of dollars trying to displace a legacy system that works perfectly well.
Day 2 started off with Don Box going up in flames as demo after demo failed. Firewalls? There are firewalls here? What was so amazing was Don’s reaction to all of this. He completely collapsed and ran around the stage like a crazy person. Don loves to code on the fly and does it all of the time. This is daring and he should be commended for this. But every now and then you’re gonna suck. Lots of people were expecting more and were pretty unkind in the tweet-o-sphere. At first I was kind of disappointed, then I lightened up and enjoyed the antics. The next day, Don did another talk with Amanda Laucher and redemption was in the air.
Next up was a talk on Better Architecture Made Easy. I should have known from the title that this talk was high-risk. Alex Zitzewitz’s talk was about cyclic dependencies and how hey are bad and how a six-sigma approach can solve all of your problems. Alex was a decent presenter and not too pretentious, but I kind of shut off once the presentation went into a product demo. Still, if you’re a Java shop, the SonarJ tool might be an interesting tool. QCon invites vendors to pay the bills, but vendor presence is definitely suppressed when compared to other cons I’ve been to (VSLive, VMWorld, GDC, etc.)
The talk by Michael Feathers was good. He talked about what makes a good programmer and what qualities exist in people that make them good programmers. One of the stories he quoted was popularized a last year. The story was the result of a study that determined good programmers are people who are comfortable with meaninglessness. What this means is that people who were tested to fail at programming tasks look for deeper meaning and aren’t comfortable with a computer that blindly executes what you tell it to. He made reference to Beddy Edwards excellent book, Drawing with the Right Side of the Brain. Don also quoted Paul Graham, Malcolm Gladwell, and others. “People who have a sense of taste can write good code.” On the SR-71… “…something beautiful can perform the same way.” Read voraciously. Accept ambiguity.
Next talk was on Cloud computing by Michael T. Nygard. After reading that name and seeing the 6 ft. 4 in. dude on the podium, I half expected him to cry Valhalla and pull out a two-handed sword and engage a party of ogres. But then he started to talk about cloud computing and I forgot all about the ogres. An interesting piece of info on CERN. A typical experiment generates a gazillion data points which can’t be stored in any one location for the power needed for the datacenter would dwarf the power needed for the actual experiment. What does CERN do? They put in big fat data pipes and get the data the hell out of dodge before it reaches critical mass, spawns stranglets and consumes the Earth. It’s true. The data then fans out to successive tiers in a complex network of supercomputers where the data is digested so we can find out how to harness the power of the sun or blow up the moon. The whole cloud computing talk dovetails with Nathan Dye’s talk from a day earlier and sessions about computing in the cloud was a hot topic at QCon.
The very next talk, after the Asgardian, was with Adam Wiggins of Heroku fame… now I know you’re thinking of Andrew Wiggin from Ender’s Game, but this guy was not a 6-year old kid. He had a goatee and possibly earrings. But he was smart… so maybe he could destroy an entire alien civilization from across the galaxy. Adam’s talk was awesome, he took us through lots of nifty technologies you can use to make it perform well at scale: memcached, couchdb, mvcc techniques to data, hadoop, redis, varnish, rabbitmq, erlang, etc. Great talk, plenty of reading material to take home to Colonel Graff.
The Pragmatic F# class by Josh Graham and Amanda Laucher was up next. The session started off with Amanda telling Josh to effective shut his trap as Josh started talking before the mic was ready. I was like, wow! Then I heard they were married and I was like, of course. The pair then launched into a beginner-grade introduction to the language. This was fine for me since I hadn’t seen any F# code until now. In college I had exposure to Lisp, ML, and Prolog so I knew what functional languages were about. However, that was a long, long time ago at the University of Buffalo and I think I pulled a 2.0 average that year because I was out getting drunk all the time. Anyway, F#, like any .NET language, has full access to the CLR and anything it provides so it’s an important language from that perspective. A few colleagues of mine, Pavan Podila and Kevin Hoffman, wrote an excellent book called WPF Control Development Unleashed and one of their readers went and translated all of the WPF code samples into F#. Neat.
In my next post, that would be Part III, I’ll talk about our Thai dinner, Day 3’s sessions, and our Dim Sum lunch on Friday.