I wrote a post over at 99U about the levels of designers and how I think you build a great design team. You can read the whole thing there, but here’s a snippet about states:
If level two comes naturally to most designers who have grown up in a digital world, level three most definitely does not. States are about understanding all the different possible outcomes of a given task within a product and being able to design for all of them. Things like errors are obvious, albeit often forgotten, while actions like escapes and backs are much less frequently planned for.
To draw a parallel, a great engineer thinks in states. Before they write a line of code they have come to understand all the different outcomes and use that understanding to design a fault-resistant system. One of my favorite lines from one of our engineers recently was, “when I start typing the work’s done.”