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 showerheads.

Most of the time, the showerhead is too far away for me to adjust. I'm short (5 feet tall), but if I can't reach the showerhead, 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.

10 Replies to “Testing Design”

  1. Frank Lloyd Wright designed houses to “human scale” — meaning his own size. He was not a tall person. Almost all of his clients accepted that, but one (a Tall Texan, I believe) demanded that it be scaled up to fit him — and of course, FLW did just that.
    FLW also used to say that one of the architect’s most effective tools was a hammer; he used to go over the building site and knock down concrete (or whatever) that was in the wrong place or otherwise didn’t work.

  2. I’d absolutely agree that architects need to participate in the projects for which they create architecture. (I’m not convinced that architecture is the same as design, but that’s another discussion.) If they don’t actively engage in the project, they’ll have trouble getting meaningful feedback.
    Does the person who designed that hotel bathroom (almost certainly not an architect) need to install the bath? Or do they just need to use the shower in the bathrooms they’ve designed occaisionally?
    The installer is one stakeholder in the hotel bathroom system and the designer needs to understand that viewpoint. So they should have got their hands dirty helping to install baths. And as new models come out, they should probably help install them, so they understand the new issues.
    The question is whether the coder’s viewpoint is the one that the architect needs to understand most intimately on a given project. If it is (e.g. projects where more than half the project team is writing code and an information architect is championing the end users viewpoint, or projects where code is the highest risk part of the system), then the architect needs to be close to the coders. Maybe coding. Maybe pairing with coders on critical modules. Maybe day-to-day mentoring of coders when the project is larger. (Once you have more than maybe a dozen or so coders on the project, then an architect who codes risks losing touch with people working on other parts of the system. If the architect can’t listen to other people who are writing code and understand their issues, then the project is at serious risk whether that architect writes code or not.)
    On some (many?) of the projects I’m working on these days, however, the coders are in the minority. The domain experts (marketing people, call centre specialists, device designers, supply chain gurus, whatever) can be the biggest group. Or sometimes the network & datacentre issues predominate. On these projects, I don’t think writing code is necessarily the best way to actively engage with the thorniest issues.
    So for me, it’s still a case of “it depends”…

  3. To test a shower one needs to take the shower, not to install it. There are other possiblies though: to stay for a while in the same room with somebody, who does take, or just to have a breakfast together. I definitely prefer to take an active part in implementing my architectural decisions, but that’s not always practical. Sometimes it’s a subtle issue. What I’m really trying to achieve is that the whole team will develop a sense of collective ownership on the architecture. “It’s your architecture” – I permanently tell them – “not mine.” If I was taking too much active part in the development it wouldn’t happen. Writing code is cool, I love it and do on any possible occasion, but there are moments when I have to restrain myself.

  4. I love to write code, and do when I can. However, putting me on the critical path for development as a coder ignores the many roles that I, as an architect, must play. The architect must see the project as a whole – a coder sees a project in the small. An architect is trading off complexity against performance, cost against capability, and so on.
    By the way, I’m 6’2″. The shower heads you can reach to adjust are spraying on my chest. Washing my hair becomes a dangerous manuever of squatting or leaning over with eyes closed and hands occupied. So there’s the trade off – who’s more likely to sue – the one who can’t adjust the shower or the one who falls?

  5. I’ve never heard the comment that a shower head is too high. I’m 6’2 on they constantly are made for 5′ tall people. I’m tired of squatting down just to get a shower in a place that isn’t home.
    but made me laugh

  6. Interestingly enough, many of you here think that a proper design will make everyone happy. That is certainly starting with a flawed basis. If you’ve been in the business long enough, you know that Finance and Marketing will not want the same things. Executives and managers do not want the same things. Home users and kiosk users do not want the same things. Blackberries and PC users also, do not want the same things.
    Common denominators are often the measure of the day. Other times it may be time-to-market.
    In the end, sometimes we as architects have to code it. I remember one situation that the team could not fathom( rather green team ), the dynamic model I was proposing. I built it at home, deployed it as the framework base and began educating them. Every time the new,strange tasks were met with furled brows and muttering, I needed to sit amongst the group, Xtreme style, and educate… as I coded, explaining all the way. In the end, the solution was a success, even though there were random people that wanted it just a bit different. They may not have been too short for the showerhead, but they were used to paper and wanted it on screen that way, which I would not permit. They had to adjust, just like travellers today do, considering the volume of business travellers years ago were men, salemen, and typically taller. And that is the rest of the Story…

  7. Just a random comment about the showerheads. I’m 6’6″ and I hate it when the showerhead is designed for a person only 5′ tall. So what to do? Who wins?
    Solution: adjustable showerheads that can be moved up or down to accomodate the guest.
    Sorry, it’s a pet peeve of mine that the world seems designed against tall people.

  8. As a 5’8″ person I can assure you that those 6′ showers are just 2″ too high for me.
    The ‘correct’ solution is a shower head on a vertical slider.
    Everyone knows this but a fixed shower head just looks cleaner on the canvas, doesn’t it. And it doesn’t have any awkward tubing attached to it. It is all hidden behind the wall. And for some artistic cleanliness is the over-riding aesthetic.
    However, I am with Johanna on this one. Architects who don’t code (and therefore have less understanding of what does, and does not work) should be avoided.
    Software development is still more craft than science, so we need to work more like craftspeople and get involved in all stages of product creation to produce a quality product.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.