HTML Diff
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>