The Integration of User Experience into Software Development
Published: August 23, 2011
In this edition of Ask UXmatters, our experts discuss the extent to which user experience is integrated with software development in practice.
Every month, Ask UXmatters gives our panel of UX experts the opportunity to answer our readers’ questions about a broad range of user experience matters. To get answers to your questions about UX strategy, design, user research, or any other topic of interest to UX professionals in an upcoming edition of Ask UXmatters, please send your question to us at: firstname.lastname@example.org.
The following experts have contributed answers to this edition of Ask UXmatters:
- Leo Frishberg—Principal Architect, User Experience at Tektronix Inc.
- Pabini Gabriel-Petit—Publisher and Editor in Chief, UXmatters; Principal User Experience Architect at BMC Software; Founding Director of Interaction Design Association (IxDA); UXmatters columnist
- Peter Hornsby—Senior Information Architect at Friends Provident; UXmatters columnist
- Mike Hughes—User Assistance Architect at IBM Internet Security Systems; UXmatters columnist
- Shanshan Ma—Senior Analyst, User Experience at BusinessOnLine; UXmatters columnist
- Catalina Naranjo-Bock—User Experience Consultant; UXmatters columnist
- Robert Reimann—Lead Interaction Designer at Sonos, Inc.; Past-President, Interaction Design Association (IxDA)
- Jim Ross—Principal of Design Research at Electronic Ink; UXmatters columnist
- Yury Vetrov—Head of User Experience at Mail.Ru
Q: I want to know to what extent User Experience is integrated with software development in practice. Does the job of the UX professional usually terminate once the design process is complete, or is the designer involved in some part of the development process? How can a UX designer have a greater impact on development?—From a UXmatters reader
“To achieve the best results, it’s absolutely essential that UX professionals be part of a product team throughout the software development process,” replies Pabini. “Great products come out of the synergy that the collaboration of multidisciplinary product teams engenders. I wrote about this in depth in my UXmatters article ‘Sharing Ownership of UX.’” UX professionals form a bridge between Product Management and Software Development through the collaboration we engender during ideation and the UX design specifications we provide, which ideally capture the wisdom and creativity of the entire product team.
- Discovery Phase—defining what a product will be through generative user research, user modeling, task analysis, and requirements definition
- Design—creating a product’s user interface through conceptual modeling, ideation, detailed design, and specification
- Development Support—iteratively refining a design and adding detail, throughout the development cycle
“As a UX professional, if you want your designs to get built, you need to be there when issues arise and scope changes during development,” advises Pabini. “Software development has a lot of moving parts. You may need to refine your design or add details to your specifications. You should provide error messages when developers discover additional error conditions that need handling—and developers should rely on you for that support. Keep your specifications up to date, so they represent the agreement that exists among all of the members of your product team about what’s going to get built. Quality Assurance should be able to write their test cases relying on your specifications as their reference document. If you’re a UX professional, your product team should see you as an indispensable member of the team throughout all phases of product development.”
“Ideally, UX professionals should be involved in the entire software development lifecycle,” answers Shanshan, “from foundational user research, to concept development and prototyping, then to interface design, on to iterative design and usability testing, and when a product is about to launch, usability testing—even after the product is on the market, for user experience evaluation. At different stages, the spirit of user experience manifests through people with different job titles such as user researcher, interface designer, interaction designer, visual designer, and usability engineer. Based on each UX professional’s specialty, they contribute to the project in their own way, working toward a good product.”
What Sometimes Happens in Practice
“If the UX professional’s job ends at the end of the design phase, something is wrong with the process,” responds Robert. “Unfortunately, this is more often than not what actually happens when UX design firms or consultants get hired for a project. The designers create the framework, but the client is unwilling or unable to—or unaware that they should—continue to pay for ongoing consulting services during development.
“The reason for making the extra investment is simple: no matter how diligent the designer or complete the design, there are always unanswered UX questions that arise, whether due to gaps in design deliverables or unforeseen technical limitations that require design workarounds. Leaving these design decisions to the implementation team can, in the worst case, lead to serious inconsistencies and usability problems in the final product.
“Most non-dysfunctional, in-house UX departments do work closely with developers throughout the development, quality assurance, and—when appropriate—manufacturing process to ensure adherence to the design and, when necessary, to make mid-course corrections or answer unanticipated questions.”
“In most cases—because of time, budget, technical constraints, or even lack of clarity in the UX documentation—some things get changed during product development,” says Catalina. “Therefore, it is the job of the UX professional to follow the development process all the way through to its completion to make sure the final product reflects the original design ideas. If there is a real need for modifications during the development process, the UX professional needs to revisit the initial design documentation and provide clear information about how to address needed modifications from the user experience point of view.”
“The answer to your question really depends on a whole stack of variables, including the experience of the people concerned, the size of the team and project, and how UX professionals provide their expertise in an organization,” replies Peter. “While, in theory, the stages of design and development can have a clear separation, in practice, the boundaries between the stages are often fuzzy.
“A UX designer with a greater understanding of software engineering knows to consider the developer in their design. Often, small changes to a design can provide significant benefits for the implementation. For example, supporting reuse of components can make development faster, freeing up software engineering resources to focus on more complex areas. On small teams, people often perform multiple roles, so the UX designer might get involved in other activities. On large projects with complex requirements, teams sometimes revisit issues, requiring the UX designer to make changes to a design after implementation. If the implementation has changed the design, this can be very frustrating.”
“Ideally, UX designers and researchers should remain involved in the development process to ensure that what’s finally developed matches the intended design,” recommends Jim. “No matter how thorough the design deliverables are, I’m often surprised to see the final product and wonder, How did they come up with that?
“If you leave a project before implementation, you’re not there to answer the developers’ questions, and they can only make their best assumptions about your intentions. Once a design is complete, things always seem to come up—whether technical issues, unforeseen business requirements, last-minute changes, or timeline crunches. Developers and business stakeholders may cut corners in the design to meet deadlines.”
Be Part of a Product Team
“In organizations where UX expertise gets brought in from outside, a UX professional’s job is more likely—but not certain—to be over once a client signs off on the design,” says Peter. “Where UX professionals are part of an organization, a designer is more likely to have ongoing involvement in the development process rather than simply handing over the design at the end of the design phase.”
“The answer to your question varies, depending on how deeply you are integrated into a product team,” responds Yury. “I have experience working within three types of companies:
- outsourced developer—engaged for large, full-cycle projects by other companies
- UX consultancy—involved in only UI design-related phases on small to large projects
- product company—developing country- and region-wide products with continuous development of versions
“The process and involvement of the UX designer differed greatly in these companies. My general point is simple and well known: it’s critical for the UX designer to be involved in a project from start to finish, from the research and requirements setting phase to the launch. In this way, not only can you design a great user interface, but you can also be sure it survives the development process.
“When working for an outsourced development company, you take part in large projects for leading international clients. As a rule, a UX designer gets involved right from the start of a project and stays involved for its whole duration. It’s great because you can be deeply integrated into the product team and build strong personal connections with other team members. That helps a lot, because you can have more influence on project decisions during all of its stages. And if your workload is balanced, so you’re not participating in too many projects at once, you can dig deeper into UI design issues and make more conscious decisions.
The trouble is that an outsourced company often has little to do with the product vision—it comes from the customer. So, as a UX designer, you have limited influence and scope for your work. It’s even worse that the companies you work for consider your UX design activities overhead costs. They often think it’s enough to have a visual designer and don’t even think about usability.”
“In a UX consultancy, you have different pros and cons. UX designers have huge credibility and can influence product vision. Often customers turn to a consultancy especially for this—they understand the value of User Experience to their product’s success and want you to create a user interface that is well thought out through the tiniest details.
“On the bad side of things, sometimes clients aren’t able to involve UX designers right from the start and keep working with them until they launch a product—or don’t understand the need to do so. So you’re added to project team too late and have limited opportunities to influence UI decisions. Or, if you leave a project well before a product gets launched, you can’t support concept changes during the development process—and we all know how fast details can change. Another problem is that you lose your goodwill, so your beautifully crafted user interface gathers dust on a shelf. You can try working on site with a customer’s development team to lessen these problems. But constant interaction with a team and deep integration with another company can lead to budget and communication costs for a client. It can also be a problem for an agency itself—especially when trying to balance people’s time across several projects. I recommend that you read Jared Spool’s ‘Agencies Don’t Like Me Very Much’ for more discussion on this topic.
“I see working for a product company as the best situation for a UX designer,” reflects Yury. “You have the pros of other models because you work on a project from start to launch and can influence product-level decisions. You can follow an optimal work process because you don’t always have to make it scalable to all company projects. You can conduct user research when you need it—not just when it’s part of a customer contract—and develop deep domain knowledge. It’s very important to be able to constantly evolve products and sell your UI decisions to product stakeholders and owners. But things are not always rosy in product companies—for the same reasons as in other work environments: a lack of time or resources to build an ideal UX team and process. But product companies need User Experience to be competitive, so they try harder.”
“I believe the best way for User Experience to have an impact on development is for User Experience to be part of the development organization,” asserts Mike. “I know some disagree with this and feel that User Experience has greater maturity when it exists as a separate discipline. In my experience, however, that approach puts User Experience in an advisory capacity and dilutes its impact.”
Making a Bigger Impact
Robert offers “a few ways for UX professionals to have greater impact on the development process:
- Generate extremely clear and complete UX specs. The better the blueprint, the better the end result. And make sure it’s in developers’ hands before coding—and ideally, technical architecture planning—starts.
- Speak the language of developers. Understand their needs and motivations. Understanding developers is almost as important as understanding users. Collaborate with them in terms they can understand and relate to, and be sympathetic to their concerns—while also remaining firm about your own.
- Pick your battles. Be open to compromises on issues with limited user impact, and focus your negotiating efforts on the big items with significant user impact. Learn how to horse-trade!
- Remember that constraints can drive great design. When faced with roadblocks, redouble your effort to find clever, win-win solutions—for both users and developers. No design is so precious that you can’t improve it!”
“As a UX designer, if you want to have a greater impact on development,” suggests Peter, “learn more about other people’s roles and how you can support them most effectively. Helping software engineers to reuse code and understanding the constraints they are working within, spending time with them to understand their mindset will go a huge way toward making a project a success.
“Understand the key drivers behind a project: Is the deadline the most important thing? How much scope do you have to influence the outcome? Understanding the key drivers behind a project and what other people are trying to achieve will make a huge difference in your ability to ensure your project team implements a good user experience.
“It’s best to remain involved, so you can review the developers’ progress, answer questions, and help with the inevitable issues that come up,” replies Jim. “A great way to stay in the loop is to be involved in Quality Assurance’s (QA) testing process. That may sound odd, because UX professionals are not usually involved in this phase. But it’s a great way to know what’s going on.
“Quality assurance analysts look for bugs and defects in a user interface and missing requirements, but they may not always recognize design and usability problems. As a UX professional who’s involved in the QA process, you can enter usability and design issues in the QA bug tracking tool. In these tools, you can classify problems you find as usability or design issues and get developers to take them as seriously as other types of bugs. Using the bug tracking tool, you can assign these issues to the developer who needs to address them, then, once they’re fixed, assign them back to you for another review. Doing this elevates usability and design issues to having the same importance as other bugs and makes them part of the official process. Ideally, there aren’t going to be big issues at this point in a project, but you’d be amazed at the number of little issues you can find and get fixed before it’s too late.”
“In reality, the amount of impact a UX professional’s work has during the software development cycle very much depends on the culture of the team,” concludes Shanshan. “To some degree, it depends on how well you can communicate the value of user experience to a product team—including the product manager, software engineers, and marketers. The positive impact that user experience can make varies team by team. Deliverables sometimes can’t speak for themselves. Value gets lost from email to email. Without continually showing and telling, delivering and proving, UX people get pigeonholed as ‘the wireframe person’ or ‘the usability testing guy.’
“In addition to the direct impact UX professionals can have by being involved in the development process, we can also have indirect impact on product strategy. For example, software engineers can use the personas we develop in the early stages of a project to achieve better alignment with the product vision. Usability testing results from early prototype testing often remain valid much later in the development stage.”
User Experience and Agile Development
“I work in an agile engineering department—reporting to an engineering development manager—and any development project that has user interface impact has a UX person assigned to that team,” relates Mike. “We attend the daily scrums and get assigned tasks working on stories, but we do not have our time allocated—to avoid distorting coder resource planning or velocity calculations. We try to do our design work one sprint ahead of the team, working with product management and solution leads to develop high-level scenarios and mockups.
“In the course of a sprint, we introduce our scenarios and mockups during the planning process and at the start of a feature’s development, but the final design emerges, agile-style, during the development work. We actively work with the developers to review the design and implementation of the user interface—often on a daily basis—discovering aspects of our proposed UX design that cannot work due to technology constraints or considering alternative approaches the developers come up with.
“I’ve worked following a lot of different approaches, and I like this one the best: where the UX professional is part of the development team and the responsibility for a usable design is distributed across the entire team. The main role of the UX person is to facilitate this process, supply user data, inform the team of relevant standards, and provide early scenarios and mockups to help the team focus on user-centered requirements.”
“In my experience,” remarks Catalina, “UX professionals are a crucial part of the development process, especially on teams following agile methods. During every iteration, designers and developers should work together to make sure the implementation of the product portrays the product vision as the UX designer originally conceived it when creating wireframes and prototypes.”
“Our team follows a process that the American Institute of Architects (AIA) considers best practice for architectural contracts,” says Leo. “Services fall into four phases:
- Preliminary or Conceptual Design
- Design Development
- Construction Documents
- Construction Observation
“These phases have similar analogs in the digital design domain. In the digital world, we refer to the final two phases as User Interface Specifications and Development Consultation. If you are providing consulting services to a client, it may be difficult for you to negotiate your continuing to provide your services during these phases because they are labor intensive. In the first case, it just takes a lot of time; in the second, it is impossible to predict how long or how often a team will need feedback and consultation.
“Even if you are an in-house, captive resource, you may not necessarily be involved during these two final phases, even though you should be. The amount of consultation a development team needs often relates directly to the detail in the user interface specifications. In an agile UX environment, the final phase is when User Experience directly influences the development of their designs.”