Философское.
В своё время (лет двадцать назад) я читал классную книгу IBM по программированию систем на базе БД Lotus Domino. Книга мне не очень пригодилась, но там была очень обширная (почти треть книги) теоретическая часть, посвящённая методике проектирования эффективных интерфейсов информационных систем. Судя по тому, что я вижу, эта методика сегодня крайне малоизвестна, что делает окружающий мир очень неудобным местом.
Методика была интересна тем, что информационные системы предписывалось проектировать не исходя из возможностей программиста ("а давайте забацаем ещё вот такую финтифлюшку и посмотрим, вдруг она кому-нибудь пригодится!"), а исходя из потребностей пользователей системы.
1) Мысленно делим пользователей системы по ролям. Например: читатель, рецензент, автор, библиотекарь, администратор. Подразумеваем, что один и тот же пользователь в разное время может выступать в разных амплуа. Но может и в одном. Часть ролей может быть доступна не всем пользователям.
2) Для каждой роли расписываем список задач, которые пользователь должен выполнять в рамках этой роли. Часть задач может быть общей для разных ролей.
3) Самая сложная часть. Ранжируем список выполняемых задач по частоте использования.
4) Проектируем интерфейс так, чтобы сделать максимально быстрым (минимизация по количеству кликов) и максимально простым (минимизация возможных ошибок) выполнение тех задач, которые выполняются часто. Инструменты, необходимые для выполнения редко выполняемых задач убираются вглубь (например, выносятся с главного интерфейса на дополнительные панели или глубокие подменю) так чтобы не захламлять интерфейс и не мешать выполнению часто выполняемых задач.