Как многие уже поняли из предыдущего опроса, мы в нашей маленькой, но очень гордой компании (а я уже не один – за прошлый месяц компания по числу сотрудников выросла на 100% и нас теперь аж двое! Вот он, эффект “низкой базы”!) занимаемся созданием онлайновой складской учетной системы. Тематика не очень близкая к данному сайту, но поверьте – при создании системы то один, то другой лайфхак приходится то примерять на себя, а то и вовсе придумывать заново.
Вообще, учетные системы на удивление схожи с системами учета времени и планирования дел, о которых я здесь иногда пишу. Только вместо учета нематериального времени учитываются штуки более простые и понятные – товары и деньги. В полной аналогии с тайм-менеджерскими приложения системы складского учета бывают очень простыми. В пределе – ограничиваются ручкой и бумагой, на которой записывается приход и расход товаров, а в конце дня “сводятся” итоги. Но есть и другая крайность – крупные корпорации используют сверхнавороченные ERP-системы с сотнями форм, отчетов, таблиц, сотнями тысяч, а иногда и миллионами строк компьютерного кода “под капотом”
С одной из таких систем я долго работал и, поверьте, это был весьма специфический опыт: на исправление крошечной ошибки иногда уходило несколько недель, большая часть из которых тратилась на то, чтобы продраться сквозь хитросплетения программы и исправить-таки ненавистный баг, не испортив при этом то, что уже работает нормально. Немудрено, что такие системы очень тяжело и долго внедряются, а иногда не внедряются совсем! Все время, пока я работал над учетными системами, я мечтал о “золотой середине” – программе, которая подстраивается под навыки и потребности пользователя, помогает и поддерживает, прощает ошибки и вообще – изо всех сил старается помочь, а не сделать сложнее и без того непростую жизнь. Но долгое время мне казалось, что это утопия и подобную систему создать в принципе невозможно.
Пока в 2007 году я не увидел сервис под названием Twitter. Предельно простая, я бы сказал – аскетичная система коротких сообщений росла органически, постепенно внедряя то, что придумывали сами пользователи – например, хэштеги и значок @ перед именем пользователя… Чем-то это напомнило мне историю об архитекторах парка, асфальтирующих тропинки, которые люди протоптали на газонах – они просто делали удобнее то, чем все уже и так пользуются! Кажется, правильное направление было найдено.
И мы принялись за работу. Повторять функционал знаменитой на всю страну 1С было бы глупо. Не использовать потенциал, который дает возможность совместной работы в Сети – глупо втройне. Мы решили создать предельно простую систему складского учета, “понимающую” человека, ее использующего, ориентированную в первую очередь на “помочь сделать тебе то, что ты хочешь” нежели на “шаг влево, шаг вправо – попытка к бегству”, свойственную традиционным системам. В ходе работы над проектом как-то само собой оказалось, что буквально каждый элемент привычных систем управления требуется если не изобрести заново, то уж по крайней мере критически пересмотреть.
Самый простой пример – поиск. Знаете, что произойдет в большинстве учетных систем, если вы хотя бы на один знак ошибетесь в написании названия товара? Вам с удовольствием сообщат, что подобного товара в системе нет и… правильно – предложат создать новый, порождая и без того немалую путаницу в огромной базе данных! В итоге спустя некоторое время в системе начинают функционировать сразу несколько товаров-признаков, отличающихся друг от друга буквально парой символов, лишним пробелом, запятой вместо точки. Я уже не говорю про товары, допускающие двойное написание – догадайтесь с первого раза как в системе заведены духи – L’oreal, Лореаль или Л’ореаль? В то же время пользователям поисковых систем такие трудности неведомы – программистами Yandex, Google и Bing давным давно освоены разнообразные алгоритмы нечеткого поиска, предлагающие нам наиболее похожий по написанию и смыслу вариант, если по вашему запросу ничего не найдено:
Да, в последнее время у многих вендоров появились опции, отдаленно напоминающие такой удобный “нечеткий поиск”, но его настройка и поддержание в рабочем состоянии – задача нетривиальная и ложится на программистов и системных администраторов. В то время как у поисковиков все “просто работает”.
Дальше – больше. Похоже, что-то необъяснимое мешает встроить в учетные системы нормальную поддержку дат, когда вместо абстрактного 10.12.2012 (где нередка путаница вида: “это двенадцатое октября или 10 декабря?”) на экране вы видите предельно понятное: “Строка платежа – завтра, в четверг”. И мы уже не говорим о правильной типографике, подборе и размере шрифтов, склонении числительных и правильную работу с округлениями – обо всем этом крупные вендоры давно позабыли и вместо этого идут по пути постоянного усложнения своих детищ, в результате чего экран типичной “учетки” сегодня похож, скорее, на панель управления космическим кораблем, в тонкостях которых тщетно пытается разобраться не только начинающий, а даже и “продвинутый” пользователь. Посмотрите, как это выглядит.
Ну, что ж – пришла пора все это изменить. О том, как именно, постараюсь написать в следующих заметках. А на закуску – пара скриншотов нашего продукта, который сейчас находится в активной разработке. В нем все вышеупомянутое, разумеется, будет