Pull to refresh

Специализированный софт: Купить или написать?

Reading time4 min
Views1.2K
Приветствую хабровчан!
Думаю, многие сталкивались с проблемой выбора программного обеспечения для каких-либо специфических задач. В отличие от засилья всевозможных редакторов или клиентов для соц.сетей (Facebook, ВКонтакте и тп), подобрать узкоспециализированную программу крайне тяжело. Такой софт – продукт нишевый, соответственно производители такого софта малочисленны и интерес у сообщества к таким программам не велик (в сети нет ни руководств, ни обзоров, ни другой полезной информации) – приходится двигаться на ощупь.
Вот тут и наступают муки выбора – взять готового «кота в мешке» или же взвалить на себя бремя разработки софта «для себя любимого».
Мне не повезло пройти оба пути…

Начинал я свою рабочую деятельность в компании – купи-продай дистрибьюторе. Мы покупали большими партиями бытовую химию и косметику у разных производителей и продавали с доставкой великому множеству крупных и мелких магазинов. Кроме склада и десятка автомобилей в компании трудилась куча-мала торговых представителей, которые ездили по клиентам и собирали заказы. Именно эту часть работы я и хотел оптимизировать.
Дело в том что, каждый торговый агент с утра до ночи собирал заказы (просто записывал на бумажку ), а вечером возвращался в офис и надиктовывал эти заявки операторам, которые вбивали их в базу данных (1С). Все это занимало достаточно много времени – приходилось собирать и загружать в автомобили заказанные товары всю ночь.
Я начал искать решение. Сразу стало понятно, что в этой схеме лишние операторы. Если бы торговые представители (или клиенты) напрямую вносили заказы в базу данных, минуя бумажные носители, да еще в реальном времени – было бы просто супер. Такие решения на рынке уже были – это специальные программы, работающие на КПК с возможность обмена через GPRS/WiFi. Из не очень большого числа предложений я выбрал решение от компании, которая была на тот момент лидером отрасли. Тут же купил пару КПК и начал экспериментировать. Все заработало, далеко не «с пол пинка», но все же заказы начали приходить напрямую в базу данных в течение дня – и от операторов и от ночной смены на складе в итоге мы отказались, без потери скорости доставки товаров клиентам.
Омрачало только то, что сам софт был не очень удобен. А все из-за того, что разработчики с каждым релизом вносили все больше и больше функций, которые часто были плохо продуманы, а иногда и откровенно лишние. Программа начала напоминать какого-то неповоротливого монстра. Работать с ней — это как использовать Photoshop для просмотра фотографий…
Года два я терпел – точнее даже не я, а торговые представители – я периодически их подлавливал, когда они вечером сидят и перебивают заявки из старых добрых бумажек в новые модные КПК. И я решился на написание заказного решения под свои нужды. Нашел компанию-разработчика, составили ТЗ и запустили в «производство».
Что я хотел получить в этом новом решении?
  • Во-первых мне не понравилось, как я внедрял текущий продукт в свою учетную систему. Тут были сложности с тем, что структура данных, которыми обменивались КПК-клиенты с БД (1С) была плохо продумана, излишне сложна и запутана. Кроме этого для организации обмена требовалось «поднять» кучу дополнительных подсистем: отдельный сервер с белым IP; служба, которая принимает данные по неописанному протоколу; службу Message Queue; парочку плагинов (внешних компонент) для 1С и при этом фактически обмен происходил с помощью простых файлов, «расшареных» по сети :D. То есть мне была необходима программа, максимально простая в интеграции с другими системами – без лишних звеньев и сторонних компонент.
  • Во-вторых интерфейс, о проблемах с которым я уже писал выше. Новая программа однозначно должна быть удобна в обращении.
  • В-третьих программа должна содержать только необходимый мне функционал, без излишеств, которые никому не нужны, а только усложняют работу.
  • Ну и конечно была масса мелочей, которые хотелось сделать лучше.

Небольшое сравнение ключевых технических моментов:
Стороннее решение Собственное решение
Процесс обмена с БД Связь напрямую по TCP/IP между КПК и «офисным сервером». Специальный сервис слушает TCP-порт, получает и раскладывает данные по каталогам файловой системы, и «дергает» 1С через Message Queue и специальную dll-ку, а 1С в свою очередь уже из файлов загружает данные с помощью еще одной dll-ки. КПК оставляет данные на ftp-сервере, а 1С забирает данные с этого сервера с помощью всего лишь одного COM-объекта.
Юзабилити В виду избыточного функционала, интерфейс перегружен всякого рода галочками, списками и не нужными подтверждениями. Наиболее часто востребованные действия делаются в несколько касаний. Упрощен доступ к основным функциям (создание заявки, выбор клиента, навигация по списку товаров). Значительно удобнее ввод количества (самый «долгий» процесс в работе) – для ввода можно использовать калькулятор, хардварную клавиатуру или джойстик (мега удобно: качнул направо – добавил ящик/штучку, качнул налево – убавил…), или же можно просто «нащелкать» количество пальцем или стилусом.


Через определенное время была готова первая бета-версия и я начал естирование. Несмотря на опасения, что тестирование и отлов «багов» затянется, я в скором времени получил релиз программы и быстренько перевел все свое хозяйство на новый софт тут же ощутив преимущества – вся система практически не требовала какой-либо поддержки с моей стороны (в отличие от прошлого решения, где с завидной периодичностью мне приходилось что-то где-то шаманить). И самое главное – торговым агентам стало гораздо удобнее работать. Бумажки исчезли полностью, а торговые агенты стали похожи на мобильных геймеров – работают только на КПК.
Спустя некоторое время ко мне обратилась другая компания с просьбой внедрить подобную технологию (кто-то из руководства этой компании увидел моих торговых агентов с КПК «в полях» и очень заинтересовался). Я попробовал и этот опыт получился настолько удачным, что я продолжил развивать продукт вместе с разработчиком.
Прошу любить и жаловать:

http://www.imta.com.ua
В качестве вывода:
Не стоит бояться изобретать велосипед. Поверьте, никто лучше вас самих не знает ваших потребностей, а вера в «умного дядечку», который все придумает за вас, вряд ли принесет вам необходимый результат. А потратив немного собственных усилий – можно получить не только рабочее решение, но и некоторые другие «плюшки». С другой же стороны, не стоит забывать, что разработка собственного продукта не всегда рентабельна и требует много внимания и усилий по поддержке и развитию – как поступить в каждом конкретном случае решать только вам.
Успехов!

P.S. Эта статья написана не только мною. Когда я ещё жил в Киеве, я работал в очень уютной компании IMESC. Одним из проектов, над которыми я работал была IMTA. У меня до сих пор самые лучшие отзывы о коллективе и партнерах компании, и когда один из инициаторов этого проекта (Алексей Плутенко) предложил мне опубликовать статью, я с радостью согласился.
Tags:
Hubs:
+53
Comments39

Articles