User Experience News, Blogs, and Videos
In the design of software, object-oriented design involves planning a system of interacting objects for the purpose of solving a software problem. So what’s that got to do with user experience (UX) design? We are talking about people and not software. Interestingly, there are many characteristics of the practice of object-oriented design that apply to our UX practice.
This article is about using an object-oriented approach to the practice of UX across an organization. We will not address using object-oriented software approaches to the design of software or web sites to improve the user experience — a worthy but separate topic.
Let’s listen in to a lunchtime conversation between a software practitioner and a UX practitioner as they compare notes on an object-oriented approach to their respective practices. We will hear how user experience (UX) practitioners can relate to the software ideas, and extend them to our unique and critical contributions in the practice of UX design. Our lunchtime colleagues are Safiya from Software and Umberto from UX.
Safiya from Software: In my job, an “object” contains encapsulated data and procedures grouped together to represent an entity.
Umberto from UX: That is a helpful definition, Safiya. UX practitioners need procedures or methods on how to perform our activities consistently and with high quality, and we need data and information about the user experience that results from our activities. Perhaps these could be considered “objects” of a different kind?
Safiya from Software: Yes and in object-oriented programming, we also describe the interaction of these objects. They are not just standalone objects.
Umberto from UX: I understand. In my UX practice, some objects must interact with others—such as user research to inform decision-making about interface design. There must be interaction or the research is for naught.
Takeaway: Objects in the UX world can be personas, scenarios, standards, etc., and we need to have efficient ways to show how they interrelate and can be linked up.
Safiya from Software: First, we conduct object-oriented analysis to define the objects and their interactions in order to solve a problem that was identified.
Umberto from UX: Yes! And we conduct user-centered analysis to identify problems and opportunities before we embark on design challenges and opportunities. Not exactly the same usage as your term, but I think we understand each other.
Safiya from Software: We produce a conceptual model that is the result of object-oriented analysis.
Umberto from UX: UX practitioners develop conceptual models of the end users’ ecosystem and context of use that guides our analysis and design.
Takeaway: UX practitioners need to conduct analysis and modeling of the human interactions, while their software colleagues do the same for the coding.
Safiya from Software: Our artifacts don’t need to be completely developed to serve as input to object-oriented design. Analysis and design may occur in parallel. The results of one activity can feed the other in a short feedback cycle through an iterative process. Both analysis and design can be performed incrementally, and the artifacts can be continuously grown instead of completely developed in one shot. Does that make sense?
Umberto from UX: I think so. We are in a similar situation. In our agile world, we must proceed without perfect or ideal information about end users, and be open and receptive to iterations as we design and observe what works well and what does not for the end user or customer.
Safiya from Software: Do you also need the ability to define the functions or methods without actually implementing them, like we must do?
Umberto from UX: Yes. We can define methods, specifications, etc., without actually producing them. Then they stand at the ready when we need to fire them up for a project. Certainly examples are helpful too.
Safiya from Software: Agreed. When we use the phrase “design pattern,” it is not a finished design but rather a description of a solution to a common problem in a context.
Umberto from UX: Our user interface design patterns fit the bill, and need to be organized and findable by our project teams.
Takeaway: UX practitioners must judge when enough is good enough to proceed with the next step in design or implementation and not get caught in analysis paralysis or design perfection.
Safiya from Software: In my world, a scenario of a use case describes the events that external actors generate, their order, and possible inter-system events.
Umberto from UX: Our scenarios, tasks, use cases, and user stories are written from the customers’ perspective (what they need or want to do) rather than starting from the perspective of software modules “helping” them, before we may completely understand the human interactions required.
Safiya from Software: Our user interface documentation shows and describes the look and feel of the end product's user interface.
Umberto from UX: Yes—agreed. The important consideration is how the user interface is designed, i.e., with appropriate inputs from end users and user-centered designers. Then, we must specify the look and feel to the extent that the software team can implement the structure, and most if not all of the details of the interface and interaction. Pictures work better than words alone.
Takeaway: It may seem obvious but it can be easy to forget whose perspective we are taking in the design process. UX practitioners maintain focus on the customers’ experience, while software practitioners focus on the code and architecture “under the hood” to make it all work.
Safiya from Software: By bundling a large amount of reusable information into a framework, much time is saved for the developer, since he or she is saved the task of rewriting large amounts of standard code for each new application that is developed.
Umberto from UX: Ditto for our practitioners, especially in an agile environment! We can reuse or tweak personas, scenarios, standards as needed but we have to know where to find them first!
Takeaway: Both software and UX practitioners need frameworks to allow them to organize, find, reuse and tweak design artifacts and code.
Safiya from Software: Wow Umberto! We have so much more in common than I would have expected. Let’s get our software and UX groups together and talk some more.
Archer, A., and Stinson, M. (1995, April). Object-Oriented Software Measures. Technical Report CMU/SEI-95-TR-002 / ESC-TR-95-002. Pittsburgh, PA, Software Engineering Institute, Carnegie Mellon University. http://www.sei.cmu.edu/reports/95tr002.pdf
HFI Video: Object-Oriented User Experience (UX) with Dr. Eric Schaffer, UXE—The Relational Database of UX Objects http://www.youtube.com/watch?v=DBR1Iw2Xy3o