The SUPI Approach
Let’s try the SUPI approach instead: Skeleton, Usable, Practical, Ideal. The idea is roughly the same, but the analogy is easier to wrap your head around on agile projects, especially when it comes to software. Let’s have a look at the different dimensions.
When you are developing a larger project, there is always some basic work that has to be done to get the ball rolling. In software, most times this is the basic structure that needs to be completed. A lot of times you even start with a walking skeleton — a working concept version of your product. Usually, you don’t want anybody to see much of this version. It lacks the shiny interface and can be a bit scary to use (making it the ideal software to scare users on halloween, though). In other words, this is the uttermost basic functionality. Sometimes we develop features that are too complex to even have this version, but whenever possible it’s nice to have one.
If our feature is a list of all former orders, this version might just show a page with the order numbers.
Good job! You have set up a version that handles the most basic functionality, but is it really usable? Probably no user would want to touch this version, let alone keep it as it is. Therefore, the second iteration is about making a feature just rich enough to get it to the point of being exactly this: usable. Nothing shiny, sometimes even a bit ugly, but something that enables functionality in the most basic way.
Our order list from SKELETON now shows the orders in a table with just the linked order numbers and the date for all former orders now. The user probably will miss some functionality, but they’re at least able to use the feature.
Before this iteration step, the functionality is there in its basic form, but everything is just a bit inconvenient. The user experience is not great. Our next step gets a bit fuzzy, because depending on how much of a perfectionist you are, practical might go a long way. The idea of the practical iteration is that the »cumbersome« way of doing things gets removed. It might still get polished and perfected in later iterations, but this version is something that should be enough for most use cases.
Our list shows the status of the order on the table and is arranged by date descending. You might now argue that a list of 100,000 orders in the usable step is not working. Well, there you have your practical answer: your usable step should have entailed pagination. For a normal webshop pagination on the order list might not be a requirement, therefore I did not add it before.
Here you build all the bells and whistles. Every possible wish that should be included in your feature in order to be perfect (and is not skeletal, usable or practical) goes here. I’d wish for you to be able to spend most of your time making your product more ideal. But from my experience, reality mostly looks a bit different. Most days you spend your time in the former iterations, being glad if you’re able to differentiate those states well enough. The ideal version is for you to polish the feature and make it even more rich in functionality. But be aware that you are spending precious time on polishing instead of doing a skeletal or practical version of the next feature in line.
Enable sorting filtering and search on the orders table of our list and add more details like date delivered and amount purchased.
Sure, you will find cases where one or the other definition of SUPI doesn’t completely apply, but at least it enables you to divide work in a way that lets you ship vertically sliced features and allows some kind of functionality at every step. Even if you’ll sometimes want to hide the feature because it simply does not fit with the rest of the users expectations.
One of the most important parts of this naming convention and the idea behind Dimensional Planning is that you can actually discuss this with customers and users quite easily. It makes the conversation about the work and the steps needed to reach a certain level of feature richness very clear. So besides being a wonderful planning tool it enables better communication.