Archive for March, 2004


No, I do not want to be an optimist.

Kathy Sierra is right: Pair Programming is NOT always a choice. Some people are work best alone. This reminds me of something that really got on my nerves during a keynote speech at the Minnesota Government IT Symposium. The speaker’s message was that if pessimists only tried a little harder and improved their attitude, they could be optimists, too. What a load of crock. His assumption that pessimists even want to be optimists is not only seriously flawedflat-out wrong, it’s insulting.


The other day I sent myself this message.

Here’s a tip: no matter how great a product is, no matter how well it seems to meet your organization’s needs, if the people who are going to work with it hate it, it will fail.


Culture Clash

I just spent three days in meetings in St. Cloud, an opportunity to get away from the office while our cubicles are being torn down and rebuilt (bit of a physical reorg to match the recent organizational reorg) and to outline the direction that our web development will be taking in the next couple years. If we had been at a conference center, we would have called it a retreat, I’m sure, but instead we were in a small conference room in a basement labyrinth in a building that just screams “I was built in 1969! I was built in 1969!” There’s a guy in our regional computer center there who has been working in the same basement office since 1971. Crazy.

The first day was highly energizing, the second day exhausting, the third energetically neutral and quite enlightening. Today we hashed out a process for moving code from development to QA to production. Largely because of concessions that we made for existing processes, it ended up being far more complicated than I ever expected. For one thing, our introducing CVS entails an enormous shift in code management. The way that I would normally think to use CVS, branching off major releases to run through QA, won’t work because of conceptual hurdles and because it doesn’t mesh with the current process. The culture clash between our long-time core systems developers and newer developers working on web-based apps will be a fun one to watch. I understand that we shouldn’t jettison a perfectly functional system, and I want to learn from what we’ve been doing, but at the same time it’s really bizarre to me that CVS should cause such a ruckus, because I don’t think it’s that different.

Then again, I don’t think that the leap from procedural to object oriented programming is a big deal. Seriously, I don’t understand all the fuss.

I can’t wait until we broach the topic of unit testing. Oy.

Regardless, I’m going to have to spend time thinking about how to smooth out the wrinkles in our new code management process. It will work, but it’s inelegant.

And of course, the real fun of the meeting was getting other work done at the same time, as I have a big project that just can’t wait for me to be on pause for several days. Thankfully, I’m surrounded by workaholics who think it perfectly natural to be typing away while everyone’s talking. :)


Fodder for Linkblog.

A few quick links of note:


Plone 2.0

Plone 2.0 has been released. Plone is a content management system built using Zope, an open source application server written in Python. It pulls together the Zope Content Management Framework with a number of other pieces to make a pleasant, standards-based, easy-to-use CMS. If I had to install a CMS at work right now, I’d choose Plone in a heartbeat.

  • Plone and Zope are easy to use and administer. There is, I grant you, a learning curve to consider: Zope’s conceptual model is a bit … let’s say opaque. You kind of have to wait for a “Eureka!” moment when everything just clicks. Plone inherits some of that initial complexity but also does a good job of disguising the worst of it. As web-based CMS go, Plone has one of the most user-friendly interfaces around.
  • It’s cross-platform (runs wherever Python does?). You can run it alongside your existing web server so need not abandon your existing infrastructure or face substantial retraining and retrofitting costs.
  • Open standards. Out of the box, Plone generates valid and accessible XHTML and CSS. How many CMS do that? To me, this is essential not only for the usual reasons, but also because I’m thinking five years down the road when Plone might be replaced, and I want to stand a chance of being able to migrate the content without digging through all sorts of lousy, invalid markup. I suppose, come to think of it, that is one of the usual reasons.
  • Note how I mentioned accessible? Of course, the valid XHTML & CSS help quite a bit, so if your design is done right, the only additional trouble you need take to improve accessibility is content manager training. I shouldn’t have to say this, but never trust a vendor when they tell you that their software is completely accessible, because it’s probably not true. I’ve had salespeople from certain large software companies tell me that their portal and CMS products meet all government accessibility standards, despite this claim being demonstrably false. From what I’ve seen of Plone, its accessibility claims are not a lie.
  • Built-in workflow. This is a good example of Zope’s security model and object inheritance at work. User and group administration is built throughout and is easy to work with. Any object (a folder, a file, whatever) inherits its parent folder’s characteristics and permissions and can be overridden. Couldn’t be simpler. Rollback to an earlier version is a snap, too.
  • Clean URL structure. Although sometimes I feel like I’m the only one who cares.
  • Plone is open source and Python. As much as I love Python, I’m not just looking for an excuse to use the language (if anything, I should be pushing us to centralize on Java). Python is easy to learn and to ramp up to actual productivity to modify and extend Plone if we need to.

The big down side, of course, is that it doesn’t cost tens of thousands of dollars. Sorry about that.

This raises an advantage of open source that I don’t raise nearly enough: cheap prototyping. Three years ago, we had a chance to install a Zope-based or other open source CMS at work but did not. In retrospect, this was a huge mistake: the process for which we delayed implementation ended up causing complete inaction. We would have done well to set up a low-cost interim solution. Free & open source software offers this opportunity far more easily than high-buck commercial competitors.


New Pragmatic book

Via Glenn Vanderburg, I see that Dave Hunt & Andy Thomas have just released Pragmatic Unit Testing in C# with NUnit, a companion to the wonderful Pragmatic Unit Testing in Java with JUnit. Huzzah! Apparently it’s more than just a rework of the JUnit book, too. If you’re interested in unit testing, either of these books is a good place to start.

Now I’m just waiting on their automation book.


Go Gollum

Gollum’s acceptance speech.


Walter Cronkite on Murrow on McCarthy

On the way home yesterday I happened to catch a radio essay by Walter Cronkite on NPR. In it he describes a story that Edward R. Murrow did on his program “See It Now” in 1954, reporting on McCarthy’s anti-communist efforts with a frankness and honesty that hadn’t been seen on network TV. It’s a powerful piece, spend a few minutes listening to it.

Two reactions: Work of this caliber is why I like NPR. And wow! Cronkite is fantastic!

Also on NPR, Nina Totenberg’s series on Justice Harry Blackmun’s just-released papers is quite compelling.


Books I’m watching for.

I’m probably missing some here, but:

  • I just learned that a second edition of Code Complete is due out in June. I’ve read only good things about this book but haven’t bought it because it was published in 1995 and I figured a new edition was bound to arrive before long.
  • While stumbling into that tidbit, I also came across Test-Driven Development in Microsoft® .NET, which I think will be of interest to several of my colleagues.
  • Jeremy Zawodny and Derek Balling’s High Performance MySQL is due in April.
  • Did you notice that an in-progress version 2 of the OWASP Guide to Building Secure Web Applications is now available as a PDF? No more checking out the Docbook from CVS.


JBoss plugins for Eclipse

Hey, this might just short-circuit the inevitable IDE wars at work: JBoss-IDE, JBoss plugins for Eclipse.

Actually, I personally don’t give a rat’s ass what people use to write code and manage their projects. If you want to use Eclipse, go for it. Happy with NetBeans? Go nuts. vi or emacs? That’s fine, you Luddite. Whatever makes you happy and productive. But sooner or later there will be a push to centralize on a single tool at work. If we also happen to use be using JBoss at the time, JBoss-IDE gives Eclipse a leg up.

Not that I care. :-)