Встретились два программиста.Один говорит: «У меня есть задача, но я не знаю, как ее решить».Другой отвечает: «А у меня есть решение, но я не знаю, какую задачу решать».Привет, друзья!Меня зовут Александр, я тимлид веб-разработчиков в агентстве RACURS.Каждый день группа разработки сталкивается с задачами по техподдержке сайтов. И поверьте, порой формулировки этих задач вызывают у программиста (и не только) нервный тик.Представьте: вы, клиент, мечтаете о прекрасном веб-сайте, который будет приносить миллионы (ну хотя бы сотню-другую тысяч) рублей. Вы с блеском в глазах объясняете разработчику: «Мне нужен сайт как у Google, только лучше!».Гениально, не правда ли? Теперь разработчик, счастливый от такой кристально ясной постановки задачи, может начать творить чудеса... Но, увы, он, скорее всего, будет долго выяснять, что вы имели в виду под словом «лучше».А пока вы будете платить за бесконечные уточнения и переделки, ваш сайт, вместо того чтобы приносить прибыль, будет приносить только головную боль.Давайте разберемся, как не надо ставить задачи и как нужно это делать, чтобы техподдержка работала как часы.Пять кругов ада некорректной постановки задач,или Что снится веб-разработчикам в кошмарах1. «Сделайте красиво». Эта фраза — гимн абстракции и субъективизму. Красота, как известно, в глазах смотрящего. Для менеджера «красиво» может быть ярко-розовым фоном с мигающими баннерами, а для дизайнера — минимализмом в стиле швейцарской типографики. Результат? Бесконечные итерации правок, потерянные время и нервные клетки.2. «Ускорьте сайт». Еще один хит. Сайт — это сложная система, и причин медленной загрузки может быть множество. Просто сказать «ускорьте» — все равно что попросить механика починить машину. Предоставьте результаты анализа скорости загрузки (например, из Google PageSpeed Insights), укажите конкретные проблемные метрики и желаемые значения.3. «Страница не работает». Лаконично, но бесполезно. Какая страница? На каком устройстве? В каком браузере? Какие действия приводят к ошибке? Какое сообщение об ошибке появляется? Без этой информации программист превращается в слепого котенка в темной комнате.4. «Посмотрите, почему сайт упал». Без доступа к логам сервера, мониторингу и другим инструментам программист может только гадать на кофейной гуще. Предоставьте доступ к необходимой информации, и шансы на быстрое решение проблемы значительно возрастут.5. «Почините верстку». Где она сломалась? На каких устройствах? Скриншот поломки есть? Эта задача превращается в поиск иголки в стоге сена без металлоискателя. Программист может потратить часы на поиск ошибки, которую можно было бы найти за минуту, имея необходимую информацию.Примеры задач из программистского адаПрекрасные мемы посмотрели, а теперь покажу, как такие задачи выглядят в реальной жизни.1. Вроде бы типовая задача — добавить код подтверждения для «Яндекс Вебмастера».Срок по задаче есть — здесь все ок. А вот с телом задачи сложнее: что и куда нужно добавить в этом случае? Да, программист может найти, как называются файлы подтверждения, или повторно запросить собственно файл подтверждения у SEO-специалиста, но это дополнительные затраты времени. И возникает вопрос: кто должен оплачивать это время? Клиент? А что плохого он вам сделал? :)Куда проще было бы просто прикрепить к задаче файл, который используют для валидации прав, и все. Выполнение заняло бы 3–5 минут максимум.2. Еще пример: клиент силами другого подрядчика пытается обновить версию «Битрикса» для своего интернет-магазина и пришел к нам за консультацией.Все три поставленных в задаче вопроса риторические, особенно если учесть ряд нюансов:У клиента три сайта. О каком из них речь?Какие модули и как именно дорабатывает сторонняя команда?Предсказать, «какие сложности могут возникнуть», в данном случае можно, только используя магический шар. Но, к сожалению, единственный участник «Битвы экстрасенсов» давно покинул нашу команду. В этой передаче уровень оплаты труда выше :) Нужно больше вводных: какие команды выполняются? какая у сервера базы данных версия? при каких именно этапах обновления осуществляются эти операции?После каких именно процедур?Совершенно очевидно: стоит как минимум организовать обсуждение, во время которого подсветить эти вопросы и понять, что именно требуется клиенту. Затем переформулировать задачу и поставить ее на оценку.3. Небольшие правки на сайте:Вопросы опять же к телу задачи:· Речь о том, что в мобильной версии кнопка «Купить» появляется только в самом конце, когда проскроллена вся страница. А когда должна? Программист должен сам это придумать?· «И она неактивна». А что она должна делать, будучи активной?· Где хотя бы один скриншот, чтобы понять, о чем речь?Суммарно на задачу ушло более четырех часов, хотя при корректной постановке она заняла бы от силы полтора-два часа.В общем, некорректная постановка задачи — это чудесный способ потратить кучу денег, времени и нервов, получив абсолютно не то, что вам нужно. Это искусство самосаботажа, доведенное до совершенства!Семь ступеней к нирване от идеальной постановки задач, или Как сделать программиста счастливым1. Четкое и подробное описание проблемы. Выглядит это так: на странице [URL страницы] в браузере [название браузера] на устройстве [вид устройства] при нажатии на кнопку [название кнопки] не открывается модальное окно, допустим. 2. Шаги для воспроизведения ошибки (если применимо). «1. Открыть страницу [URL страницы] в браузере [название браузера]. 2. Нажать на кнопку [название кнопки]».3. Ожидаемый результат. «После нажатия на кнопку должно открываться модальное окно с формой обратной связи».4. Прикрепленные файлы: скриншоты, видео, логи. Визуальное подтверждение проблемы значительно ускоряет процесс ее решения.5. Доступы. Предоставьте программисту доступ к необходимым ресурсам: к админке сайта, FTP, базе данных, репозиторию кода.6. Тестовые данные. Если задача связана с обработкой данных, предоставьте программисту тестовые данные для проверки.7. Коммуникация. Будьте на связи, отвечайте на вопросы программиста, давайте фидбэк.Как выглядят хорошо поставленные задачиРассмотрим несколько примеров корректной постановки задач. На приведенных скриншотах я скрыл персональные данные, поскольку важны именно аспекты постановки задач, а не содержание.1. Задача от SEO-специалистов по изменению метатегов на нескольких страницах сайта:· Указаны адреса страниц. · Приведены требуемые метатеги.· Указан срок выполнения.Программист быстро и четко выполнил задачу.2. Добавление страницы на наш сайт:· Указан срок выполнения. · Указаны блок и страница, куда нужно добавить информацию.· Приведен пример со скриншотом, как это должно выглядеть.· Приведены текстовые данные для размещения на странице.Чего еще желать? :) Большой респект менеджерам, которые ставят задачи именно так.3. Задачка посложнее — баг в системе «Битрикс24»:Указан сервис, в котором возникла проблема.Описана проблема.Приложены скриншоты.Указан дедлайн.Постановка вполне корректна — задача была выполнена с минимальными затратами времени. Нам не пришлось обращаться к менеджеру за уточнениями, поэтому было время даже кофе попить :)Методология постановки задач в агентстве RACURSВ RACURS мы используем методологию SMART, чтобы ставить задачи в соответствии с критериями четкости, измеримости, достижимости, актуальности и ограниченности во времени. Это позволяет избежать недопонимания и гарантирует эффективное выполнение работ.Что же такое SMART: · Specific («конкретная»): задача должна быть четко сформулирована, без двусмысленностей.· Measurable («измеримая»): должны быть четкие критерии, по которым можно оценить выполнение задачи.· Achievable («достижимая»): задача должна быть реалистичной и выполнимой в заданные сроки.· Relevant («актуальная»): задача должна быть важной и соответствовать целям проекта.· Time-bound («ограниченная во времени»): должен быть четкий дедлайн.Почему корректная постановка задач так важнаФундамент эффективной работы — корректная постановка задач. Она позволяет:· Экономить время и деньги. Четко поставленная задача решается быстрее, с меньшими затратами времени и денег.· Избегать ошибок и недопонимания. Подробное описание задачи минимизирует риск неправильной интерпретации.· Повышать качество работы. Когда программист понимает, что от него требуется, он может сосредоточиться на решении задачи, а не гадать на кофейной гуще.· Улучшать коммуникацию в команде. Четкая постановка задач способствует достижению взаимопонимания между менеджерами и разработчиками.В RACURS мы знаем, как важно правильно сформулировать задачу, и поэтому вместе с вами рассмотрели, что, когда и где нужно сделать до того, как ставить задачу программистам.ЗаключениеКорректная постановка задач разработчику — залог успешного сотрудничества.Четкое техническое задание помогает экономить деньги, время (а время — это тоже деньги) и нервы (здоровье вообще бесценно) обеих сторон.Мы стремимся к прозрачности и эффективности работ, ценим ваше время и поэтому стараемся формулировать задачи максимально понятно и конкретно.А если вам нужна помощь с разработкой, SEO-продвижением сайта или интернет-магазина, обращайтесь — мы знаем, как делать свою работу хорошо! ;)
Чувствуется, что наболело)
Мемы огненные)
100%
думаю, это очень политкорректная версия текста
Ветеринар приходит к терапевту. Сел и молчит.
Т: Ну, на что жалуетесь?
В: Ха, так-то любой дурак диагноз поставит!
простите, музыка навеяла )
А что «сделайте красиво» не прокатит?)
вообще, всегда прокатывает, согласна!)
Посмотрел на все это и ушел делать сайт на Тильде , без программистов