Le développement réussi d’une application ne consiste que rarement à créer des écrans. L’application doit refléter la manière dont les personnes travaillent réellement, se coordonner avec les systèmes sous-jacents et rester compréhensible à mesure que les exigences s’élargissent. Dans les environnements mobiles, web, bureau et kiosque, l’approche a consisté à traiter l’expérience utilisateur, l’architecture applicative, les dépendances matérielles et les besoins opérationnels comme les facettes d’un même problème.
Le travail a commencé par la compréhension des décisions que les utilisateurs devaient prendre, des informations nécessaires à chaque étape et des conditions susceptibles d’interrompre le flux de travail. Les interfaces ont ensuite été soutenues par des composants réutilisables, des services clairement séparés et des couches d’intégration testables. Les applications sont ainsi restées simples pour les utilisateurs sans dissimuler la complexité opérationnelle dans un code fragile.