Сегодня у нас интервью с разработчиком, наверное, самого необычного софта для телефонов. Многие, думаю, знают, что в ходе спецоперации на Украине активно применяются различные устройства, создатели которых никогда не предполагали их военного использования. Время от времени в разных странах мира появляются сообщения об испытании того или иного смартфона в качестве части экипировки солдата, но реальность показала: в бой пошли устройства, которые просто купили в ближайшем магазине электроники. Впервые я увидел, как бытовую электронику применяют в боях, очень давно. В одном из репортажей из Сирии можно было наблюдать, как расчет миномета вычислял угол наклона ствола, просто приложив к нему iPad. Не факт, что подобное «прицеливание» сильно способствовало повышению точности огня, но я абсолютно уверен, что компания Apple никогда не предполагала такого сценария использования своего планшета.

Разумеется, перенос арабского опыта на территории бывшего Союза существенно преобразил сам характер применения планшетов и смартфонов. В частности, их стали использовать не как средство связи, а в качестве одного из инструментов управления артиллерийской стрельбой. О том, как это получилось на практике, от идеи разработки артиллерийского ПО для ОС Android до его применения на позициях артиллеристов ДНР, согласился рассказать Дмитрий, создатель приложения ПУО-10Э.

— Приветствую, Дмитрий! И сразу хочу поблагодарить тебя за уделенное время. Давай начнем издалека. Что за образование и работа были у тебя в мирной жизни? Насколько я знаю, профессиональным военным ты не был.

— До войны (до 2014 года) — сугубо гражданская жизнь. Окончил ПТУ, а дальше передо мной встал выбор — или деньги зарабатывать, чтобы как-то жить, или учиться дальше. Я выбрал работу. Перед самой войной работал в банке, в департаменте информационных технологий, инженером по ремонту банкоматов и терминалов самообслуживания.

— То есть это сфера, прямо связанная с практическим применением IT-решений. А собственный опыт написания приложений у тебя был?

— Нет. Непосредственно разработкой я занялся уже позднее, когда появились время и возможности между выполнением служебных обязанностей уже тут. До того — максимум какие-то отдельные скрипты для автоматизации рутинных процессов. Такие пишет любой айтишник вне зависимости от специализации. Программированием это назвать будет всё же неверно.

— А что подтолкнуло человека, не имеющего опыта ни военной службы, ни написания приложений, к разработке такого не самого простого проекта?

— Вышло так, что определённым опытом к моменту начала разработки я уже обладал. А интерес к программированию имелся давно. Ну и в итоге сложилось так, что появились время, техника и подходящая тема для усвоения учебных материалов.

Вначале это приложение вообще не планировалось для массового применения — больше ради удобства и скорости в некоторых типовых расчётах для себя. Попутно получилось так, что даже в типовых задачах удалось сделать более удобный GUI, чем у известных на то время решений, и избежать ряда ошибок в расчётах. Свою роль сыграло то, что приложение работает на устройствах с самой массовой мобильной ОС. Ну и самое интересное – это специфика. На тот момент не было известных решений для таких расчётов для наших самоходок (2С1 «Гвоздика»). Вот для Д-30 были, а для наших – нет. Там разница небольшая, и при острой необходимости можно считать установки для самоходки по таблицам для пушки, и всё же… Ну а дальше функционал постепенно покрыл требуемые расчёты, и однажды я решил добавить возможность решать задачи не только для одного типа орудий.

В какой-то момент вышло так, что товарищам это решение стало постепенно заменять 2-3 решения от других разработчиков. И GUI оказался удачнее во многих отношениях, и уровень доступной детализации расчётов прозрачный и удобный для заполнения отчётных документов. Плюс дала себя знать сама возможность в любой момент обратиться ко мне напрямую и сообщить о выявленной ошибке или внести какие-то изменения и дополнения.

Вся эта история — к тому, что у меня не было планов делать большой и сложный проект. Скорее всё пришло к такому состоянию естественным образом, а началось с самого низового и примитивного уровня. Эволюция в действии.

— Кто вообще занимается написанием таких приложений, насколько они распространены и разнообразны?

— Тут можно, наверное, выделить три группы:

а) Коммерческие решения. К ним могу отнести заказы от Министерства обороны, которые мало кто видел, а также серию приложений «Блокнот» от группы AASoft.

б) Студенты и преподаватели ВАА. В частности, есть несколько приложений, родившихся в Михайловской Военной Артиллерийской Академии. Студенты, вероятно, пишут их в качестве курсовых и дипломных работ, а преподаватели — для упрощения контроля верности сделанных студентами расчётов на контрольных, зачётах и т.д.

в) Артиллеристы. В частях и подразделениях находится человек, который таким образом может как-то облегчить выполнение своих непосредственных обязанностей себе и сослуживцам – вот и делают.

