bannerbanner
Управление проектом разработки сайта или веб-приложения. От идеи до внедрения
Управление проектом разработки сайта или веб-приложения. От идеи до внедренияполная версия

Полная версия

Управление проектом разработки сайта или веб-приложения. От идеи до внедрения

Настройки чтения
Размер шрифта
Высота строк
Поля
На страницу:
3 из 4


Глава 6. Текучка по проекту


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


Если говорить в общем, то на входе итерации мы имеем следующее:

Задачи исполнителей

Приоритеты клиента


На выходе мы должны получить:

Сделанные задачи

Отчет для клиента

Обратная связь клиента по итерации


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


Через 1-2 дня вы должны проверить, как идут дела, желательно посмотреть промежуточный результат. Нужна ли помощь по задаче? Если задач несколько, то исполнитель должен понимать приоритеты по задачам.


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


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


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


Как проверять задачи?


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


При проверке задачи учитывайте следующие моменты:

Тестируйте на реальных данных, а не на неправдоподобных (вроде строки из 100 символов без пробелов).


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

При выявлении ошибки всегда указывайте конкретику: URL, скрин, в чем именно ошибка, как должно быть.

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

Организационно можно разбить проверку на 2 составляющие: качественную и организационную. Качество проверяет тестировщик. Организационная составляющая – это общий контроль задач проекта и сроков. Фактически эти задачи можно дать разным людям (тестировщик и менеджер проекта). Однако в большинстве случаев объединение этих ролей обоснованно по соображениям рамок бюджета.


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


Что должен включать такой отчет?


В первую очередь, это насколько команде удалось закрыть приоритеты клиента.

Во-вторых, это примерный план на следующую итерацию, т.е. что мы планируем делать дальше.

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


Проблемы и риски


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

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


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


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


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


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


Давайте кратко рассмотрим основные типовые риски и меры для их нейтрализации.

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

Уход ключевого исполнителя. Меры: обучение и документация, работа исполнителей в паре, мотивация исполнителей, договоренности с исполнителем (неустойка).

Срыв сроков. Меры: уменьшение объема, подключение дополнительных исполнителей, упрощение проекта по качеству.

Большой процент брака. Мотивация исполнителей, замена исполнителей, изменение работы тестировщиков.

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

Проект стал неактуальным. Меры: договоренности с клиентом, предоплата.

Кража исходного кода. Меры: подписание соглашений, ограничение доступа к коду, психологические уловки.

Разрыв отношений клиента и подрядчика. Меры: соглашения с клиентом, документация, доступ заказчика к исходному коду.

Резкое пропадание подрядчика. Меры: документация, доступ заказчика к исходному коду, договор, постоплата по этапам.


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


Показатели и KPI


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

Расход бюджета

Отклонение оценки задач от фактических затрат времени

Процент ошибок по исполнителям

Процент выхода за дедлайны по исполнителям (или по итерациям)


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


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


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


Организация взаимодействия по проекту


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


Здесь мы рассмотрим 3 взаимодействия:

Клиент-менеджер

Менеджер-исполнитель

Клиент-исполнитель


Клиент-менеджер.

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


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


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


Следующий важный момент – это приоритеты и цели заказчика. Задача менеджера – это просто реализовывать цели заказчика в рамках проекта. Очень сложно их реализовать, когда они либо не указаны, либо слишком размыты. Всегда спрашивайте клиента о его целях и приоритетах. В будущем это может даже защитить вас – вы всегда сможете сказать, что действовали исходя из целей клиента (если, конечно, вы действительно действовали исходя из его приоритетов). Трудные решения по проекту всегда принимайте на основе следующих моментов:

своих принципов ведения проекта

целей и приоритетов клиента

параметров проекта (бюджет, срок, качество, объем)

целей и интересов своей компании (т.е. подрядчика)


Следующий вопрос: «Как реагировать на хотелки клиента?».

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


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


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


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


Теперь мы переходим к следующему типу взаимодействия – Менеджер-исполнитель, т.е. внутреннему взаимодействию по проекту.


Менеджер-исполнитель


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


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


Очень важный момент. Следуйте правилу «обсуждение голосом по скайпу/телефону, задачи только через систему». Не путайте исполнителя смешиванием задач и обсуждений. От этого кипит голова. Ставьте четко задачи без намеков на отступления и обсуждение открытых вопросов.


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


