Однажды в компанию поступило сообщение от бывшего коллеги одного из наших сотрудников, что есть заказчик которого интересуют наши услуги. Сначала это была просто задача: разработать сервис для лесозаготовительной компании, который позволяет заносить информацию в базу данных и строить определенные отчеты. Командой мы начали обсуждать проект и в наших головах родилось сразу миллион вопросов: почему и зачем. Не строя домыслов, было решено провести звонок с бывшим коллегой. Ряд вопросов необходимо было прояснить.
Первый же звонок дал понять, что проект совершенно нестандартный. Например, необходимо было организовать работу оператора в оффлайн-режиме. И все бы ничего, но рабочей станцией заказчика и операторов является Windows 10. С оффлайн-режимом мы уже работали и знаем, поэтому трудностей тут никаких не возникало. А вот приложение под Windows 10 - это новость! Таких заказов у нас еще не было, ведь "зверь" совершенно редкий. Дальше мы решили провести звонок с заказчиком, чтобы прояснить цель самого проекта.
На звонке с заказчиком удалось понять следующие проблемы:
Набор проблем оказался понятен, откуда и вытекала цель внедрения данного проекта.
Мы выявили бизнес-требования, которые необходимо было выполнить и принялись за расчет проекта. В процессе переговоров мы пришли к нескольким вариантам реализации: с внутренним сервисом отчетов, реализованных в самой программе, либо интеграция BI-аналитики. После ряда звонков и подготовки прототипов решено было остановиться на следующем объеме проекта:
Объем работ был согласован, и мы принялись за аналитику и разработку архитектуры. Требования к дизайну в целом отсутствовали, таким образом мы пользовались полностью нативными UWP-компонентами.
Пример экрана на стадии аналитики (Сплав)
Пример экрана на стадии аналитики (Приход лесовоза)
Не обошлось и без нюансов, на стадии разработки специалистам не удавалось оперативно построить интерфейс без знания UWP-платформы. Проект еще и примечателен тем, что к нему подключился наш Генеральный Директор, и "засучив рукава" помогал команде. За спиной у директора обширный опыт в разработке на многих языках программирования (в том числе и на C#, языке, который использовался для написания данного приложения) и управлении проектами. Команда сразу почувствовала помощь, и мы начали двигаться гораздо интенсивнее.
Разработка сервера была завершена, базы данных прошли миграцию и были готовы к тестированию. Оставалось подключить клиента и посмотреть работу offline-синхронизации. К счастью, все прошло гладко. Данные успешно добавлялись на клиенте в режиме отсутствия интернета и с успехом попадали в базу данных, когда связь возобновлялась. В режиме онлайн все работало безупречно.
Приход, рабочая версия продукта
Настройки, рабочая версия продукта
Добавить приход, рабочая версия продукта
В процессе работы мы несколько раз уточняли требования, так как первоначальные отчеты в бумажном виде не совпадали с ожидаемыми данными, получаемыми в программном комплексе. Мы добавляли новые поля в базе данных, меняли их типы и добавляли новые настройки. В итоге, Заказчик получил тот продукт, который ему действительно нужен и удобен в использовании.
Оставалось дело за малым, необходимо было создать ряд отчетов. Мы уже делали ряд решений на Microsoft PowerBI и были готовы.
Первые отчеты были примитивные и не составили затруднений.
Отчет Погрузка / Разгрузка
Отчет Сброска
А вот последние два доставили хлопот: линейное отображение данных не подходило, но и группировка давала ряд ненужных вложений. После нескольких итераций и попыток мы победили данные отчеты.
Отчет по вывозке на нижний склад
Отчет по вывозке из лесосеки
Прошла буквально неделя, а мы уже получаем восторженные отзывы нашего заказчика: "Спасибо! За первую неделю мы уже нашли несколько "кубов". А вот и подтверждение нашего успеха!"
Благодарственное письмо