As UX professionals, we have a great many analytical and descriptive tools available to us. In fact, there are so many that it can sometimes be difficult to decide which tool is most appropriate for a given task! Hierarchical task analysis (HTA) is an underused approach in user experience, but one you can easily apply when either modifying an existing design or creating a new design.
This technique has applications across a range of different problem domains, including time-and-motion studies, personnel selection, or training, and provides a broad and deep understanding of task performance. While there are core principles that guide a hierarchical task analysis, it’s possible to adapt the basic approach in a huge number of ways to support the needs of any domain under consideration. In this column, I’ll examine one approach to hierarchical task analysis that enables UX designers to quickly understand both what a system does and how its capabilities translate into the system’s user experience. You can also use this approach to support the UX development process. Read More
“Many people tend to look at programming styles and languages like religions: if you belong to one, you cannot belong to others. But this analogy is another fallacy.”—Niklaus Wirth
Software Engineering is typically much more formal than User Experience in they way they model an application before development begins. After pseudo code, the Unified Modeling Language (UML) is probably the most widely used modeling language among software engineers. It has developed from other object?based analysis and design languages over a period of many years and provides software engineers with a visual language that describes the design of a system at multiple levels.
Comparable UX design artifacts such as user journeys and personas can take a wide variety of forms. While this diversity can enable us to tailor our design artifacts to different circumstances, drawing features from modeling languages such as UML could promote better cross?functional work practices, increase a design’s reusability, and reduce the overall effort of developing software systems.
This article looks at how User Experience can use UML modeling techniques to enhance user journeys and promote better cross?disciplinary collaboration. Read More
Developers often report a sense of déjà vu when creating software—a sense they’ve already designed or coded a function. Of course, the feeling that he or she is doing unnecessary work is particularly frustrating when a developer is under pressure! The reuse of software components can help to address this problem. Components are proven, reusable units of design and code that meet a specific need. As such, they enable a developer to think about solving problems at a higher level of abstraction, making the development process more efficient. For example, rather than writing a function to print a file, a developer can find and reuse a pre-existing component that meets the requirement.
As a rule of thumb, the earlier in the development process reuse can occur, the more efficient reuse becomes. Like software component reuse, the reuse of UX design elements can be a very efficient form of reuse—particularly because this form of reuse occurs very early in the product development cycle. The ability to reuse prior work effectively is one characteristic of a mature discipline. Read More