O desenvolvimento bem-sucedido de aplicações raramente se resume a criar telas. A aplicação precisa refletir como as pessoas realmente trabalham, coordenar-se com os sistemas por trás dela e permanecer compreensível à medida que os requisitos se ampliam. Em ambientes móveis, web, desktop e quiosque, a abordagem foi tratar a experiência do usuário, a arquitetura da aplicação, as dependências de hardware e as necessidades operacionais como partes do mesmo problema.
O trabalho começou pela compreensão das decisões que os usuários precisavam tomar, das informações necessárias em cada etapa e das condições que poderiam interromper o fluxo. As interfaces foram então apoiadas por componentes reutilizáveis, serviços claramente separados e camadas de integração testáveis. Isso permitiu que as aplicações permanecessem simples para os usuários sem esconder a complexidade operacional em código frágil.