8 (8212) 55 18 12

Проливаем свет на магию разработки

Приступить к чтению

Вступление

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

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

Магия разработки

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

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

Кто такие разработчики?

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

Процесс разработки всегда представляет собой размышление, построение алгоритмов и абстрактных сущностей, а не набор тысяч строк кода и математических выражений. Мнение, что программирование это в первую очередь математика — ошибочно, на первом месте всегда логика. Около 80% процентов времени работы разработчика занимают размышления. При этом мы можем просто сидеть, глядя в окно. Или ходить по магазинам. А порой хорошая идея приходит перед сном.

Чем занимаются разработчики?

В целом

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

Программист за работой

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

У каждого из нас есть своя роль. Иногда их несколько. А порой все роли исполняет один разработчик. Каждый из нас может выступать как самостоятельный специалист, в случаях, если проект достаточно прост, в то время как для сложных проектов мы объединяемся в команды, распределяем роли и задачи. Так достигается максимальная эффективность и контроль наших ресурсов.

Лучшие друзья разработчиков

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

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

Самая кропотливая работа выпадает на участь верстальщика. Его задача это вёрстка макетов средствами html и css. Сложность этой работы заключается в том, что нужно учесть огромное количество факторов, такие как тип браузера пользователя (правила парсинга таблиц стилей у браузеров порой очень сильно отличаются), тип электронного устройства (телефон? планшет? android-устройство? apple-устройство?), разрешение экрана и многое другое.

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

Какими бывают веб-разработчики

Клиент-серверная архитектура веб-приложений подразумевает две сферы разработки: клиентская (front-end) и серверная (back-end). Соответственно и разработчики делятся на фронт-энд и бэк-энд разработчиков.

Фронт-энд разработчик “колдует” непосредственно над свёртстаным макетом. Задача фронт-энд разработчика — оживить интерфейс, проработать функционал каждого активного элемента, чтобы сделать интерфейс отзывчивым для пользователя. Эта часть приложения отвечает за обработку информации на стороне пользователя и за обмен данными с серверной частью.

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

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

Как происходит процесс разработки?

Первый шаг

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

Обсуждение проекта

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

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

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

Второе, это задачи которые необходимо решить в ходе разработки. Задачи = проблемы. Подробно сформулируйте перечень проблем, которые должны быть исправлены в процессе нашей работы. Чем подробнее будет описана каждая из них, тем оптимальнее будет решение, которое мы можем предложить. Если цель это некий абстрактный (порой недостижимый) ориентир, то задачи это чистая конкретика, примеры, случаи, кейсы.

Ну и третий камень преткновения — это всегда цена. Будьте готовы, что стоимость проекта будет выше, чем вы ожидали (тем более, если вы впервые работаете со студией разработки). Вы не представляете, как часто я слышал фразу “да моему другу сделали интернет-магазин в 5 раз дешевле!”. Да, согласен, можно сделать интернет-магазин за 1 день. Даже за 3 часа. Но он не будет ничего продавать. Люди на него не зайдут, никто даже не узнает о его существовании. Потому что разработка включает в себя не только установку платформы и наполнение товарами. Помимо этого она включает в себя комплекс работ над дизайном, интерфейсом, сео-оптимизацией, продвижением, текстами, программированием (не каждая платформа имеет все необходимое “из коробки”), тестированием, поддержкой и рекламой. Без всего этого невозможно сделать приложение, приносящее прибыль.

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

А дальше?

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

Постановка задач

Менеджер ставит задачи.

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

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

Заключение

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

Время прочтения:
Время прочтения 11.7 мин

Для авторов

Хотите стать со-автором блога, рассказать аудитории о новинках в мире веб и все что с ним связано? Тогда присылайте ваши материалы и мы опубликуем их.

Стать автором

Обсуждение

comments powered by HyperComments