Monthly Archives: October 2005

Extreme Progamming Explained

“Eclipse is an open source project and one of our goals is to practice completely transparent development. The rationale is simple; if you don’t know where the project is going you cannot help out or provide feedback.” -Erich Gamma (foreword to Extreme Programming Explained: Embrace Change, 2e
, the subject of my post here) Even if your development process is slightly translucent, Erich’s rationale applies. If your development process is opaque, ask why and demand an answer.

Values bring purpose to practices. Practices are evidence of values. Principles bridge the gap between values (universal) and practices (intensely situated).

Extreme programming (XP) values communication, simplicity, feedback, courage and respect. These values are effective when applied together, not in isolation.

Mr. Beck’s four criteria used to evaluate the simplicity of a design:

  1. Appropriateness for the intended audience
  2. Communicative
  3. Factored
  4. Minimal

Feedback is the value I focused on the most during my read of Kent Beck’s text. I see the need for better heartbeat recognition, pulse taking and continual health assessments in some of the projects I lead. Establishing the right frequency and depth of project heartbeats can lead to a proper balance between process and reflection. Without periodic and regular project “physicals” it can be difficult to ascertain whether project/participant health is improving or declining. Project assessment need not be arduous or mysterious, but it does require discipline and commitment.

I was also impressed by Mr. Beck’s focus on flow. Insist on a high degree of continuous flow and quickly resolve all flow disruptions. Daily builds are not enough! Software should function correctly on a (verified) daily basis, at a minimum (i.e. always be deployable). Integration environments are critical to project flow. Metrics can lead to awareness. Awareness can lead to change and the development of practices to institutionalize change.

Here are just a few of the statements made by Kent Beck that made a particularly strong impression:

  • “If you’re having trouble succeeding, fail.”
  • “A concern for quality is no excuse for inaction.” The goal is to make the quality of software development good enough that there is no need for downstream QA. This means that everyone in the project is responsible for quality without exception.
  • “Without daily attention to design, the cost of changes does skyrocket.”
  • “Keep the design investment in proportion to the needs of the system so far.”
  • On the role of Product Managers: “In XP, product managers write stories, pick themes and stories in the quarterly [release] cycle, pick stories in the [bi-]weekly [iteration] cycle, and answer questions as implementation uncovers under-specified areas of stories.”
  • On the role of Architects: “Architects on an XP team look for and execute large-scale refactorings, write system-level tests that stress the architecture, and implement stories.”
  • “There is so much waste in software development. The waste is rooted more in what we believe and feel than in what we do. Becoming aware of and addressing those beliefs and feelings takes time and experience.”

Update 12/1/2008: For more of my book reviews and to see what else is in my book library (i.e. just the business-related or software-related non-fiction therein), please visit my Books page.

Personal content management evolution

Recently when a colleague came into my office for a chat, she noticed that I had several old binders on one of my bookcases. This caused us both to recall the days of old when class hand-outs came in binders–pages and pages of photocopied and printed information destined to collect dust rather than become part of a living/active index.

Old style content management

I’m trying to become more digital and based online when it comes to my personal knowledge base and pool of content to draw upon. While I’ve made some progress on this front, there is work still to be done.

I’ll never go completely digital–physical books, magazines and book stores hold too much enjoyment for me, and current attempts to digitize the physical experience all fall short for me in one way or another.

I still love reading actual books

Besides, if I did go digital my office would be too spartan. :-)

Opening up OpenOffice

Over this past weekend Sun’s president and COO, Jonathan Swartz, blogged about the value in volume. It appears that his post was a prelude to today’s announcement by Google and Sun (AP) and confirmation of speculation yesterday (ref. [1], [2], [3] – “creating more pipes to get at information”, [4], etc.).

Setting aside some of the hyperbole and bias that have sprung forth today, today’s press release does make me wonder if the tail will soon wag the dog. Have services reached their tipping point? Are they now leading applications and not the other way around?

I’m reminded of an email I sent over three years ago (!) on 7/3/2002 to my GM at the time about software-as-a-service and service-oriented architecture, or SOA:

Do you visit Starbucks regularly? How about the movie theater? Sporting events?

Imagine if these vendors told you that you had to pony up a year or more’s worth of mocha/latte purchase, movie or game tickets (plus concessions) before you could enter the premises; however, if you did so, you’d be able to enter regularly thereafter without additional cost. But please be advised, if you bought the matinee package, you could only see matinees; if you purchased tall lattes, venti mochas or Frappuccino├é┬« are out of the question. Would you still pay your money to Starbucks, etc?

Some folks might, under these terms, but Microsoft and others are betting that more enterprises are more inclined to pay for what they need (or even what they don’t), if they pay smaller amounts for more discrete, value-added services. The days of Microsoft being able to annually charge its customers $400~500 for the next Office application suite upgrade are drawing to a close. Office .NET is a realization of this by Microsoft.

Consider the modern phone with its support for caller ID, call waiting, etc.

[Telcos allow their] customers to choose to pay-as-you-use or to pay a flat monthly rate for unlimited usage of such features. The customer has the phone, but the phone company has the centralized service. The phone is only as good as its service.

Microsoft, for example, is positioning Windows in all its various forms (PC, PDA, XBox, WebTV [now Media Center and IPTV] and soon the Tablet PC) as the software equivalent of the modern phone–fully capable of hosting rich services from multiple enterprises. .NET is akin to phone lines–tying together desktops with servers, delivering software services on demand just like your local utilities. Microsoft talks about “software as a service.” he computing platform (e.g. PC) will be defined by the services it supports and presents.

“Office .NET” isn’t on the plan of record with Microsoft today. Office 2003 may have begun the conversation by Microsoft as the de facto information work front-end to software services, but this is not the same as true utility computing.

It will be interesting to see how Microsoft reacts to today’s news.