Научитесь говорить на языке специалистов. Изучите все термины вашей области. Задавайте вопросы разработчикам. Постоянно осваивайте новые сегменты в веб-разработке и предметной области вашего проекта. Конечно, техническим специалистам-менеджерам в некотором смысле проще, но это не такое большое преимущество и оно довольно легко достигается. Если вы менеджер без технической подготовки, то не расстраивайтесь. У вас есть очень важное преимущество – вы не влезаете в детали и не навязываете разработчикам свои решения, т.е. не делаете за них работу. Для менеджера это очень важно, особенно если он ведет несколько проектов. Это очень распространенная болезнь менеджеров – бывших программистов. Они до сих пор решают низкоуровневые вопросы, что конечно же негативно сказывается на их прямых обязанностях (обеспечение ресурсами, контроль, взаимодействие с заказчиком, планирование). Если вы технарь, то помните об этом нюансе и работайте над собой.


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


Клиент-исполнитель


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


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


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


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


Последний момент, который мы обсудим в этой главе – это совмещение в менеджере функций менеджера, аналитика и тестера.


Функции менеджера:

Планировать

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

Решать вопросы и управлять ресурсами

Взаимодействовать с клиентом


Функции тестера:

Проверять качество результата


Функции аналитика:

Изучать предметную область клиента

Переводить задачи с языка клиента на язык разработки

Проектировать решения, отвечающие потребностям клиента.


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


Например, у клиента возникла потребность что-то доделать. Он обращается к менеджеру и начинает объяснять, но менеджер не понимает его, т.к. бизнес-логика – не его компетенция. Либо клиент может обращаться к аналитику, но тогда менеджеру сложнее контролировать влияние клиента на проект.


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


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



Глава 7. Внедряем в эксплуатацию


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

Посетители будут видеть ошибки и недоработки

Есть риск вместе с тестовыми данными почистить реальные данные

Могут быть ошибки, которые будут критичными для SEO и рекламы.


Учитывая эти моменты, мы распишем свое видение как надо внедрять проекты в эксплуатацию.


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


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


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


При тестировании полезно выполнять параллельно ручные вычисления. Только так вы сможете понять – ошибается программа или нет.


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


Следующий крупный блок – это перенос приложения на боевой сервер с предварительной настройкой этого сервера. Здесь в первую очередь следует побеспокоиться о безопасности данных приложения:

Смените все пароли в системе (SQL Server, SVN, панель управления).

Настройте правильно брандмауэр (ограничение по IP к SQL Server, закрыть все лишние порты и т.д.).

Сделайте настройки на SQL сервер (закрыть доступ к sa, можно вообще внешний доступ отключить в SQL Server).

Правильно установите настройки приложения на production среду (убрать режим отладки, отключить трассировку, настроить локальное подключение к базе, изменить ключи шифрования, поменять настройки/пароли на почте).

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

Проработайте в системе создание резервных копий базы данных и файлов приложения.

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


Также необходимо настроить дополнительные сервисы, а именно:

Мониторинг доступности приложения (например через UptimeRobot).

Периодическое создание бекапов (либо внутри сервера, либо через сервис хостера, который предоставляет сервер).

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

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


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


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

Проверить sitemap.xml

Проверить robots.txt

Зарегистрировать сайт в Google и Yandex

Проверить, что везде корректно установлены title и description в соответствии с набором ключевых слов (семантическим ядром).

Проверить работу редиректов 301, если они используются.

Проверить сайт на наличие битых ссылок.

Провести анализ сайта в различных SEO сервисах, например, cy-pr.com.

Проверить ваш сайт в сервисе валидации HTML и CSS http://validator.w3.org/.


Мы не рассматриваем каждый пункт подробно. Пусть это будет просто чек-листом для вас перед запуском. Более подробную информацию вы сможете узнать у SEO-мастера, который занимается вашим сайтом.


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


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


Следующий момент – рекомендую проверить быстродействие вашего веб-приложения в Google Page Speed. Это очень удобный сервис, который позволяет даже новичкам значительно оптимизировать загрузку вашего сайта.

На страницу:
3 из 4