avatar

Игорь Филиппов

fullstack web developer

Планирование разработки - залог успешного проекта.

Сегодня мы разберем с вами планирование разработки - основные этапы и что они включают в себя. В последнее время любой человек не может представить свой любой день без планирования. Мы знаем во сколько нам необходимо проснуться и прекрасно понимаем, что без планирования нашего дня он будет не продуктивен. Каждый вечер мы составляем план рабочего дня отмечая приоритетные для нас задачи. Будильники, приложения для телефонов, ежедневники все это заполняется на день, недели или месяца вперед. Представьте, что в один прекрасный момент не зазвонит наш будильник или мы потеряем свой ежедневник…. Довольно печально как по мне, ведь я уже не представляю себе рабочей недели без назойливых заметок которые в нужное для меня время напоминают о приоритетных задачах (проектах) на сегодня.

Абсолютно все в нашем мире стараются распланировать. Будь то web-проект или проект построения нового моста, сооружения.

Насколько же важно планирование разработки?

Понимаем этого вопроса занималась и наша веб-студия. Приблизительно месяца два назад мы перестали заполнять доску планирования которая синхронизируется с мобильными приложениями на телефонах наших сотрудниках. Суть доски довольно-таки проста:

  • выставляются приоритетные задачи и их дедлайн;
  • каждый работник обновляет состояние доски записывая свои задачи в соответствии с дедлайном и выставляет приблизительное время на исполнение той или иной задачи по проекту;
  • после выполнения задачи ставиться отметка «выполнено»

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

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

В случае же когда доска работает работники тратят приблизительно 20 минут за утренней чашкой кофе заполняя данную доску и выставляя сами для себя задачи. Таким образом мы достигаем сдачи проекта вовремя с максимальной задержкой по времени +/- 2 дня. И это вполне приемлемо, чем то что в ситуации изложенной выше задержка была 4 дня.

Я думаю можно сделать вполне логичный вывод к которому множество компании и работников уже давным-давно пришло. Планирование работы жизненно необходимо!

Рассмотрим в нашей конкретной ситуации.

Нужно ли планирование в web разработке?

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

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

Каких же этапов мы придерживаемся в планировании web-разработки?

  1. Окончательное определяемся с библиотеками, стандартами которые необходимо придерживаться в нашей разработке конкретно в данном проекте.
  2. Создаем спецификацию нашего проекта
  3. Распределяем наш проект на этапы и планируем приблизительный дедлайн для каждого из этапов.
  4. Продумываем тестирование каждого этапа для более легкого контроля качества выполнения
  5. Процесс совмещения всех этапов и построение общей картины. Тут разрабатывается и с помощью какого софта будет проводиться контроль версий, и компилятор (в случае десктопа) и каким образом можно полноценно оценить правильность и валидность готового уже по сути продукта.
  6. Планируем как провести тест на совместимость с библиотеками использованными в разработке.
  7. Общее тестирование

Теперь давайте по порядку.

  1. Я думаю мы не будем долго задерживаться на данном пункте. Скажу только о важности совместимости и применения библиотек. Ведь в дальнейшем этот проект может модернизироваться или поддерживаться. К тому же мы прекрасно понимаем, что каждый проект это лицо нашей студии.
  2. Данный пункт можно рассмотреть на примере создания какого-либо изделия на высокотехнологичном заводе. К примеру судостроительного. Вначале заказчик говорит, что хочет такой катер который сможет держаться на воде при шторме в определенное кол-во баллов. Это в нашем случае техническое задание. Клиент описывает цвет, функционал и какие-то динамические элементы. При создании спецификации мы применяем то что выбрали в 1 пункте, а именно библиотеку (к примеру jquery). То-есть мы максимально стараемся расписать и для исполнителя и для заказчика чтобы достигнуть понимания в следующем пункте «Выставляем дедлайн»
  3. Выставляем время для исполнения согласно спецификации.
  4. Для каждого стандарта будь то валидной или ГОСТ-а всегда есть определенные требования. Мы уже распределили на несколько этапов нашу разработку и вполне можем определить где и какой стандарт должен быть выполнен и как его можно протестировать.
  5. Этот пункт очень важен в том случае если над проектом работает больше 3-х человек. Существует множество ресурсов и софта для контроля версии благодаря которому можно продолжить работу над файлом или проектом после того как это делал другой исполнитель. Так же при планировании данного этапа продумывается максимально продуктивное тестирование на выявление ошибок или не соответствий стандартам при общем совмещении проекта.
  6. Повторяем 4-й пункт только уже для полной картины.
  7. Почему повторяется с 6-м пунктом? Казалось бы тестирование уже было проведено и вопрос должен быть закрыть. Но не нужно забывать о тестировании в рабочей среде проекта. Будь-то хостинг или сервер мы должны проверить насколько корректно работает проект перед сдачей его заказчику.

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