Wednesday, May 10, 2006

Testing Design

In Architects Must Write Code, several architects responded that I was too prescriptive (I'm summarizing their comments). Maybe. But I don't think so.

I'm in a nice hotel, where things just don't work completely right. Yes, the hotel is clean (that's the big thing with me). The hotel upgraded me to a suite with an oval bathtub. Clearly, people of normal height and weight had not tried to shower here--the tub is about 9 inches (a hand-width) from the toilet. There's no grab bar to balance on one foot while stepping into or out of the tub/shower. I tried to draw you a picture here.

I travel a lot and stay in lots of hotels. This problem is similar to many problems I encounter in hotels: outlets too far away from where I want to use them, chairs too high, sinks too high, and my favorite, too-high shower heads. Most of the time, the shower head is too far away for me to adjust. I'm short (5 feet tall), but if I can't reach the shower head, it's set for a 6-foot plus person. If the people who designed the hotel rooms had tried them at all, they would realize they were creating difficult situations for a significant percentage of the users.

So, it's possible that architects don't need to code and participate in a project. But I don't know of other effective techniques to test the design. Testing design with a thought experiment is insufficient. Testing design by using it provides much more feedback.

However you arrange your project, think about how to test the design--the design in-the-large, and all the little pieces of design-in-the-small. Certainly, test-driven development is great for testing design-in-the-small. And if you have a whole project that's willing to try test-driven design for overall architecture, that's fabulous. But if you don't or you can't see how, at least think about how to build in testing of the design, especially design-in-the-large as you proceed through the project. Then you won't end up with a bathtub practically in the toilet, requiring people to balance while stepping in and out of the shower.