г) Энтузиасты. Эта категория, впрочем, сильно пересекается с предыдущей. Люди или имеют в своём близком кругу артиллеристов, или же сами каким-то образом, вплоть до службы, к этому причастны, а потому понимают действительную потребность. В итоге самые интересные решения оказываются в этой категории. Но, к большому сожалению, и самые медленные в своём развитии.

Как видим, разнообразие, даже несмотря на довольно специфическую и узкую сферу, имеется. Начиная от решений средствами Microsoft Office в виде электронных таблиц с формулами и макросами и заканчивая программными комплексами под различные мобильные платформы. Так что есть из чего выбрать, с той оговоркой, что большинство решений создавались для личного пользования и не блещут удобством. В итоге массово используются единицы. Это как раз переходя к вопросу о распространённости.

На дворе 2022 год (на момент интервью – Прим. ред.), у каждого при себе имеется устройство, обладающее куда более серьёзными вычислительными мощностями, чем корабль «Восток», вышедший в своё время на орбиту нашей планеты с Юрием Алексеевичем Гагариным на борту. И люди это понимают и стараются использовать. Где легально, где не очень, но очевидно, какой глупостью будет отказ от использования такого подспорья в работе. Для опытных специалистов это экономия времени, а для мобилизованных и просто для тех, кто начинает изучать эту работу, – хорошее подспорье в процессе, для самоконтроля во время учёбы и подстраховки во время выполнения боевых задач.

— Получается, что не только писать приложение, но и вообще работать в качестве разработчика ты стал уже в военно-полевых условиях. Насколько это было сложно?

— Выходит, так. Сказать, что сложно, не возьмусь. Скорее, долго. Куда как дольше, чем обучение в том же вузе, не говоря уже о различных курсах от частников. Сказывается и недостаток академического базиса. До сих пор сталкиваюсь с ситуациями, когда не хватает некоторой теоретической или академической базы и приходится возвращаться к основам, находить нужную тему и пытаться разобраться в ней самостоятельно. Тоже не так, чтобы сложно. Скорее сильно мешает, особенно когда есть необходимость добавить новый функционал, есть к этому интерес и идеи, а приходится отвлекаться на сухую теорию.

Вот с поиском литературы и различных материалов порой возникают проблемы. Либо материалов нет в открытом доступе, либо это сложности уже технического характера вроде невозможности поиска на просторах Всемирной паутины в отсутствие доступа к сети.

— А имеются ли какие-то особые требования к такой специфической разработке, каковы особенности работы, может, есть какие-то лайфхаки?

— Есть, куда ж без них. Хотя, думаю, это будет актуально для любой специализированной сферы. Понимание решаемой задачи, знание автоматизируемых процессов. Рассказывают, что в одном из решений для реактивной артиллерии долгое время имелась ошибка в расчётах, которую разработчику никак не удавалось выявить и устранить. Главная сложность была, как говорят, в том, что сам разработчик не артиллерист и не совсем понимает, какие именно факторы и почему он в своих расчётах учитывает.

Это же понимание полезно при создании GUI. Зная, как именно люди на рабочих местах выполняют свои задачи и в каких условиях это происходит, куда как проще определить, насколько пользователю вообще будет удобно пользоваться приложением.

Не стоит стесняться обращаться за консультациями. Как к более опытным специалистам с вопросами о возможных методах реализации решения, так и к конечным пользователям с вопросами о том, что им действительно нужно и в каком виде это им будет удобно.

Вообще, лучше постараться собрать команду. В наше время разработка включает в себя комплекс задач, которые одному человеку решать крайне тяжело. Самому написать бизнес-логику, нарисовать к ней GUI, провести весь набор необходимых тестов и сопроводить это инструкцией пользователя – это требует и времени, и усилий. Куда как эффективнее эти задачи распределить по более узкопрофильным специалистам. Бизнес-логику поручить одному человеку, дизайн и инструкцию пользователя — второму, а тесты — третьему. Это некоторый минимум, который позволит не тратить зря время и не распылять силы и внимание. Уж поверьте тому, кто вынужден в силу обстоятельств сам решать весь этот набор задач.

В остальном — стандартный набор советов, который кочует от книги к книге, от семинара к вебинару, от вуза к вузу.

— Да, работа энтузиаста вне команды — не самое простое занятие. А с учетом особенностей приложения и специфики его пользователей проще не становится. Поэтому логичный вопрос: а что с тестированием продукта?

— Тема сама по себе большая, её можно обсуждать долго и разнообразно. Ну а в рамках нашего разговора скажу кратко.

Этап тестирования — это обязательный этап. Тут вам и синтетические тесты на ранних этапах, и тесты на виртуальных симуляциях, и полигонные тесты. Сейчас из-за интенсивности событий второй этап тестирования проходит в сжатом виде, а третьим приходится пренебрегать.

