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>1 апр 2022</li>
2 <ul><li>1 апр 2022</li>
3 <li>0</li>
3 <li>0</li>
4 </ul><h2>Кто, чёрт возьми, писал это техзадание?</h2>
4 </ul><h2>Кто, чёрт возьми, писал это техзадание?</h2>
5 <p>Если вы не раз проклинали непонятные техтребования - прочитайте этот гайд от разработчика из The New York Times Джастина Фуллера.</p>
5 <p>Если вы не раз проклинали непонятные техтребования - прочитайте этот гайд от разработчика из The New York Times Джастина Фуллера.</p>
6 <p>Кадр: сериал "Кремниевая долина"</p>
6 <p>Кадр: сериал "Кремниевая долина"</p>
7 <p>Онлайн-журнал для тех, кто влюблён в код и информационные технологии. Пишем для айтишников и об айтишниках.</p>
7 <p>Онлайн-журнал для тех, кто влюблён в код и информационные технологии. Пишем для айтишников и об айтишниках.</p>
8 <p>Муж, отец, разработчик ПО в The New York Times.</p>
8 <p>Муж, отец, разработчик ПО в The New York Times.</p>
9 <p>Бывает так: перед вами ставят задачу, а вы не в силах не то что приступить к её выполнению, но даже понять - чего от вас, собственно, хотят. Не стоит пенять на свой интеллект, опыт и квалификацию: рано или поздно нечто подобное случается с каждым, так уж устроено человеческое общение.</p>
9 <p>Бывает так: перед вами ставят задачу, а вы не в силах не то что приступить к её выполнению, но даже понять - чего от вас, собственно, хотят. Не стоит пенять на свой интеллект, опыт и квалификацию: рано или поздно нечто подобное случается с каждым, так уж устроено человеческое общение.</p>
10 <p>Не стоит ломать голову, отчего это происходит, - лучше сосредоточиться на том, чтобы с честью выйти из ситуации.</p>
10 <p>Не стоит ломать голову, отчего это происходит, - лучше сосредоточиться на том, чтобы с честью выйти из ситуации.</p>
11 <p>Само определение слова "требования"<em>(англ. requirements. - Ред.)</em>может существенно варьироваться в зависимости от вида деятельности, масштаба и стиля работы вашей фирмы.</p>
11 <p>Само определение слова "требования"<em>(англ. requirements. - Ред.)</em>может существенно варьироваться в зависимости от вида деятельности, масштаба и стиля работы вашей фирмы.</p>
12 <ol><li>Возможно, вам выдадут подробное и тщательно проработанное техническое задание - так любят делать в крупных корпорациях.</li>
12 <ol><li>Возможно, вам выдадут подробное и тщательно проработанное техническое задание - так любят делать в крупных корпорациях.</li>
13 <li>Или вам придётся изучать увесистый томик разглагольствований о том, какая работа вам предстоит и что было сделано ранее (как-то раз я битый час просидел на собрании, посвящённом единственному вопросу: как подписать кнопку - "Перезапуск" или "Перезагрузка").</li>
13 <li>Или вам придётся изучать увесистый томик разглагольствований о том, какая работа вам предстоит и что было сделано ранее (как-то раз я битый час просидел на собрании, посвящённом единственному вопросу: как подписать кнопку - "Перезапуск" или "Перезагрузка").</li>
14 <li>А может, в среду вечером улыбчивый шеф похлопает вас по плечу и как бы невзначай попросит до пятницы обкашлять небольшой вопросик: "Да там дел-то на минуту!"</li>
14 <li>А может, в среду вечером улыбчивый шеф похлопает вас по плечу и как бы невзначай попросит до пятницы обкашлять небольшой вопросик: "Да там дел-то на минуту!"</li>
15 </ol><p>В любом из описанных случаев разработчикам так или иначе предстоит устранить какую-то проблему. В этом и состоит их работа. И чтобы успешно её выполнить, первым делом нужно убедиться, что вы правильно понимаете её суть.</p>
15 </ol><p>В любом из описанных случаев разработчикам так или иначе предстоит устранить какую-то проблему. В этом и состоит их работа. И чтобы успешно её выполнить, первым делом нужно убедиться, что вы правильно понимаете её суть.</p>
16 <p>При этом вы можете столкнуться с вопросами, ответить на которые не поможет ни ТЗ, ни личный опыт. Возможно, вам придётся обратиться за советом к коллегам, начальству, заказчику, бизнес-аналитику и даже собственной бабушке. Это нормально - так вы соберёте и обработаете разрозненные знания и приобретёте нужные скиллы.</p>
16 <p>При этом вы можете столкнуться с вопросами, ответить на которые не поможет ни ТЗ, ни личный опыт. Возможно, вам придётся обратиться за советом к коллегам, начальству, заказчику, бизнес-аналитику и даже собственной бабушке. Это нормально - так вы соберёте и обработаете разрозненные знания и приобретёте нужные скиллы.</p>
17 <p>Описанный ниже алгоритм не догма; более того, полное прохождение всех этапов потребуется лишь тогда, когда вы имеете дело с действительно комплексной и многосоставной задачей. Так что не пытайтесь слишком формализовать процесс - каждый из этапов помогает всего лишь быстрее разобраться в проблеме, но ни в коем случае не ограничивает вас! Это просто полезные советы о том, как действовать в непонятной ситуации.</p>
17 <p>Описанный ниже алгоритм не догма; более того, полное прохождение всех этапов потребуется лишь тогда, когда вы имеете дело с действительно комплексной и многосоставной задачей. Так что не пытайтесь слишком формализовать процесс - каждый из этапов помогает всего лишь быстрее разобраться в проблеме, но ни в коем случае не ограничивает вас! Это просто полезные советы о том, как действовать в непонятной ситуации.</p>
18 <p>Сначала поймите, что именно от вас требуется. Подчёркиваю: ещё не время думать о том, как вы будете выполнять поручение. Лучше обмозгуйте возможные последствия своих действий, а главное - разберитесь, чего от вас ожидают. Вот несколько простых приёмов.</p>
18 <p>Сначала поймите, что именно от вас требуется. Подчёркиваю: ещё не время думать о том, как вы будете выполнять поручение. Лучше обмозгуйте возможные последствия своих действий, а главное - разберитесь, чего от вас ожидают. Вот несколько простых приёмов.</p>
19 <p>Установите, какого рода работу нужно сделать для решения проблемы. Например:</p>
19 <p>Установите, какого рода работу нужно сделать для решения проблемы. Например:</p>
20 <ul><li>исправить ошибку;</li>
20 <ul><li>исправить ошибку;</li>
21 <li>добавить новую функцию;</li>
21 <li>добавить новую функцию;</li>
22 <li>разработать новое приложение;</li>
22 <li>разработать новое приложение;</li>
23 <li>провести исследование;</li>
23 <li>провести исследование;</li>
24 <li>повысить производительность;</li>
24 <li>повысить производительность;</li>
25 <li>что-то ещё.</li>
25 <li>что-то ещё.</li>
26 </ul><p>Этот этап особенно важен, когда требования расплывчаты. Допустим, вам говорят: "Нужно найти способ очистить кэш пользователей после обновления веб-сайта". Интерпретировать эту задачу можно по-разному:</p>
26 </ul><p>Этот этап особенно важен, когда требования расплывчаты. Допустим, вам говорят: "Нужно найти способ очистить кэш пользователей после обновления веб-сайта". Интерпретировать эту задачу можно по-разному:</p>
27 <ul><li>настроить очистку кэша так, чтобы пользователи всегда видели свежие обновления;</li>
27 <ul><li>настроить очистку кэша так, чтобы пользователи всегда видели свежие обновления;</li>
28 <li>проанализировать все способы хранения кэша и выявить лучший вид его очистки после каждого обновления сайта;</li>
28 <li>проанализировать все способы хранения кэша и выявить лучший вид его очистки после каждого обновления сайта;</li>
29 <li>найти и устранить ошибку, мешающую очистке кэша;</li>
29 <li>найти и устранить ошибку, мешающую очистке кэша;</li>
30 <li>и так до бесконечности.</li>
30 <li>и так до бесконечности.</li>
31 </ul><p>Если вы не уверены, что конкретно подразумевалось в задании - лучше уточните детали перед тем, как его выполнять.</p>
31 </ul><p>Если вы не уверены, что конкретно подразумевалось в задании - лучше уточните детали перед тем, как его выполнять.</p>
32 <em>Кадр: фильм "Джобс: Империя соблазна"</em><p>Желательно - в одном-двух предложениях. Представьте, будто вы составляете план работы на день. Не исключено, что ужать все требования до пары фраз будет непросто - в таком случае разбейте задачу на несколько подзадач. По сути, этот этап покажет, насколько проста задача и понятна ли вам её интерпретация.</p>
32 <em>Кадр: фильм "Джобс: Империя соблазна"</em><p>Желательно - в одном-двух предложениях. Представьте, будто вы составляете план работы на день. Не исключено, что ужать все требования до пары фраз будет непросто - в таком случае разбейте задачу на несколько подзадач. По сути, этот этап покажет, насколько проста задача и понятна ли вам её интерпретация.</p>
33 <p>Удачный вариант формулировки: "При обновлении сайта присваивать каждому файлу уникальный номер - так, чтобы браузер загружал только свежий код".</p>
33 <p>Удачный вариант формулировки: "При обновлении сайта присваивать каждому файлу уникальный номер - так, чтобы браузер загружал только свежий код".</p>
34 <p>Неудачный вариант: "При обновлении сайта присваивать каждому файлу уникальный номер для того, чтобы браузер загружал только свежий код. Также нужно передать сообщение CDN о необходимости обновлять файлы. Кроме того, добавить обновления для приложений на <a>iOS</a>и <a>Android</a>. Затем…"</p>
34 <p>Неудачный вариант: "При обновлении сайта присваивать каждому файлу уникальный номер для того, чтобы браузер загружал только свежий код. Также нужно передать сообщение CDN о необходимости обновлять файлы. Кроме того, добавить обновления для приложений на <a>iOS</a>и <a>Android</a>. Затем…"</p>
35 <p>Очевидно, что второй вариант не соответствует требованию лаконичности: несколько задач слились в одну, тогда как разумнее было бы передавать их в работу по отдельности.</p>
35 <p>Очевидно, что второй вариант не соответствует требованию лаконичности: несколько задач слились в одну, тогда как разумнее было бы передавать их в работу по отдельности.</p>
36 <p>Теперь вам необходимо составить список основных действий в любой удобной форме. По-прежнему будьте лаконичны: не стоит расписывать пошаговое руководство по решению проблемы, просто вкратце изложите главные шаги.</p>
36 <p>Теперь вам необходимо составить список основных действий в любой удобной форме. По-прежнему будьте лаконичны: не стоит расписывать пошаговое руководство по решению проблемы, просто вкратце изложите главные шаги.</p>
37 <p>Помните: на этом этапе вы анализируете стоящую перед вами задачу. Поэтому очень рекомендую записать свой план. Лично я пользуюсь заметками в телефоне.</p>
37 <p>Помните: на этом этапе вы анализируете стоящую перед вами задачу. Поэтому очень рекомендую записать свой план. Лично я пользуюсь заметками в телефоне.</p>
38 <p>Допустим, вам поручили настроить таргетированную рекламу продуктов в соответствии с предпочтениями каждого пользователя. Тогда алгоритм ваших действий может выглядеть так:</p>
38 <p>Допустим, вам поручили настроить таргетированную рекламу продуктов в соответствии с предпочтениями каждого пользователя. Тогда алгоритм ваших действий может выглядеть так:</p>
39 <ul><li>Сегментировать существующую рекламу в зависимости от пользовательской метрики.</li>
39 <ul><li>Сегментировать существующую рекламу в зависимости от пользовательской метрики.</li>
40 <li>Найти способ, с помощью которого маркетологи смогут сопоставлять новую рекламу с данными о пользователях (без кода!).</li>
40 <li>Найти способ, с помощью которого маркетологи смогут сопоставлять новую рекламу с данными о пользователях (без кода!).</li>
41 <li>Собирать метрики пользователей, актуальные для рекламы.</li>
41 <li>Собирать метрики пользователей, актуальные для рекламы.</li>
42 <li>Разработать систему, выдающую таргетированную рекламу в соответствии с ID пользователя.</li>
42 <li>Разработать систему, выдающую таргетированную рекламу в соответствии с ID пользователя.</li>
43 </ul><p>Прелесть такого списка - в наглядности. Его можно быстро обсудить с коллегами или начальником. Допустим, вы показали его тимлиду, и он посоветовал вам добавить ещё один важный пункт: у пользователей должна быть возможность отказаться от рекламы. Логично: мы же не хотим раздражать любимых пользователей!</p>
43 </ul><p>Прелесть такого списка - в наглядности. Его можно быстро обсудить с коллегами или начальником. Допустим, вы показали его тимлиду, и он посоветовал вам добавить ещё один важный пункт: у пользователей должна быть возможность отказаться от рекламы. Логично: мы же не хотим раздражать любимых пользователей!</p>
44 <p>Результат - налицо: ещё до того, как приступить к программированию, мы проанализировали важную проблему и распланировали действия для её решения. Таким образом, взяв паузу и тщательно всё взвесив, мы сэкономили часы или даже дни будущих лишних трудозатрат.</p>
44 <p>Результат - налицо: ещё до того, как приступить к программированию, мы проанализировали важную проблему и распланировали действия для её решения. Таким образом, взяв паузу и тщательно всё взвесив, мы сэкономили часы или даже дни будущих лишних трудозатрат.</p>
45 <p>Возможно, в некоторых из вас сейчас проснётся скептик: мол, в серьёзном бизнесе все требования, перед тем как попасть к разработчикам, должны анализироваться по умолчанию! Не соглашусь: к сожалению, наш мир несовершенен, и перед разработчиками нередко ставят не вполне конкретные задачи - так что умением объективно оценивать требования должен обладать каждый.</p>
45 <p>Возможно, в некоторых из вас сейчас проснётся скептик: мол, в серьёзном бизнесе все требования, перед тем как попасть к разработчикам, должны анализироваться по умолчанию! Не соглашусь: к сожалению, наш мир несовершенен, и перед разработчиками нередко ставят не вполне конкретные задачи - так что умением объективно оценивать требования должен обладать каждый.</p>
46 <em>Кадр: сериал "Кремниевая долина"</em><p>Для этого ответьте на простые вопросы:</p>
46 <em>Кадр: сериал "Кремниевая долина"</em><p>Для этого ответьте на простые вопросы:</p>
47 <ul><li>Кому и зачем будет нужно то, что я сделаю?</li>
47 <ul><li>Кому и зачем будет нужно то, что я сделаю?</li>
48 <li>Какую реальную или потенциальную глобальную проблему я пытаюсь решить?</li>
48 <li>Какую реальную или потенциальную глобальную проблему я пытаюсь решить?</li>
49 </ul><p>Здорово, если ответ ясен сразу. В примере с кэшем можно сказать: "Пользователи всегда будут видеть последние обновления". В примере с рекламой: "Пользователи будут видеть только те объявления, которые могут их заинтересовать".</p>
49 </ul><p>Здорово, если ответ ясен сразу. В примере с кэшем можно сказать: "Пользователи всегда будут видеть последние обновления". В примере с рекламой: "Пользователи будут видеть только те объявления, которые могут их заинтересовать".</p>
50 <p>Если очевидного ответа нет - вероятно, пришло время спросить кого-то со стороны. Так вы либо получите более чёткое представление о поставленной задаче, либо переосмыслите стоящие перед вами требования.</p>
50 <p>Если очевидного ответа нет - вероятно, пришло время спросить кого-то со стороны. Так вы либо получите более чёткое представление о поставленной задаче, либо переосмыслите стоящие перед вами требования.</p>
51 <p>Надеюсь, ценность любого из ответов ваших собеседников очевидна. Более глубокое понимание проблемы и цели поможет вам принимать правильные решения не только для разработки, но и для бизнеса в целом. Выявляя неудачные решения или несущественные трудности, вы экономите усилия, которые могли бы быть потрачены впустую.</p>
51 <p>Надеюсь, ценность любого из ответов ваших собеседников очевидна. Более глубокое понимание проблемы и цели поможет вам принимать правильные решения не только для разработки, но и для бизнеса в целом. Выявляя неудачные решения или несущественные трудности, вы экономите усилия, которые могли бы быть потрачены впустую.</p>
52 <p>На данном этапе у вас уже должно быть понимание, что вы собираетесь делать и зачем. Необходимо лишь обдумать детали: как делать и почему именно так.</p>
52 <p>На данном этапе у вас уже должно быть понимание, что вы собираетесь делать и зачем. Необходимо лишь обдумать детали: как делать и почему именно так.</p>
53 <p>Вероятно, кто-то посчитает этот шаг избыточным: действительно, он актуален в основном для новичков в команде или для тех, кто работает в крупной компании. В этих случаях вероятность встретить незнакомый термин в требованиях значительно возрастает.</p>
53 <p>Вероятно, кто-то посчитает этот шаг избыточным: действительно, он актуален в основном для новичков в команде или для тех, кто работает в крупной компании. В этих случаях вероятность встретить незнакомый термин в требованиях значительно возрастает.</p>
54 <p>Под терминами я подразумеваю, например, коммерческие понятия - обозначения продуктов, заказчиков или процессов. Или термины, связанные с разработкой, - утилиты, приложения, модели, сервисы, библиотеки.</p>
54 <p>Под терминами я подразумеваю, например, коммерческие понятия - обозначения продуктов, заказчиков или процессов. Или термины, связанные с разработкой, - утилиты, приложения, модели, сервисы, библиотеки.</p>
55 <p>Убедитесь в том, что понимаете все основные понятия чётко, без неопределённостей, двойных трактовок и разночтений. Только тогда вы можете быть уверены в правильности выполнения задачи.</p>
55 <p>Убедитесь в том, что понимаете все основные понятия чётко, без неопределённостей, двойных трактовок и разночтений. Только тогда вы можете быть уверены в правильности выполнения задачи.</p>
56 <em>Кадр: сериал "Компьютерщики"</em><p>Возьмём наш пример с кэшем. Скорее всего, вы знали, что для решения проблемы было необходимо найти способ доступа к собранной информации о пользователях. Но знаете ли вы, что значит "добавить её к DAO"?</p>
56 <em>Кадр: сериал "Компьютерщики"</em><p>Возьмём наш пример с кэшем. Скорее всего, вы знали, что для решения проблемы было необходимо найти способ доступа к собранной информации о пользователях. Но знаете ли вы, что значит "добавить её к DAO"?</p>
57 <p>Во втором примере вы, вероятно, догадались, что нужно отформатировать данные о рекламе. Но понимаете ли вы, что такое MADF (marking advertisement data feed)? Я тоже нет. Вот почему так важно иметь ясное представление о необходимой терминологии. Незнание понятий увеличивает риск ошибок.</p>
57 <p>Во втором примере вы, вероятно, догадались, что нужно отформатировать данные о рекламе. Но понимаете ли вы, что такое MADF (marking advertisement data feed)? Я тоже нет. Вот почему так важно иметь ясное представление о необходимой терминологии. Незнание понятий увеличивает риск ошибок.</p>
58 <p>Реализация этого пункта зависит от того, где вы работаете, и от вашей непосредственной задачи. Бывает, что перед вами ставят только конечную цель - разработать определённую функциональность, не конкретизируя, как это сделать. А где-то пошагово распишут необходимые действия. Скорее всего, вы сталкивались и с тем, и с другим.</p>
58 <p>Реализация этого пункта зависит от того, где вы работаете, и от вашей непосредственной задачи. Бывает, что перед вами ставят только конечную цель - разработать определённую функциональность, не конкретизируя, как это сделать. А где-то пошагово распишут необходимые действия. Скорее всего, вы сталкивались и с тем, и с другим.</p>
59 <p>Если у вас нет конкретных инструкций, то предпринимать какие-то действия по данному пункту, конечно, сложно. Если есть - изучите их. Не спешите делать вывод, что всё и так очевидно. Важно понимать не только что делать, но и когда это делать.</p>
59 <p>Если у вас нет конкретных инструкций, то предпринимать какие-то действия по данному пункту, конечно, сложно. Если есть - изучите их. Не спешите делать вывод, что всё и так очевидно. Важно понимать не только что делать, но и когда это делать.</p>
60 <p>Получив задание, мы поддаёмся естественному желанию углубиться в его детали, не убедившись, что осознаём его смысл. Однако такой подход не всегда приводит к хорошим результатам. Попробуйте сначала обдумать проблему: это позволит вам более чётко представлять цель и пути её достижения.</p>
60 <p>Получив задание, мы поддаёмся естественному желанию углубиться в его детали, не убедившись, что осознаём его смысл. Однако такой подход не всегда приводит к хорошим результатам. Попробуйте сначала обдумать проблему: это позволит вам более чётко представлять цель и пути её достижения.</p>
61 <p>В этом пункте объединены первый и второй этапы нашего плана. Выполняя первый шаг, вы концентрировались на главных целях и ожидаемых результатах работы, то есть на вопросах "что?" и "зачем?". На втором этапе вы погрузились в детали, задаваясь вопросом "как?". Пришло время сравнить желаемое с действительным. Иными словами, вы можете объяснить детали, принимая во внимание общую картину, и оценить, решена ли изначальная проблема.</p>
61 <p>В этом пункте объединены первый и второй этапы нашего плана. Выполняя первый шаг, вы концентрировались на главных целях и ожидаемых результатах работы, то есть на вопросах "что?" и "зачем?". На втором этапе вы погрузились в детали, задаваясь вопросом "как?". Пришло время сравнить желаемое с действительным. Иными словами, вы можете объяснить детали, принимая во внимание общую картину, и оценить, решена ли изначальная проблема.</p>
62 <p>Спросите себя: приведут ли поставленные требования к ожидаемому результату? Действительно ли этот результат решает исходную проблему?</p>
62 <p>Спросите себя: приведут ли поставленные требования к ожидаемому результату? Действительно ли этот результат решает исходную проблему?</p>
63 <p>Если вы утвердительно ответили на оба вопроса и уверены, что все действия оправданны, - приступайте к работе. В противном случае переходите к третьему шагу, который поможет вам разрешить конфликт.</p>
63 <p>Если вы утвердительно ответили на оба вопроса и уверены, что все действия оправданны, - приступайте к работе. В противном случае переходите к третьему шагу, который поможет вам разрешить конфликт.</p>
64 <p>На данном этапе вы уже должны ясно понимать проблему и её решение. Осталось убедиться в его правильности.</p>
64 <p>На данном этапе вы уже должны ясно понимать проблему и её решение. Осталось убедиться в его правильности.</p>
65 <p>В теории создание максимально качественного продукта предполагает свободу мнений. Каждый член команды должен иметь возможность высказаться против неоправданных для результата действий.</p>
65 <p>В теории создание максимально качественного продукта предполагает свободу мнений. Каждый член команды должен иметь возможность высказаться против неоправданных для результата действий.</p>
66 <p>Однако вряд ли стоит возражать необоснованно. Нельзя просто сказать "мне не нравится" или "я чувствую, что здесь что-то не так". Необходимо тщательно обдумать ситуацию и сформулировать конкретные аргументы.</p>
66 <p>Однако вряд ли стоит возражать необоснованно. Нельзя просто сказать "мне не нравится" или "я чувствую, что здесь что-то не так". Необходимо тщательно обдумать ситуацию и сформулировать конкретные аргументы.</p>
67 <p>Выделим несколько основных правил при выражении несогласия.</p>
67 <p>Выделим несколько основных правил при выражении несогласия.</p>
68 <em>Кадр: сериал "Кремниевая долина"</em><p><strong>Убедитесь, что ясно понимаете, с чем не согласны.</strong>Не стоит ставить под сомнение вещи, в которых вы ещё не до конца разобрались. Если вы не можете чётко обозначить проблему и возможное решение или доказать свою точку зрения - значит, вы пока не готовы к дискуссии. Возражения уместны только при максимально детальном понимании ситуации. В противном случае советую вернуться к предыдущим пунктам и восполнить существующие пробелы.</p>
68 <em>Кадр: сериал "Кремниевая долина"</em><p><strong>Убедитесь, что ясно понимаете, с чем не согласны.</strong>Не стоит ставить под сомнение вещи, в которых вы ещё не до конца разобрались. Если вы не можете чётко обозначить проблему и возможное решение или доказать свою точку зрения - значит, вы пока не готовы к дискуссии. Возражения уместны только при максимально детальном понимании ситуации. В противном случае советую вернуться к предыдущим пунктам и восполнить существующие пробелы.</p>
69 <p><strong>Отбросьте субъективность. Сосредоточьтесь на конкретных вопросах.</strong>Фраза "мне не нравится такое решение" субъективна, она не отражает объективной причины проблемы. Лучше сказать: "Количество задействованных операций вызовет проблемы с производительностью".</p>
69 <p><strong>Отбросьте субъективность. Сосредоточьтесь на конкретных вопросах.</strong>Фраза "мне не нравится такое решение" субъективна, она не отражает объективной причины проблемы. Лучше сказать: "Количество задействованных операций вызовет проблемы с производительностью".</p>
70 <p>"Раньше я делал это по-другому" или "я бы применил немного другое решение, просто потому, что так вижу" - тоже субъективные суждения.</p>
70 <p>"Раньше я делал это по-другому" или "я бы применил немного другое решение, просто потому, что так вижу" - тоже субъективные суждения.</p>
71 <p><strong>Будьте готовы аргументированно объяснить вашу позицию.</strong>Вправе ли вы заявлять о некорректности чего-либо, если не можете обосновать, почему уверены в этом? Поэтому рекомендую записать все существующие, на ваш взгляд, ошибки и предложить решение. Если же оно не найдено - чётко заявите об этом в самом начале.</p>
71 <p><strong>Будьте готовы аргументированно объяснить вашу позицию.</strong>Вправе ли вы заявлять о некорректности чего-либо, если не можете обосновать, почему уверены в этом? Поэтому рекомендую записать все существующие, на ваш взгляд, ошибки и предложить решение. Если же оно не найдено - чётко заявите об этом в самом начале.</p>
72 <p>Подумайте несколько раз, прежде чем выразить несогласие с коллегами. Внимательно слушайте, что говорят другие, обдумайте ситуацию. Не жалейте на это времени!</p>
72 <p>Подумайте несколько раз, прежде чем выразить несогласие с коллегами. Внимательно слушайте, что говорят другие, обдумайте ситуацию. Не жалейте на это времени!</p>
73 <p>Если вы следовали моим советам от начала до конца, то, скорее всего, хорошо понимаете задачу. Однако будьте готовы к тому, что всё же могли что-то упустить.</p>
73 <p>Если вы следовали моим советам от начала до конца, то, скорее всего, хорошо понимаете задачу. Однако будьте готовы к тому, что всё же могли что-то упустить.</p>
74 <p>Я предпочитаю начинать разговор с фразы: "Я не говорю, что не согласен с вами, я просто не до конца понимаю". Уже потом при необходимости может возникнуть дискуссия - и это совершенно нормально. Хуже будет, если вы станете спорить, даже не понимая предмета спора.</p>
74 <p>Я предпочитаю начинать разговор с фразы: "Я не говорю, что не согласен с вами, я просто не до конца понимаю". Уже потом при необходимости может возникнуть дискуссия - и это совершенно нормально. Хуже будет, если вы станете спорить, даже не понимая предмета спора.</p>
75 <p>Как проверить обоснованность ваших возражений? Убедитесь, что они отражают хотя бы один из перечисленных недочётов:</p>
75 <p>Как проверить обоснованность ваших возражений? Убедитесь, что они отражают хотя бы один из перечисленных недочётов:</p>
76 <ul><li>техническое решение основано на устаревшей информации;</li>
76 <ul><li>техническое решение основано на устаревшей информации;</li>
77 <li>техническое решение некорректно;</li>
77 <li>техническое решение некорректно;</li>
78 <li>задача или решение нелогичны;</li>
78 <li>задача или решение нелогичны;</li>
79 <li>техническое решение не полностью удовлетворяет поставленным требованиям.</li>
79 <li>техническое решение не полностью удовлетворяет поставленным требованиям.</li>
80 </ul><p>Рассмотрим подробнее каждый пункт. "Основываться на устаревшей информации" не означает что-то зазорное. На самом деле новые данные могли появиться уже после того, как было найдено решение проблемы. Или, например, никто не знал, что система, способная совершать необходимые для выполнения задачи действия, уже существует.</p>
80 </ul><p>Рассмотрим подробнее каждый пункт. "Основываться на устаревшей информации" не означает что-то зазорное. На самом деле новые данные могли появиться уже после того, как было найдено решение проблемы. Или, например, никто не знал, что система, способная совершать необходимые для выполнения задачи действия, уже существует.</p>
81 <p>Техническое решение можно считать некорректным, если оно сформировано исходя из недостоверной информации. Например, SEO-специалисты поставили перед вами задачу проиндексировать авторизованную страницу в разработанном приложении с помощью поискового бота Google. На самом деле у Google нет такой функции, следовательно, SEO-специалисты располагали некорректной информацией.</p>
81 <p>Техническое решение можно считать некорректным, если оно сформировано исходя из недостоверной информации. Например, SEO-специалисты поставили перед вами задачу проиндексировать авторизованную страницу в разработанном приложении с помощью поискового бота Google. На самом деле у Google нет такой функции, следовательно, SEO-специалисты располагали некорректной информацией.</p>
82 <p>Говоря о нелогичности задачи или решения, мы ставим под вопрос их целесообразность в принципе. Мой опыт разработчика показывает, что подобные требования чаще всего характеризуются формулой "создай одно в ущерб другому". Как правило, такие задачи нельзя назвать адекватными, так как они негативно сказываются на результате.</p>
82 <p>Говоря о нелогичности задачи или решения, мы ставим под вопрос их целесообразность в принципе. Мой опыт разработчика показывает, что подобные требования чаще всего характеризуются формулой "создай одно в ущерб другому". Как правило, такие задачи нельзя назвать адекватными, так как они негативно сказываются на результате.</p>
83 <p>Наконец, техническое решение может быть незаконченным специально. Начиная работу над проектом, разработчики ПО часто прибегают к созданию так называемого минимально жизнеспособного продукта (от англ. MVP - minimum viable product). Другими словами, на первоначальном этапе разработки они намеренно игнорируют второстепенную функциональность и делают упор на ключевую.</p>
83 <p>Наконец, техническое решение может быть незаконченным специально. Начиная работу над проектом, разработчики ПО часто прибегают к созданию так называемого минимально жизнеспособного продукта (от англ. MVP - minimum viable product). Другими словами, на первоначальном этапе разработки они намеренно игнорируют второстепенную функциональность и делают упор на ключевую.</p>
84 <p>Учитывая это, заявлять, что техническое решение не удовлетворяет требованиям, можно в двух случаях:</p>
84 <p>Учитывая это, заявлять, что техническое решение не удовлетворяет требованиям, можно в двух случаях:</p>
85 <ul><li>срок на выполнение задачи вышел, а результата нет;</li>
85 <ul><li>срок на выполнение задачи вышел, а результата нет;</li>
86 <li>предполагаемых действий недостаточно для создания работающего продукта или функции.</li>
86 <li>предполагаемых действий недостаточно для создания работающего продукта или функции.</li>
87 </ul><p>Помните: не стоит воспринимать буквально описанный мной метод. В первую очередь он призван помочь вам справиться с проблемой как можно быстрее. Возможно, будет достаточно набросать несколько записей в заметках телефона, а затем при необходимости обсудить с коллегами детали вашего задания. Вот и всё!</p>
87 </ul><p>Помните: не стоит воспринимать буквально описанный мной метод. В первую очередь он призван помочь вам справиться с проблемой как можно быстрее. Возможно, будет достаточно набросать несколько записей в заметках телефона, а затем при необходимости обсудить с коллегами детали вашего задания. Вот и всё!</p>
88 <p><strong>Шаг 1. Анализ</strong></p>
88 <p><strong>Шаг 1. Анализ</strong></p>
89 <ul><li>Классифицируйте задачу.</li>
89 <ul><li>Классифицируйте задачу.</li>
90 <li>Кратко сформулируйте задачу.</li>
90 <li>Кратко сформулируйте задачу.</li>
91 <li>Наметьте план действий.</li>
91 <li>Наметьте план действий.</li>
92 <li>Определите проблему.</li>
92 <li>Определите проблему.</li>
93 </ul><p><strong>Шаг 2. Конкретизация и оценка</strong></p>
93 </ul><p><strong>Шаг 2. Конкретизация и оценка</strong></p>
94 <ul><li>Уточните терминологию.</li>
94 <ul><li>Уточните терминологию.</li>
95 <li>Определите задачи.</li>
95 <li>Определите задачи.</li>
96 <li>Оцените решение проблемы.</li>
96 <li>Оцените решение проблемы.</li>
97 </ul><p><strong>Шаг 3. Критическое мышление</strong></p>
97 </ul><p><strong>Шаг 3. Критическое мышление</strong></p>
98 <ul><li>Не спешите возражать.</li>
98 <ul><li>Не спешите возражать.</li>
99 <li>Выражайте несогласие правильно.</li>
99 <li>Выражайте несогласие правильно.</li>
100 </ul><a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>
100 </ul><a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>