Хитрости. Скачать. Бесплатно. Мой подход к сбору требований и оценке проектов.

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

В первую очередь, если говорить о моем подходе к работе над проектами, очень важно научиться ставить и отвечать на два вопроса:

  1. Какую задачу бизнес решает?
  2. Какой результат мы ожидаем на выходе?

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

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

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

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

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

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

  • Возможность добавлять маркеры-иконки к узлам карты
  • Freemind сохраняет карту в XML (а не экспортирует), что позволяет свободно оперировать с информацией карты и генерировать необходимые вам артефакты
  • Возможность добавлять текстовые, а точнее HTML описания для узлов карты. Я это использую как метаинформацию, которую использую в зависимости от маркера при генерации артефактов
  • Возможность помимо текстовых описаний добавлять аттрибуты, которые, я например использую для оценки для отдельных узлов, и на выходе получаю суммарную оценку по проекту

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

Пример простого mindmap с дополнительной метаинформацией
Пример простого mindmap с дополнительной метаинформацией

 

Вот так выглядит результат работы простого скрипта, который генерирует нужные артефакты из карты памяти
А вот так, выглядит результат работы простого скрипта, который генерирует нужные артефакты из этого mindmap

Сам скрипт, для тех кто заинтересовался.

Важно, в процессе выяснения деталей, разбивать функциональность на задачи максимум, по 4-8 часов, уменьшая, таким образом, риски и еще раз проясняя для себя, суть того что должно быть сделано. Если возникают сложности с оценкой, вполне возможно, задача недостаточно мелко разбита, либо недовыяснена. В таком случае, её стоит отложить до следующей итерации, либо продолжать выяснять детали. После этого, я еще раз могу проговорить это с клиентом, чтобы убедиться, что мы говорим об одном и том же и одинаково понимаем процесс и финальный результат.

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

ADD A(100) (transfer_id: 10)
DEC A(50) (SOLD by sale_order_id: X) ADD A(50), order_id: X
DEC A(10) (SOLD by sale_order_id: Y) ADD A(10), order_id: Y

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

Благодаря тому что freemind сохраняет карты в форматированный XML их можно ложить в репозиторий и отслеживать изменения, практически также удобно как и код. Вообще, надо сказать я большой фанат форматов которые читаются любым редактором, не требуя специального софта, версионируются в репозитории. Так я проникся нежной любовью к markdown, asciidoc и гораздо меньше LaTeX.

Если вы работаете в высокотехнологичном окружении, где все способны читать код, возможно вам больше подойдет Jupyther, opensource платформа, позволяющая писать и тут же запускать код на python/ruby, описывать его в markdown, визуализировать графики и многое другое. Например так это может выглядеть, и является стандартом де-факто в среде data scientists.

Comments

comments

Leave a reply:

Site Footer

Sliding Sidebar

About Me

About Me

Для кого этот блог?

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

Что заставило меня создать его?

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

Немного о себе.

Мой первый серьезный опыт в IT это работа над desktop приложениями в компании «Эксперт-Софт». У истоков её стояли несколько амбициозных и талантливых молодых людей, с огнем в глазах и желанием работать «как майкрософт». То чем мы там занимались вполне могли бы сегодня назвать «стартапом». Рук было откровенно мало, поэтому приходилось заниматься всем: кодированием на Delphi, написанием скриптов на VBA, дизайном, вёрсткой и поддержкой вебсайта, работой над рекламной полиграфией, проектированием интерфейсов и БД. Работы было много, но запал был велик, команда очень разношерстная, гармонично дополняя друг-друга в решении нетривиальных задач. Благодаря тому что пришлось попробовать многое, постепенно вырисовалось понимание того чем хочется заниматься, и как. Софтверным программированием я был сыт по горло. Массы проблем десктопного софта в вебе просто не было, по определению. Зато был четкий фокус на дизайне, юзабилити, скорости. Поэтому когда пришла пора уходить из «Эксперт-Софт», я без всякого сожаления стал искать работу как разработчик для web. Поскольку городишко у нас не очень большой, выбор был практически предопределен. Так я стал работать в «Оникс-Системз», где и продолжаю работать поныне. За время работы в компании я как разработчик принимал участие в работе над несколькими десятками проектов. Несколько десятков проектов было сделано мною как фрилансером. Самым большим проектом в котором я сыграл роль менеджера, считаю свою семью. Также довольно большой проект мы сейчас поднимаем с командой разработчиков (на данный момент команда состоит из четырех php разработчиков, одного flex кодера и тестировщика). Отсюда, большой интерес к современным практикам и методологиям, разным подходам в управлении командой, повышению эффективности и качества работы. По мере сил, вдохновения и свободного времени, я буду писать об этом.

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

e-mail:
skype: denis.sheremetov
Старый сайт, с музычкой и флешом

Прочая онлайновая деятельность: