На днях мне опять пришлось попользоваться сайтом госзакупок Ярославской области: из училища попросили помочь разместить план-график закупок. Во многом из-за этого сайта я и перестал работать в училище, потому что пользоваться им — это какой-то изощрённый мазохизм. За те два-три года, как он появился, лучше он практически не стал, как был говном, так и остался. В принципе, у них не совсем плохой архитектор базы данных. Одна сущность — одна табличка, всё в порядке. А вот о том, что кроме БД должен быть удобный интерфейс, они, похоже, не знают. О том, что интерфейс надо проектировать, разрабатывать, тестировать, в конце концов.
Когда я учился в университете на третьем курсе, в 2006 году, у нас был курс баз данных. Там мы писали на Delphi обёртку для работы с базой, из серии, кинул на форму пару компонентов типа DBNavigator, ListView, кнопочки, и вот оно приложение. В принципе, они недалеко ушли от такого, только это веб, 2017 год и серьёзное приложение, а не студенческая лаба. Всё сделано очень топорно, всё по кнопкам: получение списка, добавление, изменение.
Логика тоже извращённая: например, есть два одинаковых с виду списка, в одном позиции плана закупок, в другом позиции плана-графика. В обоих есть кнопка +, по которой добавляется позиция. Но нельзя просто так взять и добавить позицию плана-графика и связать её с позицией плана закупок. Нужно зайти в список позиций плана закупок, выбрать нужную и выполнить операцию “Создать позицию плана-графика”.
Главная проблема здесь в том, что интерфейсно это никак не отображается. Интерфейс предоставляет возможность разных сценариев работы, но верным будет только один, который описан в инструкции и далеко не всегда очевидный и интуитивный. Инструкции — это отдельная боль. Куча дебильной информации в духе “Инструкция к инсталлятору” — нажмите “Далее”, “Далее”, “ОК”. 50 страниц с картинками. Зачем нормальному человеку это читать — неизвестно. А потом выясняется, что на 51 странице было даже большими буквами написано, что вам надо что-то добавить, то не надо нажимать кнопку “Добавить”, а надо зайти в другой раздел и нажать кнопку “Создать”.
Вот вам вообще когда-нибудь требовалась инструкция к сайту типа “ВКонтакте”? Или к почте, или к поисковику? Такая капитальная, на 500 страниц с картинками? Причём функциональность и нагрузка там куда больше, чем у закупок Ярославской области. Нет, конечно, если бы требовалась, мы бы нашли другой сайт, где сразу и без геморроя понятно, как работать. Если бы это была коммерческая система, то даже из тестирования не вышла бы, потому что провалилась сразу. А так, работает же, пусть через жопу, но работает. Мы проект сдали, инструкции написали, деньги получили, а как этим пользоваться — не наша проблема.
И ещё одна заметка: почему я в своё время стал пользоваться Яндекс-браузером, а не Google Chrome. Допустим, мне нужно зайти на какой-нибудь сайт, например, avito.ru. В хроме я начинаю набирать: avi, хром предлагает avito? Я жму Enter и вместо сайта попадаю в поиск гугла. Приходится нажимать на эту первую ссылку. В яндексе я сразу попадаю на нужный сайт. Убрали всего один ненужный клик, но разница колоссальная, так гораздо удобнее.
В общем, не забывайте о том, что интерфейс должен быть удобным, а если вас будут звать работать в Кристу — не соглашайтесь ни за какие деньги. Если у них такой бардак в продакшене, то что в организации вообще сложно представить.