Dan Pritchett, Technical Fellow at eBay, spoke about "Architecting for Latency". His aim was not to talk about minimizing latency, as you might expect, but rather to architect as though you believe latency is unavoidable and real. We all know the effect latency can have on performance. That's the first-level effect. If you consider synchronous systems---such as SOAs or replicated DR systems---then latency has a dramatic effect on scalability as well.
Continue Reading »Architecting for Latency SOA Without the Edifice Sometimes the best interactions at a conference aren't the talks, they're shouting. An crowded bar with an over-amped DJ may seem like an unlikely place for a discussion on SOA. Even so, when it's Jim Webber, ThoughtWorks' SOA practice lead doing the shouting, it works. Given that Jim's topic is "Guerilla SOA", shouting is probably more appropriate than the hushed and reverential cathedral whispers that usually attend SOA discussions. Jim's attitude is that SOA projects tend to attract two things: Taj Mahal architects and parasitic vendors.
Continue Reading »Cameron Purdy: 10 Ways to Botch Enterprise Java Scalability and Reliability Here at QCon, well-known Java developer Cameron Purdy gave a fun talk called "10 Ways to Botch Enterprise Java Scalability and Reliability". (He also gave this talk at JavaOne.) While I could quibble with Cameron's counting---there were actually more like 16 points thanks to some numerical overloading---I liked his content. He echoes many of the antipatterns from Release It. In particular, he talks about the problem I call "Unbounded Result Sets".
Continue Reading »Three Programming Language Problems Solved Forever It's often been the case that a difficult problem can be made easier by transforming it into a different representation. Nowhere is that more true than in mathematics and the pseudo-mathematical realm of programming languages. For example, LISP, Python, and Ruby all offer beautiful and concise constructs for operating on lists of things. In each of them, you can make a function which iterates across a list, performing some operation on each element, and returning the resulting list.
Continue Reading »Eric Evans: Strategic Design Eric Evans, author of Domain-Driven Design and founder of Domain Language, embodies the philosophical side of programming. He gave a wonderful talk on "Strategic Design". During this talk, he stated a number of maxims that are worth pondering. "Not all of a large system will be well designed." "There are always multiple models." "The diagram is not the model, but it is an expression of part of the model." These are not principles to be followed, Evans says.
Continue Reading »Kent Beck's Keynote: "Trends in Agile Development" Kent Beck spoke with his characteristic mix of humor, intelligence, and empathy. Throughout his career, Kent has brought a consistently humanistic view of development. That is, software is written by humans--emotional, fallible, creative, and messy--for other humans. Any attempt to treat development as robotic will end in tears. During his keynote, Kent talked about engaging people through appreciative inquiry. This is a learnable technique, based in human psychology, that helps focus on positive attributes.
Continue Reading »From QCon San Francisco I'm at QCon San Francisco this week. (An aside: after being a speaker at No Fluff, Just Stuff, it's interesting to be the audience again. As usual, on returning from travels in a different domain, one has a new perspective on familiar scenes.) This conference targets senior developers, architects, and project managers. One of the very appealing things is the track on "Architectures you've always wondered about". This coveres high-volume architectures for sites such as LinkedIn and eBay as well as other networked applications like Second Life.
Continue Reading »Pragmatic Podcast Has anyone ever been happy to listen to their own voice? Probably not. The Pragmatic Podcast is up and running on the redesigned Pragmatic Programmers site. In the first episode, Daniel Steinberg interviews me about the book. Also available on iTunes.
Make Time a Weapon Here's an list of books about putting time to work as your own weapon, instead of being victimized by it: The Mind of War The Art of Maneuver Lean Thinking Birth of the Chaordic Age Agile Software Development Lean Software Development Software by Numbers
Normal Accidents While I was writing Release It!, I was influenced by James R. Chile's book Inviting Disaster. One of Chile's sources is Normal Accidents, by Charles Perrow. I've just started reading, and even the first two pages offer great insight. Normal Accidents describes systems that are inherently unstable, to the point that system failures are inevitable and should be expected. These "normal" accidents result from systems that exhibit the characteristics of high "interactive complexity" and "tight coupling".
Continue Reading »