После введения карантинных мер в связи с Covid-19 повсеместно возник дефицит масок N95 и прочих средств индивидуальной защиты. Тогда компания Insum сделала то, что мы ожидаем от разработчиков в кризис – быстро написала приложение Covid-19 Masks, чтобы помочь другим справиться с ситуацией.

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

Примерно в то же время всего за два дня было создано веб-приложение Daily Grocery Status. С его помощью жители родного города разработчика могли узнать, в каком магазине продаются нужные товары. Когда тот или иной продукт поступал в продажу, продавцу достаточно было обновить информацию в приложении и заинтересованные покупатели тут же получали уведомление. В обоих случаях использовалась платформа для быстрой разработки Oracle Application Express (APEX).

Как и ранее в других чрезвычайных ситуациях, например во время ураганов, многие разработчики APEX оперативно отреагировали на проблемы, вызванные пандемией. Они выступили в роли добровольных «ИТ-пожарников», выпустив приложения для организации сотрудничества, поиска и обмена товаров и даже проведения спасательных мероприятий и оказания помощи.

Платформы разработки приложений с минимальным кодированием (low-code), такие как Oracle APEX, оказываются чрезвычайно полезны в кризисный период, поскольку реализуют сложные взаимосвязи между технологиями без участия профессионального инженера и позволяют даже неспециалистам быстро создать рабочие решения из готовых компонентов. Oracle APEX входит в состав Oracle Databse, поэтому приложения APEX помогают людям получить доступ к данным и обмениваться ими при решении как повседневных, так и глобальных задач. 

«Разработчики испытывают потребность в таких инструментах и используют их», — говорит Джоэл Коллмен, менеджер по продуктам Oracle APEX. В 1990-е гг. он принимал участие в создании APEX, а сегодня является лидером активного  сообщества разрабочиков APEX. Коллмен приводит множество ярких примеров: один разработчик за ночь создал приложение для облегчения проверки донорских органов на отсутствие вируса COVID-19, другой за три недели разработал три приложения для управления различными аспектами тестирования и отслеживания контактов инфицированных лиц, волонтер из Южной Америки выпустил приложение, которое позволяет получить доступ к программе государственной помощи, — только за первые несколько часов им успели воспользоваться 10 000 человек.

Однако наличие платформы для low-code разработки — всего лишь первый шаг. При разработке и выпуске приложения во время кризиса требуется учесть множество факторов. Вот три совета, которыми поделились те, кто в этом уже преуспел.

1. Создайте условия для быстрой работы

При low-code разработке результаты можно получить очень быстро. В компании Insum, занимающейся разработкой и консультированием, знают об этом по опыту. По словам Мишель Скамин, когда влияние Covid-19 на бизнес стало очевидным, они «приготовилась оперативно решать» проблемы, с которыми клиентам не приходилось сталкиваться никогда прежде. В Insum собрали команды быстрого реагирования, настроили среду APEX и предоставили всем необходимый доступ для ускоренной работы. «Мы исходили из того, что проект займет от несколько дней до нескольких недель», – комментирует Скамин.

Еще один важный момент: в каждой команде должен быть представитель от бизнеса для поддержания связи с ключевыми заинтересованными сторонами. Это позволит обеспечить соответствие результатов их целям: APEX позволяет вести разработку очень быстро, поэтому, по словам Скамин, «процесс может легко пойти не в том направлении».

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

«Тех, кто раньше не сталкивался с low-code разработкой, скорость работы просто ошеломляет, –  говорит Спендолини, спроектировавший, создавший и запустивший приложение Daily Grocery Status меньше, чем за три дня. – APEX – это идеальный инструмент: он позволяет выпускать готовые к использованию приложения, пока другие разработчики еще ломают голову над концепцией и прототипами». Когда Спендолини продемонстрировал приложение на хакатоне, его спросили, сколько человек у него в команде: «Пришлось долго всех убеждать, что я создал приложение в одиночку и что это не прототип, оно полностью готово к использованию. Все были в шоке».

Многие меры, которые разработчикам приходится тщательно продумывать, в APEX реализуются автоматически. «Я даже не задумывался о безопасности, потому что APEX позволяет использовать средства аутентификации Google, а их подключение занимает всего минуту», – утверждает Спендолини. Он использовал и другие возможности APEX, в частности Quick SQL, для быстрой разработки модели данных и ее запуска на основе облачной  Oracle Autonomous Database. «Мне не пришлось сидеть и выдумывать сложную модель данных. Приложение использует всего пять таблиц, – рассказывает Спендолини. – Создание модели данных с добавлением сценариев заняло полчаса, и все, мы готовы к работе».

2. Используйте бесплатные облачные ресурсы

Готовясь к оперативно решать возникающие проблемы, команда Insum запустила несколько экземпляров Oracle Autonomous Database с использованием бесплатных сервисов Oracle Cloud Free Tier. Это позволило получить готовую и безопасную среду для разработки и развертывания приложений. Спендолини также воспользовался этим бесплатным предложением для размещения своего приложения. «У меня нет администратора баз данных, и сам я им не являюсь, – пояснил он. – Тратить тысячи или даже сотни долларов на то, что могло никому и не понадобиться, у меня не было никакого желания. Использование же автономной базы данных означает, что данные защищены, резервное копирование и обслуживание выполняются, исправления устанавливаются, и мне для этого не нужно ничего делать».

К тому же, по словам Спендолини, даже бесплатная база данных имеет достаточные объемы ресурсов, чтобы приложение можно справиться со значительным Web-трафиком : «Число просмотров должно достигать несколько миллионов обращений в день, чтобы мне пришлось задуматься о переходе на платный сервис».

3. Продумайте жизненный цикл приложения

Как объясняет Спендолини, «у приложений, созданных для решения кризисных проблем, два пути: они либо быстро приобретают популярность, а потом также быстро ее теряют, либо они становятся частью [отраслевой или государственной] информационной инфраструктуры», поэтому важно подготовиться к любому сценарию.

Создавая Grocery Status, разработчик предполагал, что о приложении станут забывать, когда кризис пойдет на убыль. «Пусть оно станет ненужным, ведь это будет значить, что тяжелые времена позади», – говорит он.

Тем не менее Спендолини хорошо понимает, что приложение можно адаптировать для других коммерческих или социальных целей. В таком случае, «если вы пользуетесь корпоративной платформой, можно с легкостью добавить новые корпоративные возможности, – говорит он, имея в виду автономную базу данных. – Предположим, мое приложение стало получать миллионы запросов в день. Отлично, я перейду в платное облако, добавлю пару OCPU для того, чтобы справиться с нагрузкой и, может быть, подключу рекламу, чтобы окупить все это».

Чтобы их приложение было востребованным, Скамин и ее команда добавили поддержку нескольких языков и локализацию для различных регионов. В частности, они использовали мультиарендные возможности Oracle Autonomous Database. «Если понадобится развернуть приложение для другой страны, мы сможем, — как говорит она сама. — Мультиарендная архитектура позволяет клонировать базу данных, сохранив структуру таблиц и не переписывая запросы, при этом обеспечивается изоляция данных разных стран».

В Insum использовали функции Oracle APEX, чтобы обеспечить удобную работы с приложением для людей из разных стран: «Мы добавили поддержку трех языков за считанные дни».