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>