Pengembangan aplikasi yang berhasil jarang hanya soal membuat layar. Aplikasi harus mencerminkan cara orang benar-benar bekerja, berkoordinasi dengan sistem di belakangnya, dan tetap mudah dipahami saat persyaratan berkembang. Di lingkungan seluler, web, desktop, dan kios, pendekatannya adalah memperlakukan pengalaman pengguna, arsitektur aplikasi, dependensi perangkat keras, dan kebutuhan operasional sebagai bagian dari masalah yang sama.
Pekerjaan dimulai dengan memahami keputusan yang perlu dibuat pengguna, informasi yang mereka perlukan pada setiap tahap, serta kondisi yang dapat mengganggu alur kerja. Antarmuka kemudian didukung oleh komponen yang dapat digunakan kembali, layanan yang dipisahkan dengan jelas, dan lapisan integrasi yang dapat diuji. Hal ini memungkinkan aplikasi tetap sederhana bagi pengguna tanpa menyembunyikan kompleksitas operasional di dalam kode yang rapuh.