Всё это в итоге сказывается не лучшим образом, бывает, что на релизе обнаруживаются критичные ошибки и приходится снимать версию с релиза, всячески извиняться перед теми, кто уже успел скачать свежую версию, и максимально оперативно исправлять выявленные ошибки.

— Хорошо, а как с отзывами пользователей? Собираешь фидбек, он вообще есть?

— Это тоже один из обязательных пунктов. Как без фидбека понять, насколько разработка вообще имеет смысл?

Также фидбек даёт понимание, что ещё необходимо доработать из уже имеющегося функционала, а также в каком направлении развивать приложение уже сейчас.

Первые пользователи моего приложения могут вспомнить, как я приставал к ним на регулярной основе с вопросами о корректности работы, об удобстве интерфейса и прочем.

Сейчас в этом плане стало несколько проще. Социальные сети позволяют наладить получение информации, а количество пользователей и их отзывов предоставляет хорошую картину текущего состояния и возможных перспектив.

— В PlayMarket таких приложений, насколько мне известно, нет. Поэтому не могу не задать вопрос: а как они вообще распространяются?

— Те же «Блокноты» раньше можно было купить в Play Market, потом в Yandex Store, ну а сейчас — напрямую у авторов. Все остальные распространяются в основном из рук в руки внутри этой сферы деятельности. В Интернете их найти затруднительно, а даже если они и находятся – то это какая-нибудь совсем сырая и ранняя версия, полная багов и прочих недоработок.

— То есть как минимум часть приложений распространялась легально и за деньги? А сейчас, получается, источник дохода накрылся? Или нет?

— Не скажу, что источник дохода накрылся. У этих решений уже есть определённая положительная история, авторитет у пользователей. Так что покупать наверняка продолжают, тем более что за экземпляр просят не такую уж и большую сумму. Также у коммерческих решений сейчас появились оптовые клиенты: волонтёры, которые массово закупают устройства, проводят их первичную настройку и установку базового комплекта приложений. И если вариативность бесплатных приложений и уменьшила доходы от розничных продаж, то оптовые заказы, считаю, вполне эту разницу как минимум покрывают.

— Как распространяешь свое приложение ты?

— В социальных сетях через закрытые группы, каналы, сообщества. Условие для доступа к ним — личное знакомство, предварительное собеседование либо поручительство от одного или нескольких участников. Сложно назвать это эффективной защитой, но хотя бы предварительную фильтрацию от случайного человека организовать было необходимо. Ну и шансы на то, что кто-нибудь с той стороны будет пользоваться приложением против нас же, снижаются.

— Говорят, что использование смартфонов/планшетов на фронте сильно ограничено, как это выглядит для артиллеристов?

— Использование любых средств, имеющих на своём борту Wi-Fi, Bluetooth, камеру для фото и видеосъёмки и ещё ряд свойств, запрещено для военнослужащих федеральным законодательством. То есть каждый, кто берёт с собой подобное устройство, на самом деле нарушает федеральный закон и легко может подпасть под его действие со всеми неприятными последствиями. С другой стороны, в наше время, когда эти устройства не только имеются, но и активно применяются противником, отказываться от этого инструмента по меньшей мере глупо. Вот и приходится идти на риск. Если командир подразделения адекватный, он не только позволяет своим подчинённым пользоваться этими инструментами, но и поощряет их. При этом не забывая проводить необходимый инструктаж и следить за соблюдением установленных правил пользования. Насколько мне известно, в артиллерии ДНР/ЛНР с этим, в принципе, сложностей нет.

— Приложение называется «ПУО-10Э». Звучит очень по-военному, но, наверное, имеет какую-то расшифровку?

— Любая аббревиатура имеет расшифровку. В данном случае ПУО – это «помощник управления огнём». Так уж сложилось, что сама аббревиатура совпадает с названием артиллерийского прибора управления огнём – ПУО-9. Это такой военный кульман в минимальной комплектации, из прочных материалов и складной. Вот и возникла идея пошутить: использовать совпадение, чтобы человеку из этой среды название бросалось в глаза. Далее дело за малым — цифра не должна была совпадать, и потому был выбран индекс «10», а «Э» означает «электронный». Впрочем, однажды шутка изживёт себя, ведь в планах есть и реализация графического интерфейса, близкого к аналоговому прибору.

— Что вообще представляет собой приложение, какую задачу оно решает?

Тут вначале стоит рассказать о стрельбе и управлении огнём. В двух словах объяснить получится только в общих чертах. Это наука о том, как обнаружить цель, определить её характеристики, как принять решение о её поражении, как подготовить средства поражения и в итоге поразить необходимую цель максимально эффективно.

