Posts Tagged ‘software engineering’

Rationale in SE and rationale in UE–what’s the difference?

September 20, 2011 1 comment

The question of the difference between design rationale in software engineering and usability engineering came up at my UC Boulder talk last week. It’s something that I’ve been thinking about for a while, and more recently as I’ve been reading about design rationale from a software engineering perspective (Burge, McCall, Schneider, etc.).

The big difference seems to be in the certainty embedded in the rationale. Design rationale in software engineering seeks to establish a position of truth, rooted in the functionality of the computer (compared to the nature of physical artifacts, as seen in other fields). The preface and introduction of Burge’s Rationale-based Software Engineering book do a good job of distinguishing design rationale in software engineering from design rationale in other fields.

In contrast, design rationale in usability engineering (and even more so in HCI) seeks to provide pointers toward the right directions–through methods, approaches, or lessons learned. Even a repository of web design patterns like van Duyne’s Design of Sites is lauded not because it preaches HCI truths but because it discusses how to design (e.g., how to promote e-commerce, how to settle on a page layout, how to customize for mobile devices). It includes checklists and is rooted in context, allowing the reader to decide what’s relevant.

This is why I feel claims (or something like them) are the future of design rationale in UE/HCI. They are meant to be hypothetical, subject to change based on changes in context, advances in knowledge, and retargeting of product design. They are more flexible than design rationale methods from software engineering and other fields, reflecting the flexible nature of the field of HCI. But that then makes the creation of claims libraries or other reuse repositories much more difficult–one must balance correctness with hypothesis, permanence with flexibility.