Values in Software Design

SoftwareDesign

I thought that the value of software comes for its reach, how much a person can accomplish using it. But that may have been a poor and disheartening way to view it. Poor in that it doesn't capture the true value of software and disheartening in that it forces a chase after more features and more complexity. Well designed software isn't really about what one can accomplish while using it, but rather about how enjoyable it is for someone to use.

What we prioritise when making software has incredibly knock on effects down the chain, and therefore choosing a set of values by which decisions are made is absolutely critical. Valuing objective metrics like Time on Page or other proxies for engagement is a easy position to find yourself in. Like most easy positions you arrive at, this one is suboptimal. What we're trying to get at with these sorts of metrics is a sense of how much a user enjoys using a specific product.

The simplest way to get a sense of how much a user enjoys something is to ask them. Feedback has the highest signal to noise ratio, more so than any other metric. The question then is how do you take that feedback and iterate? In a metrics driven approach you would A/B test solutions, and see which option yields the best metrics. Facebook is known to use this approach when testing a new feature set. It's equivalent to having a hunch and throwing it up on the wall to see if it sticks. Now I don't mean to say that these hunches are essentially random, but that the outcome of an experiment is wholly defined by what metrics you measure. The metrics are driving product changes instead of reasoned thought.

It's clear that people need to consider the total of available information, and decide which direction to go forwards. When making such choices what ought to be their north star? What framework should we use when deciding what to make, how to represent it, and how to engineer it?

With the insight of why a metric is behaving as it is, our view of the world changes. Sometimes this changes our core principles, other times informing our execution towards our north start, and occasionally correcting unfounded assumptions. What's important is that we use the metrics to inform our view of the world, rather then letting the metrics define the boundary of our world.

How does what a user experiences play into how we think about what to make and how to approach it? Fundamentally, user empathy needs to be part of your guiding principles. When a companies vision of the future aligns with an individuals, a strong connection is formed as the individual actively wants the company to exist in the world. The question of how to use metrics to inform decision making requires people to sit down and think deeply about what they are trying to achieve, there is no other substitute.