- PVSM.RU - https://www.pvsm.ru -
Нам дают задачи и ставят сроки. Иногда сроки не реалистичны. Возможная причина — задачу не проектировали, не разбивали на этапы. Сложно установить сроки выполнения, основываясь только на интуиции и опыте.
Мне, как разработчику сайтов, такие задачи попадаются. Сроки на эти задачи устанавливаются исходя из требований бизнеса. Поделюсь опытом — как в условиях узких сроков с успехом удавалось реализовывать требования бизнеса.
Привожу советы, которыми руководствуюсь сам и которые меня ни раз выручали. Каждое утверждение требует обсуждения, осмысления и критики.
Тон статьи кажется категоричным. Сразу же извиняюсь за это. Для краткости опустил фразы “я думаю”, “я полагаю” и проч.
Поделюсь опытом на основе примера. Придумаем же следующую задачу. Цифры и сроки условные.
Разрабатываем сайт e-commerce, который продает детские игрушки. Оплата только наличными. Реализовываем оплату безналичными с помощью:
Менеджер установил срок — неделя.
Вы покопались в готовом коде, изучили архитектуру, пораздумывали над этими требованиями. Вспомнили, что на нас висит еще 5 задач, которые никто не отменял. И осознали, что в установленные сроки вам не справиться.
Вы подошли к менеджеру, объяснили ситуацию. Менеджер ответил так:
Эти варианты вас не устраивают. Времени не хватит. Вы оказались в тупике и задумались о таких решениях:
Как же быть?
Тут поможет книга Стивена Р. Кови «7 навыков высокоэффективных людей» [1]
Будьте проактивными — предложите решение возникшей проблемы. У некоторых менеджеров на двери даже висит соответствующая табличка “без предложений не входить”.
Начиная, представляйте конечную цель — конечная цель тут не решить задачу, а удовлетворить текущие потребности бизнеса.
Сначала делайте то, что нужно делать сначала — вот оно решение возникшей проблемы. Самостоятельно узнаем приоритеты и разобъем задачу на этапы!
Думайте в духе выиграл — выиграл — этапность позволит выпустить готовую функцию даже раньше установленного срока. Менеджер охотнее примет предложение об этапах, если пораньше получит нужную функцию.
Припомним также определение Scrum-методологии [2] — это набор принципов позволяющий в жёстко фиксированные и небольшие по времени итерации предоставлять конечному пользователю работающее ПО с новыми возможностями, для которых определён наибольший приоритет.
Действия такие:
Подзадачи получились такие:
Менеджер корректирует список подзадач. Приоритеты установили на основе процента клиентов, которые хотели бы пользоваться платежными системами. Получили такие этапы:
Совместно с менеджером установили такие сроки:
Результаты:
Получилось, что мы не упеваем решить задачу за неделю, однако намного раньше релизим полезную функцию для клиентов.
Разбиение на этапы я показал на простой задаче. На практике задачи намного труднее, этапов больше, менеджеры не соглашаются с предложенным. Для обоснования используем UML диаграммы.
Диаграммы наглядно показывают, что задача составная, каждый элемент содержит в себе множество деталей и особенностей. Опираясь на такое наглядное описание, вы обосновываете, почему не получается реализовать задачу в установленные сроки.
Сроки выполнения отдельных элементов оцениваются точнее сроков выполнения большой задачи.
Выводы:
Выводы в виде советов:
Ссылки:
P.S.
Автор: HotFire
Источник [5]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/scrum/95696
Ссылки в тексте:
[1] книга Стивена Р. Кови «7 навыков высокоэффективных людей»: http://www.ozon.ru/context/detail/id/4749424/
[2] определение Scrum-методологии: https://ru.wikipedia.org/wiki/Scrum
[3] Стив Макконнелл — Совершенный код. Мастер-класс: http://www.ozon.ru/context/detail/id/5508646/
[4] Разработка через страдание: http://habrahabr.ru/post/155959/
[5] Источник: http://megamozg.ru/post/18366/
Нажмите здесь для печати.