Управление проектами в IT

Как избежать провала разработки сложного интернет-проекта? Техническая сторона Луны.

Управление проектами в IT

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

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

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

"Мифический человеко-месяц", Ф.Брукс

Программный код: «тестировать нельзя поверить»

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

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

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

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

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

На практике чаще всего проводят тестирование:

  1. функциональное (логика работы функционала)
  2. удобства пользования (юзабилити)
  3. производительности (сайт под нагрузкой не должен зависать)
  4. интерфейса пользователя (UI testing)
  5. безопасности

Пирамида программного решения

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

  1. программный код
  2. платформа / фреймворк
  3. веб-окружение
  4. операционная система
  5. виртуальный сервер
  6. железный сервер

Управление проектами — кто провалов не видал?

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

Ошибка

Неприятно, когда проект с посещаемостью 3 — 5 тысяч человек в сутки после обновления захлестывает волна негатива и язвительных усмешек. Камни в таких случаях летят в огород разработчиков, и произносится набившая аскомину фраза: «Ничего не меняется у веб-студий». В то же время, проблемы с сайтом могут быть вызваны любым из слоев «пирамиды». Но как быстро понять причину проблемы, и решение по предотвращению её в будущем?

Провалы it-проектов в мире

В 2014 году американская исследовательская компания The Standish Group опубликовала отчет, согласно которому 31,1% ИТ-проектов по созданию и внедрению ПО в США провалились, еще 52,7% столкнулись с проблемами, из-за которых итоговый бюджет превысил первоначальный в среднем в 2 раза, сроки выросли в 3.3 раза, было реализовано менее ¾ требуемого функционала. Только 16,2% софтверных проектов завершились вовремя и в рамках первоначального бюджета.

В исследовании участвовали 365 компаний из США, проанализированы результаты 8 380 ИТ-проектов. Исследовательская компания стала стала знаменита после публикации исследования The CHAOS Chronicles, в котором собран материал за 12 лет, состоящий из исследований 50 000 завершенных ИТ-проектов при помощи фокус-групп, детальных опросов и интервью руководителей высшего звена. Ставилась задача зафиксировать масштабы провалов, решающие факторы неуспешности и пути снижения подобных рисков.

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

Провалы it-проектов в России

В статье "Контроль инновационных проектов" Павел Алферов, один из разработчиков национальных стандартов проектного управления, поделился наблюдениями за российскими ИТ-проектами и высказал мнение: проблем с проектами было бы меньше при использовании даже простейшей системы контроля. Главная цель контроля — понимание текущей ситуации, снижение рисков и принятие управленческих корректирующих воздействий. А составная часть контроля — мониторинг.

Наши провалы

Освоив в 2010 году создание несложных корпоративных сайтов, мы переместили фокус на интернет-магазины и новостные веб-проекты с интересными задачами, нестандартным функционалом и нагрузкой 3 — 5 тысяч посетителей в сутки. Сразу же столкнулись с проблемами качества, сроков и не полного соответствия результатов ожиданиям заказчиков. Это послужило отправной точкой поиска и освоения технологий производства сложных сайтов и методологий управления проектам в IT с периодом проектного цикла 3-6 месяцев.

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

Справка: «сложный сайт»

Когда-то «сложные сайты» были редкостью, прерогативой крупных корпораций

Сложный сайт

Сайт компании средней руки мог представлять собой всего несколько текстовых файлов с расширением *.HTML, которые набивались в обычном текстовом редакторе и выкладывались на хостинг ко всеобщему доступа.

Сегодня даже простой интернет-магазин с посещаемостью в несколько сотен человек в сутки — часто база данных объемом 100 Мб — 1 Гб. Программный код, измеряемый сотнями тысяч файлов объемом 50-200 Мб. При запросе HTML-страницы — десятки и сотни запросов к БД, генерация страниц «на лету», кэширование данных с последующим использованием, кэширование сгенерированной страницы и отдача ее пользователю, авторизации, сессии, куки, массивы, программный код, работающий на сервере, и совершенно другой код на другом языке программирования, работающий в браузере пользователя, нагрузки, адаптивный дизайн, автоматически подстраивающийся под размер экрана устройства просмотра, и еще очень много-много других современных технологий.

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

Как снизить риски провала интернет-проекта

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

Снижение рисков - в прозрачности процессов

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

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

Концепция управления сложным веб-проектом

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

Концепция управления сложным веб-проектом

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

В 2012 году на семинаре "Битрикс — highload" руководитель направления контроля качества и внедрений «1С-Битрикс» Александр Сербул, руководитель направления арендных решений «1С-Битрикс» Александр Демидов и др. коллеги поделились опытом использования программных утилит и веб-приложений сквозного наблюдения за высоконагруженными сайтами с использованием «системы датчиков». Сооснователь QSoft Михаил Токовинин рассказал, как в компании устроены процессы нагрузочного тестирования сайтов и культура выкладки доработок на боевые сервера.

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

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

Ключевые факторы успеха разработки веб-проекта

Задачи, решение которых позволит снизить риски провала технической составляющей сложного сайта:

  1. правильно настроенная инфраструктура
  2. мониторинг сайта, серверного ПО и серверного «железа»
  3. гибкие методологии программирования — Agile
  4. тестирование — функциональное и нагрузочное
  5. процессы / культура «отгрузок» изменений на боевой сервер
Ключевые факторы успеха создания веб-проекта

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


Эпилог. Советы западных коллег

В заключение, хотелось бы отметить, управление проектами в IT глазами проектного менеджера выглядит гораздо шире. По данным компании The Standish Group, топ-менеджеры западных ИТ-проектов, чьи проекты завершились успехом, рекомендуют уделять пристальное внимание:

  1. вовлечению пользователей — тех, кому потом использовать продукт или решение, результат проекта
  2. поддержке исполнительным директором — человеком, принимающим стратегические решения
  3. понятным формулировкам требований
  4. планированию
  5. работе с реалистичными ожиданиями
  6. разбивке проекта на этапы
  7. подбору квалифицированных исполнителей
  8. участию в проекте собственника бизнеса
  9. ясному видению и постановке бизнес-целей
  10. формированию трудолюбивой сплоченной команды

Мы аккуратно собираем действительно полезные материалы для собственников интернет-магазинов и интернет-маркетологов, касающиеся разработки и эксплуатации быстро масштабируемых e-commerce проектов.

Мы - рядом

У Вас есть проект? Давайте его обсудим!

Офисы:

г.Москва, ул.Люблинская, 42

г.Ростов-на-Дону, ул.Социалистическая, 74

Пишите на email

info@orangecode.ru

Контактный телефон

+7 (918) 505-23-85

Оставьте заявку

Расскажите немного о Вашем проекте. Мы обязательно свяжемся с Вами и сделаем коммерческое предложение, от которого Вы не сможете отказаться!

Я согласен на обработку моих персональных данных в соответствии с Политикой конфиденциальности

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