Так как артиллерия — это командная игра, часть людей задействована в разведке и определении целей, другая часть — в подборе и подготовке огневых позиций. У всех этих людей есть задачи, которые требуют математических вычислений. Так, разведчики-корректировщики определяют своё местоположение и местоположение цели, а после определяют отклонения разрывов от цели с тем, чтобы сообщить эти данные на батарею. Огневики в это же время не только определяют своё местоположение, но и должны учитывать техническое состояние своих орудий, имеющихся в наличии боеприпасов, текущие погодные условия, а когда получают корректировочные данные, необходимо их учесть и внести необходимые изменения в установки. Всё это — большой объём расчётов, который требует времени. Так, на метеорологическую подготовку по нормативу отводится 15 минут. То есть время на подготовку в любом случае значительное, а в реальных боевых условиях уложиться в норматив куда как сложнее, чем на полигоне, из-за множества дополнительных факторов. Ну а что может произойти за эти 15 минут?

И вот тут-то и приходят на помощь решения по автоматизации вычислительных процессов. Ведь мобильному устройству на всё множество операций вместо 15 минут необходимы миллисекунды.

На сегодняшний день «ПУО-10Э» позволяет автоматизировать процессы вычислений при определении собственных координат геодезическим способом или с помощью спутниковой сети и координат цели геодезическим способом, осуществлять общий учёт метеорологических данных и известных отклонений из-за технического состояния орудий и зарядов, а также эффектов вращения нашей планеты, полный расчёт первичных установок для стрельбы исходя из известных данных огневой позиции и данных о цели различными орудиями с различными боеприпасами, внесение изменений в первоначальные установки на основании поступающих от корректировщиков данных о разрывах. Поддерживается 15 видов артиллерийских систем, начиная с АГС-17 и заканчивая 2С7 «Пион», включая не только ствольные, но и реактивные системы и пока не полный набор выстрелов к ним. Это в общих чертах. При этом функционал приложения продолжает развиваться. В последнем обновлении добавлена возможность получать данные из программ Offline Maps, AlpinQuest и «Ветерок» для общего удобства. Также запланирован функционал для ориентирования приборов и орудий по небесным светилам (Солнце и Полярная звезда). Ну и ещё некоторое количество специфических возможностей. В более далекой перспективе — самостоятельная работа с электронными картами. Нельзя забывать и про регулярное обновление поддерживаемых орудий и выстрелов к ним.

Всё это позволяет уже сейчас обеспечить сокращение времени для подготовки к ведению огня и увеличить точность как первичных расчётов, так и последующих корректур. А за счёт сравнительно дешёвой и однозначно массовой мобильной платформы — удобство решения всех этих задач.

— Наверное, стоит для наших читателей, которые далеки от военного дела, пояснить несколько попроще. В какой момент включается собственно работа приложения? Вот нашли цель, определили ее координаты, и как дальше?

— Вообще, работа приложения может начаться ещё на этапе «наблюдаем цель, необходимо определить её координаты». Это зависит от того, каким образом цель была обнаружена. Или даже ещё раньше, на этапе оборудования постоянного наблюдательного пункта или при занятии временного, когда необходимо определить собственные координаты. Приложение в состоянии обработать данные со встроенного модуля СНС (Спутниковая Навигационная Система) и определить собственные координаты с возможностью их сохранения для последующего использования. Или пересчитать координаты из общепринятой западной системы WGS-84 в используемую нами СК-42. Ну а зная собственные координаты и имея возможность определить дирекционный угол на цель и дистанцию до неё, можно определить и координаты цели.

Немного отвлекусь и объясню, что такое дирекционный угол: это советская военная единица измерения углов, а при работе с картой в измеренное с помощью компаса значение вводятся дополнительные поправки на погрешность самого компаса и на то, что магнитный полюс и направление на север у карт несколько отличаются.

Далее, когда координаты цели поступают на огневую позицию, они вводятся в приложение. Также вводятся данные самой огневой позиции и данные погоды, измеренные на месте или полученные с метеопоста, выбирается снаряд с взрывателем и нужный заряд. На основе этих данных приложение рассчитывает установки для орудия в виде угла возвышения и угла доворота от полученного при первичном ориентировании орудий направления. Данные передаются командирам орудий, и после подтверждения от них, что установки на орудиях соответствуют указанным, начинается выполнение огневой задачи.

— У кого из расчета в руках должен оказаться гаджет с установленной программой?

— В штатном режиме – ни у кого. Вообще, в планах создать специальный модуль для командиров орудий, но на данный момент приложение на огневой позиции решает задачи уровня взвода/батареи. Но, опять же, с учётом современных особенностей устройство с приложением у командира орудия лишним не будет. Это позволит решить часть задач самостоятельно, особенно в условиях реализации различных тактик, где командир орудия вынужден выполнять работу не только свою, но и отделения управления старшего офицера батареи.

— Еще раз спасибо за беседу и удачи!