I’m attending Software Development West on Tuesday and Wednesday of this week. Following is what’s happening today, Tuesday.
8:15am - I register, and then, happily, discover a coffee vendor. It’s the
first cappuccino I’ve had since landing at the airport. The Santa Clara conference
center is nice, but the venue is in one of those sterile, office-park type areas
that we are so adept at building. I stand at the corner in front of my hotel,
and all I can see in any direction are barren stretches hotels, office buildings,
and parking lots. I feel trapped without a car.
8:30am - Bookstore. I find a small book by Scott Ambler titled The
Elements of UML Style. I buy it for $14.00, in part to see how it compares
to the O’Reilly UML Pocket Reference that I’m sending to production soon. Rather
than serve as a reference to the UML, Scott’s book is purely a style guide in
the same vein as Strunk & White’s classic The
Elements of Style. I flip through the book, read a few pages, and like
what I see. Good concept. Good book.
Also in the bookstore, I run across one of our own books, with the title XSL-FO.
FO? I read the back cover and find out that FO is an acronym for Formatting
Objects. Well, I must say that wasn’t the first interpretation that came
9:30am - I attend the first hour-and-half of Paul Reed’s half-day session titled
Unified Modeling Language: Essential Elements. Paul’s part of Jackson-Reed,
Inc., and he’s a good speaker. He certainly held my attention. The session
was well-attended, by some 41+ people. While talking about use cases, Paul made
the point that in his experience use cases for security, auditing, archiving,
and configuration management are often overlooked during a project’s design.
He’s right! Archiving in particular is something I’ve often had to bolt-on after
a project was done. Security is another "feature" that in my experience
I’ve seen treated in the manner of "let’s bolt it on after we write all
the code and get all the features working." Paul says: "watch for
these oversights," and I think that’s good advice.
10:00am - I take a break to return some phone calls. All is quiet in the coffee-shop
12:15-1:15pm - Jim Weaver and Wilkes Joiner, both of ThoughtWorks,
talk about how they used test-driven development while internationalizing an
existing struts-based web application so that it would work in Canada. The original
application took 27 man-weeks to develop, and resulted in 35 bugs being released
to the client, for a total of 1.3 bugs per man-week. The internationalization
effort, for which they used a test-driven approach resulted in only 2 bugs being
delivered to the client, which works out to only .37 bugs per man-week. A similar
reduction was noted in the number of enhancement requests received after release.
While these aren’t very rigorous statistics, Jim and Wilkes feel the test-driven
approach was helpful in keeping the bug-count low. They also attributed some
of their success to the use of an automated acceptance test framework, their
own JWebUnit, which sits atop
1:30-5:00pm - I sat through a really good presentation by Bob Martin, founder
of Object Mentor Inc., on Principles
of Object-Oriented Class Design. Bob is the author of Agile
Software Development, Principles, Patterns, and Practices, which has a really
cool cover and apparently some really good content. In his talk, Bob focused
on dependency management, the practice of controlling interdependencies between
software components in ways that minimize the impact of change. Bob asserts
the following four principles are hallmarks of good design:
- The open/closed principle
- The Liskov substitution principle
- The dependency inversion principle
- The interface segregation principle
If you want to know more, buy Bob’s book, or, better yet, attend one of his
presentations. He’s a very entertaining speaker with a lot of real-world experience
5:30pm - I’m off to the exhibit hall where I hear there’s food.