Последние 7 лет я занимаюсь управлением индивидуальными IT проектами в рамках веб студии, которой я руковожу, и за это время я набрал неплохой опыт по работе с крупными проектами, которым и хочу с Вами поделиться. Мои клиенты, обычно, из США, Франции и Германии, но есть выполненные проекты в Канаде, Швейцарии, Дании, Австралии, Японии и т.д. Я проектировал социальную сеть, онлайн-аукцион, фитнес-конкурс, сервис по подбору автозапчастей, доставку еды, онлайн-кабинеты по приему и обработке заказов, торговые площадки и другие виды сервисов. Как видите, проекты разные, но их объединяет одна отличительная черта: пользователь взаимодействует с сервисом по заданному алгоритму. Моей основной задачей является продумать эти алгоритмы.
А если детальнее, то я должен:
- обсудить проект в деталях с Заказчиком
- составить проектную документацию
- выдать задачи специалистам
- проверить их выполнение и выдать поправки
- сдать рабочий функционал Заказчику
- обучить его пользованию сервисом
- подписать акт выполненных работ и передать проект отделу сопровождения
- периодически подключаться по сложным задачам в процессе сопровождения
Про нюансы своего дела и набитые шишки напишу в отдельной статье. А теперь, собственно, о проектах…
Слона надо есть по кусочкам
Надо сразу сказать, что проекты, с которыми я работал не сразу стоили дороже 100 000$. Разрабатываются такие проекты поэтапно и первый этап, то что называется MVP (Minimum Viable Product), стоит в разы дешевле. Цель первого этапа — запустить полноценный рабочий сервис с ограниченным функционалом и пустить на него первых пользователей на каких-либо льготных условиях. Важно либо следить за их поведением посредством Вебвизора, либо дать им возможность сообщать о найденных ошибках в чат. Тут сразу выявляются все недоработки, которые невозможно было найти путем тестирования, ведь десятки и сотни пользователей могут пользоваться сервисом не так как тестировщик. Чаще всего сразу после тестового запуска первого этапа разработки появляется список доработок, которые входят во 2-й этап. Это позволяет корректировать разработку под требования пользователей “на лету”.
Время — деньги
Еще до сдачи первого этапа, мы предлагаем Заказчику обсуждать и составлять проектную документацию по второму этапу, чтобы загрузка команды специалистов была непрерывной и не было простоев. Так мы экономим общее время разработки проекта. Не говоря уже о начале программирования не дожидаясь дизайна и верстки, а также подключении нескольких программистов, разделении между ними объемов работ и объединении итогового результата.
Поговорим “за оптимизацию”
С каждой следующей итерацией разработки код сервиса становится сложнее, количество пользователей и контента увеличивается в разы. Самое время оптимизировать скорость загрузки. Этот процесс начинается с оптимизации серверной структуры, так как она сразу дает краткосрочный результат. После этого оптимизируются запросы на стороне сайта. К этой процедуре нам еще придется вернуться, когда количество пользователей снова увеличится в разы. Тут можно говорить о нагрузочном тестировании, но из практики “ложка дорога к обеду”, поэтому работы по оптимизации, обычно, проводятся тогда, когда для этого есть объективные предпосылки.
Свет мой зеркальце скажи
С определенной нагрузки на сервер и количества пользователей становится вопрос о зеркалировании сервиса. Во-первых, зеркальная копия сервиса на другом сервере позволяет нам распределить нагрузку, поделив пользователей между серверами. Во-вторых, в случае отключения одного сервера по любым техническим причинам, нагрузку на себя берет второй и пользователи продолжают непрерывно пользоваться услугами сервиса. В-третьих, такая структура позволяет тестировать новый разработанный функциональный без риска того, чтобы все пользователи сервиса столкнутся с непредвиденным багом в рабочей версии. Увеличивая долю пользователей, которые видят новый функционал постепенно, вы значительно снижаете этот риск.
Позвони мне, позвони
Конечно, ни один такой сервис не может существовать без линии поддержки и без выделенного времени специалистов, которые могут подключиться в любой момент, чтобы срочно исправить ошибки работы системы по тысячам возможных непредвиденных причин: пользование не поддерживаемым устройством/операционной системой/браузером, не соблюдение процесса работы на сервисе, ошибки форматов документов, технические проблемы на сервере и т.д. и т.п.
Мухи отдельно, котлеты отдельно
Процесс сопровождения и разработки различен также как и уровень решаемых задач. В связи с этим, мы давно пришли к необходимости разделить эти два отдела — это разные люди с разным процессом работы. Конечно, важно в этом случае передать правильно дела после разработки основного функционала, чтобы линия суппорта в деталях была в курсе алгоритмов проекта.
В проектной документации такого не было
Важно понимать, что Заказчики будут тратить большие бюджеты на разработку только в случае, если они получат возврат со вложенных инвестиций. Таким образом, бесполезно фокусироваться на технической грамотности реализуемых решений и считать, что если у вас детально прописана проектная документация и вы правы со всех сторон, т.к. сделали грамотно продуманный и протестированный сервис, то вы классные и вам будут много и долго платить. Если вы не видите конечной цели в том, чтобы сервис рос и не будете вникать в бизнес-цели Заказчика, коммуницировать с подрядчиками по продвижению (если это не ваш отдел) и держать руку на пульсе проекта, то ваш идеальный продукт успешно попадет на полку, а вы потеряете источник дохода. К сожалению, большинство разработчиков программных продуктов измеряют свою работу досконально выполненным техническим заданием и гордятся своей способностью отмахаться от претензий Заказчика. Это несомненно важно, но не даст вам возможности заработка в будущем.
А напоследок я скажу
Хочу отметить, что для того, чтобы ваш бизнес по веб-разработке был успешен, не обязательно стремиться к крупным проектам. Есть хорошее поле для бизнеса в недорогих и дешевых сайтах, если поставить такую работу на поток. В качестве своей же специализации мы выбрали разработку сложных сервисов, потому что у нас это хорошо получается. В этот бизнес наша компания пришла из разработки учетных систем, поэтому автоматизация бизнеса “у нас в крови”.
Надеюсь, будет полезно. Спасибо всем, кто дочитал!
Буду благодарен за ваш конструктивный комментарий.
А если комментариями вы не пользуетесь по причине природной скромности, политическим, религиозным или любым другим причинам, вы можете написать мне в здесь.
resetme
Потом клиент понимает, что ему подсунули дырявую колошу и разрывает договор, так как он тратит кучу денег на заделку дырок и багов, за место того чтобы сосредоточиться на своём бизнесе.
Что вы в этом случае предлагаете делать?
meta_anton Автор
Я ни в коем случае не призываю вас делать некачественный продукт, а лишь обращаю ваше внимание, что грамотный технический продукт не гарантирует вам долгую и плодотворную работу с клиентом.
Конечная цель у вас с клиентом должна быть общая: увеличение посещаемости ресурса и его монетизация.