0 added
0 removed
Original
2026-01-01
Modified
2026-02-21
1
<p><a>#статьи</a></p>
1
<p><a>#статьи</a></p>
2
<ul><li>31 авг 2023</li>
2
<ul><li>31 авг 2023</li>
3
<li>0</li>
3
<li>0</li>
4
</ul><p>Предугадываем риски и предлагаем простые решения.</p>
4
</ul><p>Предугадываем риски и предлагаем простые решения.</p>
5
<p>Кадры: сериал "Кремниевая долина" / HBO</p>
5
<p>Кадры: сериал "Кремниевая долина" / HBO</p>
6
<p>Онлайн-журнал для тех, кто влюблён в код и информационные технологии. Пишем для айтишников и об айтишниках.</p>
6
<p>Онлайн-журнал для тех, кто влюблён в код и информационные технологии. Пишем для айтишников и об айтишниках.</p>
7
<p>Разработка софта не сводится к одному лишь программированию. Любой проект начинается с описания требований и составления технического задания. Если пропустить этот этап, то есть риск затянуть разработку или получить не тот результат, на который рассчитывает заказчик.</p>
7
<p>Разработка софта не сводится к одному лишь программированию. Любой проект начинается с описания требований и составления технического задания. Если пропустить этот этап, то есть риск затянуть разработку или получить не тот результат, на который рассчитывает заказчик.</p>
8
<p>Чтобы разобраться в самых частых ошибках при постановке задач и их последствиях, мы обратились к Екатерине Подаруевой - руководителю QA-отдела в SimbirSoft. Поговорили о том, почему важно фиксировать все договорённости, привлекать к работе системного аналитика и что ещё делать, чтобы избежать возможных проблем в проекте.</p>
8
<p>Чтобы разобраться в самых частых ошибках при постановке задач и их последствиях, мы обратились к Екатерине Подаруевой - руководителю QA-отдела в SimbirSoft. Поговорили о том, почему важно фиксировать все договорённости, привлекать к работе системного аналитика и что ещё делать, чтобы избежать возможных проблем в проекте.</p>
9
<p>Руководитель отдела QA в <a>SimbirSoft</a>. Опыт работы в IT - более четырёх лет, занимается обеспечением качества мобильных и веб-приложений.</p>
9
<p>Руководитель отдела QA в <a>SimbirSoft</a>. Опыт работы в IT - более четырёх лет, занимается обеспечением качества мобильных и веб-приложений.</p>
10
<p>В компаниях для постановки задач обычно используют таск-трекеры, например<a>Jira</a>или<a>Kaiten</a>. Они предлагают большое количество полей для описания того, что требуется сделать разработчику, аналитику или другому специалисту.</p>
10
<p>В компаниях для постановки задач обычно используют таск-трекеры, например<a>Jira</a>или<a>Kaiten</a>. Они предлагают большое количество полей для описания того, что требуется сделать разработчику, аналитику или другому специалисту.</p>
11
<p>Один из главных разделов в новой задаче - "Описание". Заполнить его несложно, но часто в командах первоначальное обсуждение задачи идёт верхнеуровнево - между руководителем разработки и системным аналитиком. Они вместе решают, что именно делать и в каком виде.</p>
11
<p>Один из главных разделов в новой задаче - "Описание". Заполнить его несложно, но часто в командах первоначальное обсуждение задачи идёт верхнеуровнево - между руководителем разработки и системным аналитиком. Они вместе решают, что именно делать и в каком виде.</p>
12
<p>При переносе такой задачи в таск-трекер её автор может проигнорировать подробное описание, заполнив только название задачи и добавив пару предложений в другие разделы. Почему так? Он может решить, что раз описание фичи уже есть в базе знаний, то членам команды и так должно быть понятно, что от них требуется и какого результата от них ждут.</p>
12
<p>При переносе такой задачи в таск-трекер её автор может проигнорировать подробное описание, заполнив только название задачи и добавив пару предложений в другие разделы. Почему так? Он может решить, что раз описание фичи уже есть в базе знаний, то членам команды и так должно быть понятно, что от них требуется и какого результата от них ждут.</p>
13
<p>Но при таком подходе к постановке задачи даже опытный и погружённый в проект специалист может упустить важные требования, не найдя их в базе знаний. Или понять их по-своему, не так, как изначально подразумевалось.</p>
13
<p>Но при таком подходе к постановке задачи даже опытный и погружённый в проект специалист может упустить важные требования, не найдя их в базе знаний. Или понять их по-своему, не так, как изначально подразумевалось.</p>
14
<p><strong>Разработчики и QA-специалисты будут тратить больше времени на решение задачи.</strong>Представьте: разработчик получает задачу, в которой есть только название. Перед тем как приступить к написанию кода, он ищет требования в базе знаний. Если требования описаны плохо, идёт к аналитику и уточняет их. Когда задача перейдёт к QA-инженеру, тот сделает то же самое: пойдёт изучать требования в базе знаний и уточнять их у коллег. Понятно, что из-за этого процесс затягивается, а разработчики и QA-инженеры отвлекают других специалистов от своих дел.</p>
14
<p><strong>Разработчики и QA-специалисты будут тратить больше времени на решение задачи.</strong>Представьте: разработчик получает задачу, в которой есть только название. Перед тем как приступить к написанию кода, он ищет требования в базе знаний. Если требования описаны плохо, идёт к аналитику и уточняет их. Когда задача перейдёт к QA-инженеру, тот сделает то же самое: пойдёт изучать требования в базе знаний и уточнять их у коллег. Понятно, что из-за этого процесс затягивается, а разработчики и QA-инженеры отвлекают других специалистов от своих дел.</p>
15
<p><strong>Задача возвращается на доработку.</strong>Если у задачи отсутствует подробное описание с требованиями, то разработчик может не понять, чего именно от него ждут. Поэтому задача, скорее всего, вернётся на доработку, а того, кто её ставил, попросят уточнить техническое задание.</p>
15
<p><strong>Задача возвращается на доработку.</strong>Если у задачи отсутствует подробное описание с требованиями, то разработчик может не понять, чего именно от него ждут. Поэтому задача, скорее всего, вернётся на доработку, а того, кто её ставил, попросят уточнить техническое задание.</p>
16
<p><strong>Бизнес или пользователи не будут удовлетворены результатом, а значит, и продуктом в целом.</strong>Разработчик, не найдя полного описания требований, реализует функциональность так, как он её понял. А QA-специалист, проверяя результат, будет опираться на понимание задачи программистом. Так возникает риск получить не то, что ожидает увидеть заказчик или конечные пользователи. В итоге с большой вероятностью придётся дорабатывать продукт или лишиться части пользователей из-за плохой функциональности и, как следствие, низкой популярности продукта.</p>
16
<p><strong>Бизнес или пользователи не будут удовлетворены результатом, а значит, и продуктом в целом.</strong>Разработчик, не найдя полного описания требований, реализует функциональность так, как он её понял. А QA-специалист, проверяя результат, будет опираться на понимание задачи программистом. Так возникает риск получить не то, что ожидает увидеть заказчик или конечные пользователи. В итоге с большой вероятностью придётся дорабатывать продукт или лишиться части пользователей из-за плохой функциональности и, как следствие, низкой популярности продукта.</p>
17
<p><strong>Обсудить постановку задач с командой.</strong>Рассказать участникам, почему важно всегда подробно описывать задачи и не делать исключений. Даже в тех случаях, когда в базе знаний есть вся необходимая для работы информация.</p>
17
<p><strong>Обсудить постановку задач с командой.</strong>Рассказать участникам, почему важно всегда подробно описывать задачи и не делать исключений. Даже в тех случаях, когда в базе знаний есть вся необходимая для работы информация.</p>
18
<p><strong>При создании и формулировке задач на разработку помнить про основные пункты описания:</strong></p>
18
<p><strong>При создании и формулировке задач на разработку помнить про основные пункты описания:</strong></p>
19
<ul><li>Понятное название задачи.</li>
19
<ul><li>Понятное название задачи.</li>
20
<li>Требования к функциональности и производительности продукта или системы, которые необходимо реализовать.</li>
20
<li>Требования к функциональности и производительности продукта или системы, которые необходимо реализовать.</li>
21
<li>Ссылки на дизайн-макеты, описание архитектуры, включая структуру, компоненты и взаимодействие между ними.</li>
21
<li>Ссылки на дизайн-макеты, описание архитектуры, включая структуру, компоненты и взаимодействие между ними.</li>
22
<li>Требования к тестированию и контролю качества, включая критерии приёмки.</li>
22
<li>Требования к тестированию и контролю качества, включая критерии приёмки.</li>
23
</ul><p>Точный перечень пунктов будет зависеть от специфики проекта. Лучше всего обсудить их внутри своей команды и прийти к одному шаблону оформления задач.</p>
23
</ul><p>Точный перечень пунктов будет зависеть от специфики проекта. Лучше всего обсудить их внутри своей команды и прийти к одному шаблону оформления задач.</p>
24
<p>Иногда встречаются проекты, где у продукта полностью или частично отсутствует описание предыдущих этапов разработки. То есть функции, компоненты и модули системы уже разработаны, но по ним нет зафиксированных требований. Такое случается в командах без системного аналитика или при срочной разработке, когда описание откладывается в бэклог.</p>
24
<p>Иногда встречаются проекты, где у продукта полностью или частично отсутствует описание предыдущих этапов разработки. То есть функции, компоненты и модули системы уже разработаны, но по ним нет зафиксированных требований. Такое случается в командах без системного аналитика или при срочной разработке, когда описание откладывается в бэклог.</p>
25
<p>Основной риск -<strong>регрессионные баги</strong>. При внесении доработок в такие системы разработчик может "сломать" работу важных частей программы, так как сложно понять, насколько вносимые изменения затронут уже существующие модули.</p>
25
<p>Основной риск -<strong>регрессионные баги</strong>. При внесении доработок в такие системы разработчик может "сломать" работу важных частей программы, так как сложно понять, насколько вносимые изменения затронут уже существующие модули.</p>
26
<ul><li>Все уточняющие вопросы по разработке и информацию по существующим зависимостям необходимо фиксировать в базе знаний. Это сократит время на локализацию проблем при их возникновении.</li>
26
<ul><li>Все уточняющие вопросы по разработке и информацию по существующим зависимостям необходимо фиксировать в базе знаний. Это сократит время на локализацию проблем при их возникновении.</li>
27
<li>Если в проекте не составлены требования к отдельным модулям и функциональности, создайте отдельные задачи для их описания. Обязательно укажите конкретные сроки и ответственных лиц.</li>
27
<li>Если в проекте не составлены требования к отдельным модулям и функциональности, создайте отдельные задачи для их описания. Обязательно укажите конкретные сроки и ответственных лиц.</li>
28
</ul><p>Иногда при разработке новой фичи командам бэкенда и фронтенда ставится одна задача с общим описанием. Это может показаться удобным, так как вся информация собрана в одном месте. Но у такого решения есть недостатки.</p>
28
</ul><p>Иногда при разработке новой фичи командам бэкенда и фронтенда ставится одна задача с общим описанием. Это может показаться удобным, так как вся информация собрана в одном месте. Но у такого решения есть недостатки.</p>
29
<p><strong>Трудности с формированием метрик и определением статусов по задаче.</strong>Одна команда может завершить свою часть работы раньше остальных, но задачу нельзя будет перевести в следующий статус, пока над ней работают другие специалисты. Это приведёт к потере времени и сложностям в управлении проектом.</p>
29
<p><strong>Трудности с формированием метрик и определением статусов по задаче.</strong>Одна команда может завершить свою часть работы раньше остальных, но задачу нельзя будет перевести в следующий статус, пока над ней работают другие специалисты. Это приведёт к потере времени и сложностям в управлении проектом.</p>
30
<p><strong>Нарушение принципа раннего тестирования.</strong>Например, QA-специалист может не увидеть, что бэкенд-разработчик уже завершил свою часть работы и что можно приступать к API-тестированию, не дожидаясь фронтенда. Это мешает раннему выявлению багов.</p>
30
<p><strong>Нарушение принципа раннего тестирования.</strong>Например, QA-специалист может не увидеть, что бэкенд-разработчик уже завершил свою часть работы и что можно приступать к API-тестированию, не дожидаясь фронтенда. Это мешает раннему выявлению багов.</p>
31
<p><strong>Отсутствие важных деталей для реализации необходимой функциональности.</strong>Такие "общие" задачи превращаются в копию описания требований из базы знаний. Идеальная задача - максимально конкретная и заведённая для конкретного специалиста. Она чётко описывает, что он должен сделать и как, прикреплены ссылки на требования, макеты и другая информация, которая может потребоваться в работе.</p>
31
<p><strong>Отсутствие важных деталей для реализации необходимой функциональности.</strong>Такие "общие" задачи превращаются в копию описания требований из базы знаний. Идеальная задача - максимально конкретная и заведённая для конкретного специалиста. Она чётко описывает, что он должен сделать и как, прикреплены ссылки на требования, макеты и другая информация, которая может потребоваться в работе.</p>
32
<ul><li>Создавать эпики (в терминологии Agile - большие задачи, которые можно разбить на несколько меньших) и подзадачи. Общая задача - это эпик. В нём создаются подзадачи для каждой команды с конкретным описанием и учётом особенностей работы над ними.</li>
32
<ul><li>Создавать эпики (в терминологии Agile - большие задачи, которые можно разбить на несколько меньших) и подзадачи. Общая задача - это эпик. В нём создаются подзадачи для каждой команды с конкретным описанием и учётом особенностей работы над ними.</li>
33
<li>Следить за статусом всех подзадач в таск-трекере и следовать принципу раннего тестирования: каждую подзадачу можно и нужно тестировать по готовности, не дожидаясь остальных. Когда все подзадачи готовы и протестированы, эпик переводится в статус "Готово к тестированию" и тестируется полностью.</li>
33
<li>Следить за статусом всех подзадач в таск-трекере и следовать принципу раннего тестирования: каждую подзадачу можно и нужно тестировать по готовности, не дожидаясь остальных. Когда все подзадачи готовы и протестированы, эпик переводится в статус "Готово к тестированию" и тестируется полностью.</li>
34
</ul><p>Представим экстремальный кейс: под конец спринта, практически перед релизом, появляется срочная задача. Времени на описание требований нет, и разработчик приступает к реализации после её обсуждения с техлидом.</p>
34
</ul><p>Представим экстремальный кейс: под конец спринта, практически перед релизом, появляется срочная задача. Времени на описание требований нет, и разработчик приступает к реализации после её обсуждения с техлидом.</p>
35
<p><strong>Команда будет тратить больше времени на решение задачи.</strong>Допустим, после разработки таск перейдёт к QA-специалисту. Чтобы понять, какие изменения были внесены в систему, ему придётся поспрашивать разработчика, отвлекая его от других задач.</p>
35
<p><strong>Команда будет тратить больше времени на решение задачи.</strong>Допустим, после разработки таск перейдёт к QA-специалисту. Чтобы понять, какие изменения были внесены в систему, ему придётся поспрашивать разработчика, отвлекая его от других задач.</p>
36
<p><strong>Неверная реализация.</strong>Если требования не описаны, то разработчик не может понять, правильно ли он понял ожидания тимлида и клиента. В результате возможна ошибочная реализация функциональности с последующими исправлениями.</p>
36
<p><strong>Неверная реализация.</strong>Если требования не описаны, то разработчик не может понять, правильно ли он понял ожидания тимлида и клиента. В результате возможна ошибочная реализация функциональности с последующими исправлениями.</p>
37
<p><strong>Баги на проде.</strong>Разработчик и QA могут упустить регрессионные баги, о которых мы говорили выше. Проявиться такие проблемы могут уже после релиза, сломав отдельную функциональность или работу приложения в целом.</p>
37
<p><strong>Баги на проде.</strong>Разработчик и QA могут упустить регрессионные баги, о которых мы говорили выше. Проявиться такие проблемы могут уже после релиза, сломав отдельную функциональность или работу приложения в целом.</p>
38
<p><strong>Пробел в описании системы.</strong>В большинстве случаев такие задачи не фиксируются в базе знаний. В будущем это может создать проблемы с тестированием и локализацией багов.</p>
38
<p><strong>Пробел в описании системы.</strong>В большинстве случаев такие задачи не фиксируются в базе знаний. В будущем это может создать проблемы с тестированием и локализацией багов.</p>
39
<ul><li><strong>Фиксировать в комментариях к задаче все обсуждаемые требования.</strong>Если требования не описаны, то считать задачу незавершённой и помечать её как технический долг до подробного описания в базе знаний и проверки на соответствие.</li>
39
<ul><li><strong>Фиксировать в комментариях к задаче все обсуждаемые требования.</strong>Если требования не описаны, то считать задачу незавершённой и помечать её как технический долг до подробного описания в базе знаний и проверки на соответствие.</li>
40
<li><strong>Передавать задачу аналитику.</strong>Он подготовит описание и проведёт ревью, которое затем попадёт в базу знаний.</li>
40
<li><strong>Передавать задачу аналитику.</strong>Он подготовит описание и проведёт ревью, которое затем попадёт в базу знаний.</li>
41
</ul><p>Задача для системного аналитика может быть сформулирована неправильно - с коротким описанием или вовсе без него. Например, встречаются ситуации, когда у задачи есть только название, но информация о требованиях, ответственных и другие разделы полностью отсутствуют.</p>
41
</ul><p>Задача для системного аналитика может быть сформулирована неправильно - с коротким описанием или вовсе без него. Например, встречаются ситуации, когда у задачи есть только название, но информация о требованиях, ответственных и другие разделы полностью отсутствуют.</p>
42
<p><strong>Неправильная оценка сроков исполнения задачи.</strong>Аналитик не сможет оценить объём работы, так как это невозможно сделать без подробного описания. Например, ему может потребоваться только обновить описание требований к разработке, которые были написаны в прошлый раз. Или же написать требования с нуля, обсудив их с командой. Время на выполнение двух этих задач будет различаться на порядок.</p>
42
<p><strong>Неправильная оценка сроков исполнения задачи.</strong>Аналитик не сможет оценить объём работы, так как это невозможно сделать без подробного описания. Например, ему может потребоваться только обновить описание требований к разработке, которые были написаны в прошлый раз. Или же написать требования с нуля, обсудив их с командой. Время на выполнение двух этих задач будет различаться на порядок.</p>
43
<p><strong>Интеграционные баги.</strong>Аналитик может упустить описание взаимодействия нового кода со смежными системами, так как в задаче это не было указано. В результате после релиза или на этапе тестирования будут выявлены критичные баги.</p>
43
<p><strong>Интеграционные баги.</strong>Аналитик может упустить описание взаимодействия нового кода со смежными системами, так как в задаче это не было указано. В результате после релиза или на этапе тестирования будут выявлены критичные баги.</p>
44
<ul><li><strong>Договориться с командой, чтобы системный аналитик обязательно обсуждал задачу с автором, перед тем как взять её в работу.</strong>Все дополнительные сведения, полученные во время этой встречи, фиксируются в описании задачи.</li>
44
<ul><li><strong>Договориться с командой, чтобы системный аналитик обязательно обсуждал задачу с автором, перед тем как взять её в работу.</strong>Все дополнительные сведения, полученные во время этой встречи, фиксируются в описании задачи.</li>
45
<li><strong>Перед отправкой задачи в работу обсудить её с разработчиком и QA-специалистом.</strong>Это поможет учесть их мнения на этапе описания требований, а не в момент реализации фичи.</li>
45
<li><strong>Перед отправкой задачи в работу обсудить её с разработчиком и QA-специалистом.</strong>Это поможет учесть их мнения на этапе описания требований, а не в момент реализации фичи.</li>
46
</ul><p>Если системный аналитик не знает особенностей бизнеса и предпочтений пользователей, то он может неправильно описать логику работы системы и сформулировать требования к разработке.</p>
46
</ul><p>Если системный аналитик не знает особенностей бизнеса и предпочтений пользователей, то он может неправильно описать логику работы системы и сформулировать требования к разработке.</p>
47
<ul><li><strong>Подключить консультанта или эксперта.</strong>Узнать у клиента, к кому можно обратиться с вопросами по бизнесу или отрасли в целом. Провести с этим человеком или отделом предварительную встречу и объяснить важность работы с системным аналитиком.</li>
47
<ul><li><strong>Подключить консультанта или эксперта.</strong>Узнать у клиента, к кому можно обратиться с вопросами по бизнесу или отрасли в целом. Провести с этим человеком или отделом предварительную встречу и объяснить важность работы с системным аналитиком.</li>
48
<li><strong>Проводить онбординг специалистов</strong>, который включает в себя погружение в специфику проекта - объяснение его целей, целевой аудитории, конкурентных преимуществ и других нюансов. Команда разработки должна быть погружена и в техническую, и в бизнесовую часть продукта. Для того чтобы не проводить подробный онбординг с каждым, основную информацию о проекте и отрасли необходимо добавить в базу знаний, предварительно согласовав с клиентом или экспертом.</li>
48
<li><strong>Проводить онбординг специалистов</strong>, который включает в себя погружение в специфику проекта - объяснение его целей, целевой аудитории, конкурентных преимуществ и других нюансов. Команда разработки должна быть погружена и в техническую, и в бизнесовую часть продукта. Для того чтобы не проводить подробный онбординг с каждым, основную информацию о проекте и отрасли необходимо добавить в базу знаний, предварительно согласовав с клиентом или экспертом.</li>
49
</ul><p>Подведём краткие итоги:</p>
49
</ul><p>Подведём краткие итоги:</p>
50
<ul><li>Проработанное описание требований экономит время команды и снижает затраты на создание IT-продукта.</li>
50
<ul><li>Проработанное описание требований экономит время команды и снижает затраты на создание IT-продукта.</li>
51
<li>Если не описывать этапы разработки, есть риск поймать регрессионные баги - когда новый код ломает существующий.</li>
51
<li>Если не описывать этапы разработки, есть риск поймать регрессионные баги - когда новый код ломает существующий.</li>
52
<li>Системный аналитик может снизить риски, работая над требованиями и вовремя описывая систему в базе знаний.</li>
52
<li>Системный аналитик может снизить риски, работая над требованиями и вовремя описывая систему в базе знаний.</li>
53
<li>Команда разработки должна знать не только техническую часть проекта, но и бизнесовую: для кого создаётся продукт, как он отличается от разработок конкурентов, какая у него конечная цель и так далее.</li>
53
<li>Команда разработки должна знать не только техническую часть проекта, но и бизнесовую: для кого создаётся продукт, как он отличается от разработок конкурентов, какая у него конечная цель и так далее.</li>
54
</ul><a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>
54
</ul><a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>