Continuously improve user experience
meaningfully finishing software features 2026-03-03 #product #UX

- Software quality
- UX improvements ←
Choosing software quality means finishing the features you add, instead of stopping working on them as soon as they work. Unfinished features work, to some degree, but not for everyone. They don’t all have a good user experience (UX).
The feature fallacy
Just because you really want to measure something easily, doesn’t mean you can. Programmers have understood for decades that an increasing number of lines of code doesn’t measure progress, let alone success.
Similarly, despite naive software project managers’ wishful thinking, an increasing number of features doesn’t measure product development progress. Features don’t count unless people successfully use them.
Good UX design
UX design goes beyond designing how a feature will work, and handing over to developers. Good design includes a feedback loop.
Design includes evaluation, such as user testing and reviewing behavioural analytics, to learn how well a design performs. This work identifies barriers and friction that iterative design can resolve.
By doing this work, designers build experience about what makes different designs successful in different contexts. Good designers use this experience to shortcut feedback cycles, by anticipating both user experience friction and its solutions. You have to start from somewhere, and starting from good design gives you a head start.
Incremental units of work
Development teams commonly track development tasks, with types such as feature, improvement and bug. This creates the illusion that setting a feature task’s state to done means that the team has completed work on a feature. However, the feature lifecycle includes released and retired, but not done.
This feature task type doesn’t match your customer’s mental model of a feature. Developers’ feature tasks correspond to smaller units of work: development tasks and user stories. The feature type really means feature introduction.
What your customers calls a feature requires larger scale work. Crucially, this work starts with a feature task that introduces a new feature, and starts its feature lifecycle, but continues with a series of UX improvements and bug fixes.
Stop starting and start finishing
Too much feature introduction work and not enough UX improvement work has consequences. Sometimes, a team completes a task that introduces a new feature without following up with the UX improvements that make the feature successful.
Starting too many new features makes the software worse, by increasing feature complexity without improving the user experience. In the worst case, a software product only has a large number of half-implemented features.
Start once, finish twice
Ideally, you finish working on a feature in two different ways. First, continue improving an existing feature until it achieves its intended business outcomes. At the same time, continue improving its UX until it reaches the level of quality you choose for your product.
Deciding how much UX improvement work to do contributes to more broadly deciding software quality. Only when you stop starting new features can you start finishing new features, in terms of business outcome and product quality.

