

This Is All Your App Is: A Collection Of Tiny Details - kamaal
http://www.codinghorror.com/blog/2012/05/this-is-all-your-app-is-a-collection-of-tiny-details.html

======
danielmiller
Hold on a second, Jeff!

 _> Your software, your product, is nothing more than a collection of tiny
details. If you don't obsess over all those details, if you think it's OK to
concentrate on the "important" parts and continue to ignore the other umpteen
dozen tiny little ways your product annoys the people who use it on a daily
basis – you're not creating great software. Someone else is._

I think the true moral of his story contradicts his conclusion.

He and his wife had a problem: They didn't like manually feeding their cats.
So they bought a couple of automatic cat feeders and enjoyed owning
them—despite several small, annoying flaws. In fact, he and his wife dutifully
employed those feeders for _five years_ until he noticed (and purchased) the
company's newer, improved version!

I liked the essay, but I suppose Jeff and I disagree on what the story teaches
us.

This story is about a company that identified a pain point (manually feeding
cats is annoying) and created a product that alleviated the pain (an automatic
cat feeder) despite several flaws (a bad color, an annoying button guard, and
a difficult to clean food bowl, to name a few). Over time, the company
resolved those flaws, but they didn't wait until all of the flaws were
resolved before initially shipping their product. Instead, they shipped a
useful, albeit imperfect product, and earned themselves at least two repeat
customers.

~~~
nadam
I am not a marketing expert, but my reaction to this article was that it
pretty much depends on what 'market phase' we are in.

In a new market with no competitors what matters is that someone created an
automatic cat feeder at all.

In a more mature market with several competitors those small details matter
more.

In a very mature market maybe several competitors get the tiny details right,
so maybe building a brand matters a lot...

~~~
mmahemoff
The product in the early phase was called a Dancing Bear in the book, "The
Inmates are Running the Asylum". You don't need the bear to move like a
professional dancer because "look at that, it's a bear ... and it's dancing!".
The details start to matter when more dancing bears come on the scene.

~~~
astral303
+1. "The Inmates Are Running the Asylum" is an excellent book and a must must
must read for anyone in software engineering. It will open your mind and give
you a new perspective on software.

The dancing bear analogy is on the money. It's like early computers: "OMG,
word processing! I can "delete" my typos! I can reformat my paragraph!"
Today's computers: "it's hard for me to figure out how to reformat the
paragraph. Next app!" Also, early computers: "the computer crashed, I
should've saved!" Today's computers: "the damn computer should not have lost
my data no matter what happened."

------
codeka
> We never changed the actual feed schedule, but just changing the time for
> daylight savings was so incredibly awkward and contorted we had to summarize
> the steps from the manual on a separate piece of paper as a "cheat sheet"

Not really related to the point, but should you be adjusting the time for
daylight savings at all? I mean, the cats don't care about the arbitrary 24
hours we humans use to divide up the day, so wouldn't adjusting the time for
daylight saving just seem like an arbitrary change for no good reason to a
cat?

~~~
Produce
I'm not a cat and it still seems like an arbitrary change.

~~~
keithpeter
I am not a cat either, but I do live 52.5 degrees North and quite often visit
57.5 degrees North. Daylight saving is not arbitrary for daylight liking non-
cats

~~~
duncanj
But daylight saving occurs during the time when you already have more daylight
than the vast majority of habitable landmass does. You aren't "saving"
daylight at all during the daylight poor months when you're inside at work
during the entire daylight period.

~~~
keithpeter
Up here its British Summer Time and then just UT in the winter. The phrase
'daylight saving' is not used here.

<http://www.polyomino.org.uk/british-time/>

Besides, we have large windows.

------
MortenK
Today I was designing wireframes for a web application, using a little
prototyping app called Balsamiq mockups. It is a little, very focused
application, and the detail level is nothing short of amazing. Typing a few
letters and hitting enter will create a new control and add it to the canvas,
already focused and ready for positioning. Creating a text paragraph and then
writing the word lorem, will automatically create 3 lines of lorem ipsum text.
There is a filterable icon gallery. One click export to PNG, and all other
kinds of little nuggets.

I agree with Jeff Atwood, that it's those little details that makes makes an
app enjoyable, where before it might have been merely tolerable.

------
adrianhoward
A vaguely related point to this is how the problems with getting details right
are related to the simplicity or complexity of the product.

The more complex the product, the more details it has, and the harder it is to
get all of those details "right". Sometimes it's impossible to get all of them
"right" because different market segments have different ideas of what "right"
is.

That's one of the core reasons I recommend that people start with smaller,
simpler products. The easiest way of avoiding getting details wrong is to not
have them in the first place.

It's much easier to delight a customer with a small simple product - because
there are far fewer things for you to foul up :-)

------
dsr_
Nobody's mentioned the most important point here.

The improvements to this product were so substantial that all of Jeff's
audience now has some degree of brand awareness and a positive bias towards
it.

When was the last time an upgraded product -- one that you didn't even get
discounted -- made you so effusive?

------
jroseattle
I get where Jeff is going with this post, and I agree and disagree. It may
seem like splitting hairs, but I find a big difference between details and
decisions. My version: your app is a collection of decisions.

The details (and implementation) of an app flow from those decisions. Include
or exclude a feature? That's a decision. Buttons on the left/right,
top/bottom? Decision. Add a pluggable architecture? Decision.

Look at a rather successful product like the iPhone. Much of its success can
be traced to getting lots of details right. But understanding what was going
into the iPhone -- the decisions made about how to create it -- led to those
details. Touchscreen, app store, glass cover, all of it were active decisions.

Executing details are absolutely critical, but making the decision of what to
do (or not to do) is where it all starts.

~~~
hellerbarde
That is a very good point, coming from the developer's view.

I think that Jeff's point is more valid if you look at it from the customer's
view.

~~~
amirmc
And from the customer's point of view, the first product did the single most
important thing properly. Feed the cats with minimal human input. That's
_still_ a decision on the creators' part i.e the creators could have sat down
and bickered about colour options but they (presumably) took a decision to
_fix the customer's problem_.

The fact that Jeff used the same feeders for _five years_ is a testament to
how well the original designers were able to address the core problem _well
enough_.

Edit: They also functioned _well enough_ that he bought the updated version
_on faith_.

------
bconway
Having owned both of those cat feeders, for all the improvements made, the new
model has a fatal flaw not readily apparent from the pictures shown: The edges
of the hopper are not at a steep enough slope to move all the cat food
downward (depending on size/shape, I imagine). This allows significant amounts
of food to pile up on the sides and not be funneled into the dispensing
mechanism underneath. Worse than just causing the unit to have a much smaller
usable volume that expected, it gives the appearance of still being full when,
in fact, the cats are starving.

I'm not sure how any of that figures into his analogy, though.

~~~
bostonvaulter2
With that said do you still prefer the new one to the old one?

------
nocipher
This reminds me of the EVE Online player revolt. Those details your customers
care about are the most important parts of your product.

------
diminish
Or, Your app is the single function it does the best

Or, your app is the fundamental philosophy it its design,

or, or, or...

------
estrabd
This would not work in a multi-dog household.

