In software development, empathy matters a great deal. This has important implications for the emerging best practice of human-centered design.
That's the word from Denise Yu, senior software engineer at Pivotal, Inc. Speaking at this week's Cloud Foundry Summit in Philadelphia, Yu assigns a slightly different shade of meaning to empathy when it comes to software development. "The classic definition of empathy means seeing the world through someone else's eyes," she relates. "In software, it has a lot more to do with how do you apply that empathy."
While Yu's remarks were directed at open source developers, she provides lessons for developers of all persuasions seeking to incorporate more human-centered design into their output. Empathy in software design means making a greater effort to understand the problems the user encounters, and overcome bias in all its forms. Conformation bias, of course, is well known, but Yu also cautions against "survivorship bias" as well -- addressing the requirements of only those users who stick with the product, instead of attempting to understand why users abandon a product.
This often requires digging deeper into user requirements, Yu explains -- and not just listening to "the people makig the most noise in the room." A way to think about this is "tracking the relationship with the community like you would a product." Be open to suggestions, and "try to make it clear there are no stupid questions," she says. Remember that developers shouldn't walk in with pre-conceived notions of what the final produt will look liek, since it's "hard to define what it looks like ahead of time."
What is happening across the software development space is a convergence of design with empathy, she relates. "Product communities and design communities have been talking about this for a long time, and now it's happening." This convergence -- human-centered design -- extends from software development to business problem-solving on a non-technical level as well. It's important to get involved and find out why users or customers reject some features and require others. "Empathy is no longer an option," Yu states.
Yu also elaborates on the need for empathy in software development in a recent article in The New Stack, where she observed that "empathy is a requirement for operating in an interconnected world. Pulling conversations about empathy into the world of open source software development will not only position companies that depend on that software for success, it helps regular users, as well as contributors and maintainers build the muscles for designing more impactful and humane technology."