Category Archives: Uncategorized

Your Next Generation DVD Player Will Be …

Disc-less… and the competition is coming over your high-speed Internet connection. Netflix lives up to its name; Jaman, Apple TV and VUDU are also doing it. With Jaman, Apple and VUDU entering the world of HD, the incentive of buying plastic seems low.

That aside, I find it puzzling that shipping 12-cm disks via gas-guzzling trucks is still more economical than pushing bits through the wire. Sure, there’s also the carbon footprint, but that’s not factored in the price. At the beginning of the year I heard on a show on the BBC World Service that “being green” is going to be fashionable in 2008. The show also warned that typically this would be just a fashion statement because under the current rules of the game it’s extremely hard to do it while staying competitive. So far they seem right on both counts.

Read This Book: The Change Function

Just a few days into the new year is a great time to look back at 2007 and reflect about what book influenced me the most. Pip Coburn’s The Change Function–recommended by my friend and colleague Erik Meijer–stands out as the clear winner.

Pip shares his insight about assessing the success of high-tech products. He boils it down to the ratio between the current customer pain (P) and the total perceived pain of adoption (TPPA) for a new technology. From Chapter 5 on the book contains case studies and projections for various products, including DEC’s Alpha chip, ISDN, TiVo, flat panel TV, and satellite radio. The probing questions from Chapter 11 are great!

Going through this book influenced the way I think about technology products in general, and software projects in particular. I got to enjoy the mental exercise of understanding and articulating the customer pain, and then the total perceived pain of adopting the solution(s).

On the last day of 2007 an email inquiry about Kindle reminded me of the Change Function–perfect timing for a reminder to reflect about the year’s most influential book. Answer the following questions to compute its Change Function:

  • What is the crisis ?
  • Is the crisis the supplier’s or the consumers’ ?
  • What is the perceived pain of adopting the solution ?

The Future Workspace

A few months ago a CNN crew visited paterns & practices on the Redmond campus. They shot a few videos in our offices built from the ground up for agile development.Their feature on the future workspace has been available for a while now as a 3-part series: the Google Plex, Microsoft Workplace Advantage, and the Perfect Office Chair. The footage from patterns & practices is in part 2, mixed with other Microsoft clips.

URL Compression

Many useful URLs are way too long to memorize or even type. I’ve known and used TinyURL for many years to compress long URLs. A recent conversation reminded me of this service. It turns out that several other options are available. I’d like to see more people use these services to trim long URLs, particularly when they’re printed on paper. Can you imagine typing something like!1pNcL8JwTfkkjv4gg6LkVCpw!2085.entry? This is in fact an example from a real printed book. Why not instead?

Patterns for Fault Tolerant Software

My fellow Hillsider Robert S. Hanmer has just finished his book on fault tolerant patterns (to be available from John Wiley & Sons, October-November 2007). Here’s the book’s descritiption, in Bob’s words:

This book presents proven techniques to achieve highly available, fault tolerant software that can be implemented by software developers, software architects and small teams. The techniques are presented in the form of patterns as a resource for teaching developers and students about fault tolerance principles and also as a reference for experts seeking to select the technique appropriate for a given system.

Within the phases of fault tolerance (fault detection, error processing and fault treatment) the patterns will be organized in a way that leads from high-level abstractions to the concrete mechanisms. The collection of techniques will be programming language independent, and will be presented in a way that supports their working together to design fault tolerant software. This allows the designer to build the fault tolerant pattern language needed to solve their unique design problems.

Readers are guided from concepts and terminology, through common principles and methods to advanced techniques and practices in the development of software systems.

This book gives present proven methods of increasing the fault tolerance in a way that helps individual architects and developers. The fault tolerance domain lacks a handbook that provides well-known techniques and practices that are larger in scope than ‘defensive programming’ as many books focus on specific techniques or exclusively on reliability engineering.

I’ve been following Bob’s work and I am very happy to see it come to fruition in this form. For years seasoned programmers have been extracting techniques and insight from carrier grade software. It’s great to see a book on this topic from one of the long time members of the patterns community!

The Emerging Phenotropic Identity

Robert Lucky’s column brings up the question of identity on the Internet. In contrasting the old identity with the new, Google/Flickr/YouTube/MySpace/FaceBook one he points out that “Now you’re at the mercy of what other people and what various computer algorithms think of you.” His example reminded me of an older post about interviewing in an era of long-lived databases. Are we seeing the emergence of the phenotropic identity?

Software Engineering Radio Interview

At JAOO 2006 I gave an interview for Software Engineering Radio. Markus Voelter asked me questions about architecture evaluation, the topic of the talk I gave in the architecture quality track. Here are some of the questions that we covered:

  • Why would you perform an architecture evaluation?
  • When should you perform an architecture evaluation?
  • What are the prerequisites for evaluating an architecture?
  • How does architecture evaluation fit with agile development?

The interview is now available as a podcast; you can also download the slides from the Talks section of this site.I am surprised with the quality of the recording: the bartender was removing clean dishes from the dishwasher clese by. I don’t know how much post-processing was done but all that noise is not distracting. It was distracting while we recorded the interview so I’m glad that it doesn’t interfere with the conversation.

Architecture Evaluation in Practice

The slides from my talk on employing state of the art methods to validate software architectures are available (I just didn’t get to it earlier). I gave this talk at the 10th JAOO in Denmark, and then at the patterns & practices summit in Redmond, WA. Though I distilled the talk from experience with ATAM and SAAM, you may find the recommendations useful even if you’re employing other methods. If you’re not familiar with SAAM and ATAM they’re described in the SEI book.

Correlation and Causality

As we wrapped up a group discussion I was reminded about the wonderful discussion of correlation and causality from Freakonomics. How do they differ? When is it one, and when is it the other? Why do people confuse them? The book illustrates eloquently the differences between them. And any mention of causality needs the obligatory reference to the Merovingian: You see there is only one constant. One universal. It is the only real truth. Causality. Action, reaction. Cause and effect.