While reading an article about the shift to responsive design, ‘View Full Site’ must die by Jared Spool I came across a reference to Brad Frost’s Atomic Design system. In Atomic Design a site is made up of Atoms (buttons, fields, images), molecules (combinations of atoms), Organisms (combination of molecules), Templates (groups of organisms forming pages and displaying layout) and Pages (specific instances of a template). A very clear way to break down the components of a site with a chemistry twist. I particularly like how each higher level builds on interactions with the previous level. Atoms by themselves aren’t that interesting but molecules…there’s something working together.
I highly suggest a read if you aren’t familiar with it!
Having just gone through the MVP process for the next version of the application I work on, I found this article “The Experience Makes the Product, Not the Features” from Lee Dale particularly apt. The article discusses how to have a focused MVP, reduced to it’s most important, most critical function of your application.
But my experience seems to be a little different. The most frustrating thing, for me, isn’t a bloated MVP. It’s a cut to the bone, “Seriously, this is the smallest amount we can develop and still call it that feature,” version with that graveyard of enhancements that sit out to side hopefully awaiting a “just in case” scenario. Too often the cuts are small things that would increase the user’s experience in a big way. While new features are the meat and bread of an application, it is the subtle things, the A1 and cinnamon butter sprinkled on top, that really make the user raise their eyebrows in surprise. (Delighted surprise. I don’t know if there is any other form of surprise that you ever want your users to feel. Unless you work on a horror themed product.)
For example, your application decides to add a search feature. Highlighting the relevant matches/text in a search feature is such a small thing respective to the work it takes to code the search, but this could be considered a “Nice to have” and not a critical function. But for one, users tend to expect this behavior having been ‘trained’ by other applications that use this and for another thing it makes it easier to see how something matches to the search criteria. Highlighting improves the speed and accuracy of the user searching for something. So yes, the essential functionality is the “search” function, but the highlighting allows the user to use search more efficiently.
There is a happy ending, at least for this highlighting in search example. I fought for (and got) the highlighting but compromised by agreeing highlighting dates brought a larger level of complexity and risk to the code. There’s always a next version… 😉
My wish for you: May your product management’s definition of “essential” always line up with yours.