KZ

Как организована техническая разработка проекта NUR.KZ

Женщина читает новости Nur.kz
Иллюстративное фото: NUR.KZ

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

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

Проект NUR.KZ – это технически сложная система, состоящая не только из новостной ленты, но и ряда вспомогательных сервисов, таких как: система комментирования, рекомендаций, авторизация, курсы валют и многое другое.

Разработка каждой части системы – кропотливый, сложный и дорогой процесс. Она состоит из ряда этапов, о которых мы сегодня и расскажем.

Виртуальная доска с задачами
Виртуальная доска с задачами. Источник: NUR.KZ

Определение задачи

Любые изменения для разработчиков NUR.KZ начинаются с задачи, которая может быть обусловлена необходимостью отреагировать на отзывы читателей, добавить новый функционал, решить обнаруженную проблему и так далее. К слову о проблемах, их можно условно поделить на несколько общих групп:

  • технические - что-то не работает или работает не так, как должно;
  • продуктовые - пользователям нужны новые возможности или услуги;
  • пользовательские - сайт работает недостаточно быстро или недоступен на некоторых устройствах;
  • монетизационные - появляется спрос на новый рекламный формат;
  • правовые - нужно обеспечить соблюдение законов и нормативных актов Республики Казахстан;
  • нормативные – когда разработчики хотят, чтобы NUR.KZ был представлен на других платформах, для этого требуется выполнить множество требований.
Разработка сайта NUR.KZ
Тестирование сайта NUR.KZ с помощью инструмента от Google Test My Site. Источник: NUR.KZ

Как команда NUR.KZ узнает о проблемах и ставит перед собой задачи

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

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

Часть задач появляются в качестве гипотез, которые члены команды разработчиков также проверяют. Тем самым они пытаются предвидеть, что может понравиться пользователю, а что нет.

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

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

Разработка сайта NUR.KZ
Система проверяет доступность и работоспособность страниц сайта. Источник: NUR.KZ

Исследование и подбор технического решения

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

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

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

Разработка сайта NUR.KZ
Проведение сплит-теста, который позволяет найти лучшее решение. Источник: NUR.KZ

Написание кода

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

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

Однако, и значимость кода нельзя недооценивать. Если игнорировать стандарты и лучшие практики, которые разрабатывались десятилетиями, то в итоге получится код, который станет невозможно поддерживать и развивать. Множество проектов потерпели крах из-за низкого качества кода.

Но во время написания кода для NUR.KZ техническая команда следует самым высоким стандартам разработки.

Разработка сайта NUR.KZ
Разработчики проверяют код друг друга на отсутствие дефектов. Источник: NUR.KZ

Оценка качества кода

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

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

Кроме статических анализаторов кода, разработчики NUR.KZ широко используют автотесты, которые они сами пишут, основываясь на обнаруженной проблеме. Они могут проверять соответствие различным требованиям.

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

Разработка сайта NUR.KZ
End-to-end тест имитирует поведение пользователя. Источник: NUR.KZ

Тестирование

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

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

В команде NUR.KZ таким тестированием могут заниматься все, в зависимости от особенностей возникшей проблемы, которую пытаются решить разработчики.

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

Если в ходе тестирования обнаруживается дефект, то весь код возвращается на доработку.

Разработка сайта NUR.KZ
Перечень сценариев, который должен проверить тестировщик. Источник: NUR.KZ

Подготовка к введению в эксплуатацию

Чтобы убедиться в работоспособности кода, нужно проверить его в “боевых” условиях. Однако разработчики не могут позволить себе тестировать новый код на пользователях новостного портала. Возможные дефекты могут привести к проблемам у пользователей, и они уйдут недовольными.

Есть иное решение, когда доступ к обновленной версии сайта предоставляется в рамках отдельного изолированного окружения, закрытого от внешнего мира. Например, внутри команды NUR.KZ. Таким образом члены команды могут протестировать каждую задачу с учетом всех аспектов еще до того, как ее увидят пользователи сайта.

Разработка сайта NUR.KZ
Автотесты проверяют корректность кода и уведомляют об ошибках. Источник: NUR.KZ

Введение в эксплуатацию

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

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

Внедрения новых возможностей происходят один раз в две-три недели. Техническая команда NUR.KZ заинтересована в том, чтобы пользователи не страдали из-за ошибок на сайте, поэтому по максимуму сокращает количество доставок, увеличивая качество проверки перед введением в эксплуатацию обновлений.

Разработка сайта NUR.KZ
По команде разработчиков система вводит новый код в эксплуатацию. Источник: NUR.KZ

Мониторинг

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

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

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

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

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

Разработка сайта NUR.KZ
Желанное состояние системы – отсутствие ошибок и уведомлений. Источник: NUR.KZ

Подтверждение выполнения задачи

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

Если полной уверенности в том, что задача решена нет, она может поступить на доработку, но уже с учетом новых собранных данных.

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

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

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

Разработка сайта NUR.KZ
Внизу на каждой странице сайта можно найти кнопку “Напишите, что Вы думаете о NUR.KZ” . Источник: NUR.KZ

Следите за обновлениями и пользуйтесь всеми возможностями NUR.KZ.

Оригинал статьи: https://www.nur.kz/kak-rabotaet-nur-kz/1881819-kak-organizovana-tehniceskaa-razrabotka-proekta-nurkz/