<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Alisa Tolstova on Medium]]></title>
        <description><![CDATA[Stories by Alisa Tolstova on Medium]]></description>
        <link>https://medium.com/@alisa.tolstova?source=rss-323f6f4f9e94------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/0*KsEKI1Khcb3L3av2</url>
            <title>Stories by Alisa Tolstova on Medium</title>
            <link>https://medium.com/@alisa.tolstova?source=rss-323f6f4f9e94------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Tue, 19 May 2026 12:23:01 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@alisa.tolstova/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[25 прикольных вопросов для собеседования по машинному обучению]]></title>
            <link>https://medium.com/nuances-of-programming/25-%D0%BF%D1%80%D0%B8%D0%BA%D0%BE%D0%BB%D1%8C%D0%BD%D1%8B%D1%85-%D0%B2%D0%BE%D0%BF%D1%80%D0%BE%D1%81%D0%BE%D0%B2-%D0%B4%D0%BB%D1%8F-%D1%81%D0%BE%D0%B1%D0%B5%D1%81%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F-%D0%BF%D0%BE-%D0%BC%D0%B0%D1%88%D0%B8%D0%BD%D0%BD%D0%BE%D0%BC%D1%83-%D0%BE%D0%B1%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D1%8E-17c6087892f5?source=rss-323f6f4f9e94------2</link>
            <guid isPermaLink="false">https://medium.com/p/17c6087892f5</guid>
            <category><![CDATA[statistics]]></category>
            <category><![CDATA[artificial-intelligence]]></category>
            <category><![CDATA[data-science]]></category>
            <category><![CDATA[machine-learning]]></category>
            <category><![CDATA[careers]]></category>
            <dc:creator><![CDATA[Alisa Tolstova]]></dc:creator>
            <pubDate>Mon, 17 Sep 2018 06:01:01 GMT</pubDate>
            <atom:updated>2018-09-17T06:01:01.515Z</atom:updated>
            <content:encoded><![CDATA[<h4>Могут ли вопросы на собеседовании по машинному обучению быть одновременно прикольными и глубокими?</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/640/1*lAtTKV_I3EAnZcvCebS7vA.png" /></figure><p>Многие из исследователей данных изучают машинное обучение (МО) в основном с точки зрения практического специалиста. Как следствие, мы можем сосредотачиваться скорее на освоении как можно большего количества новых пакетов, фреймворков и методик, чем на глубоком рассмотрении основополагающих теоретических аспектов МО. Кроме того, в этом материале моё определение <em>машинного обучения</em> включает в себя обыкновенное статистическое обучение (т. е. не ограничивается <em>глубинным обучением</em>).</p><p>Однако пытливый, рассудительный и упорный ум может придумать множество чудесных вопросов по МО, разбор ответов на которые прекрасно способен обнаружить более глубокие его аспекты. В общем, такие вопросы могут помочь высунуть голову из кучи с картинки выше. Мы ведь не хотим целыми днями перемешивать данные — мы хотим нырнуть в глубины свойств, странностей и тонкостей методик машинного обучения и проникнуться ими…</p><p>В конце концов, в интернете хватает статей о «стандартных вопросах для собеседования по машинному обучению». Может, сделать кое-что другое, поинтереснее?</p><blockquote><strong><em>Сразу скажу:</em></strong> я публикую эти вопросы, просто чтобы вдохновить вас на размышления и разговоры. Готовых ответов не даётся. В некоторых вопросах есть подсказки, но они на самом деле больше для обсуждений, они не указывают на определённый ответ. Каждый вопрос заслуживает подробного обсуждения. Нет какого-то одного ответа. Некоторые вопросы заумные, а некоторые просто забавные. Приятного чтения :-) Вдобавок я вставил смешной мем после каждого 5-го вопроса…</blockquote><h4><strong>Прикольные вопросы</strong></h4><figure><img alt="" src="https://cdn-images-1.medium.com/proxy/1*74eaVhCnEhvRGb1TcS-dSA.png" /><figcaption>«P &gt; 0,05. Игра окончена, попробуйте ещё раз».</figcaption></figure><ul><li>Я построил линейную регрессионную модель, показывающую 95%-ный доверительный интервал. Означает ли это, что <em>существует 95%-ная вероятность, что коэффициенты моей модели верно оценивают функцию</em>, которую я хочу аппроксимировать? (<strong><em>Подсказка</em></strong>: на самом деле это означает 95% времени…)</li><li>В чём сходство между файловой системой Hadoop и алгоритмом k-ближайших соседей? (<strong><em>Подсказка</em></strong>: «лень»)</li><li>Какая структура мощнее в смысле выразительных возможностей (т. е. она может достоверно отобразить заданную булеву функцию) — <em>однослойный перцептрон</em> или <em>двухслойное дерево принятия решений</em>? (<strong><em>Подсказка</em></strong>: XOR)</li><li>А что мощнее — <em>двухслойное дерево принятия решений</em> или <em>двухслойная нейронная сеть без активационных функций</em>? (<strong><em>Подсказка</em></strong>: нелинейность?)</li><li>Может ли нейронная сеть служить инструментом для понижения размерности? Объясните как.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/proxy/1*bY3xlWrDEERiimX-BSLKKA.png" /><figcaption>«Виды головной боли: мигрень, перенапряжение, стресс, математические основы глубинного обучения».</figcaption></figure><ul><li>Все ругают и обесценивают понятие постоянного слагаемого в линейных регрессионных моделях. Назовите одно из его применений. (<strong><em>Подсказка</em></strong>: сборщик шума/мусора)</li><li>LASSO-регуляризация сводит коэффициенты точно к нулю. Гребневая регрессия сводит их к очень маленькому, но не нулевому значению. Можете ли вы объяснить разницу между ними интуитивно, по графикам двух простых функций: |x| и x²? (<strong><em>Подсказка</em></strong>: острые уголки на графике |x|)</li><li>Допустим, что вы ничего не знаете о распределении, откуда взят некий набор данных (непрерывнозначные числа), и вам запрещается предполагать, что это гауссово нормальное распределение. Приведите как можно более простое доказательство того, что, независимо от характера распределения, вы можете гарантировать, что ~89% данных лежат в пределах ±3 стандартных отклонений от среднего значения. (<strong><em>Подсказка</em></strong>: научный руководитель Маркова)</li><li>Большая часть алгоритмов машинного обучения так или иначе связана с операциями над матрицами, например перемножением или обращением. Дайте простое математическое доказательство, почему мини-пакетная версия такого алгоритма МО может быть более эффективна с точки зрения объёма расчётов, чем обучение на полном наборе данных. (<strong><em>Подсказка</em></strong>: временная сложность перемножения матриц…)</li><li>Не кажется ли вам, что временной ряд — это очень простая задача линейной регрессии с единственной переменной отклика и с единственным предиктором — временем? В чём проблема метода линейной регрессии (необязательно с единственным линейным членом, с многочленами тоже) в случае данных временного ряда? (<strong><em>Подсказка</em></strong>: прошлое указывает на будущее…)</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/proxy/1*pfmeGgGM5sxmLBQ5IQfQew.png" /><figcaption>«Что если я скажу тебе, что это — регрессия?»</figcaption></figure><ul><li>Приведите простое математическое доказательство того, что поиск оптимального дерева решений для задачи классификации среди всех возможных древовидных структур может быть экспоненциально сложной задачей. (<strong><em>Подсказка</em></strong>: а сколько вообще деревьев в джунглях?)</li><li>Как деревья решений, так и глубокие нейронные сети являются нелинейными классификаторами, т. е. они разбивают пространство посредством сложной границы решений. Почему в таком случае модель дерева решений настолько интуитивно понятнее глубокой нейронной сети?</li><li>Обратное распространение — рабочая лошадка глубинного обучения. Назовите несколько возможных альтернативных методик обучения нейронной сети без использования обратного распространения. (<strong><em>Подсказка</em></strong>: случайный поиск…)</li><li>Допустим, что у вас две задачи — на линейную регрессию и на логистическую регрессию (классификацию). Какую из них с большей вероятностью упростит открытие нового сверхскоростного алгоритма перемножения матриц? Почему? (<strong><em>Подсказка</em></strong>: какая из них с большей вероятностью использует операции над матрицами?)</li><li>Как корреляция между предикторами затрагивает <em>метод главных компонент</em>? Как с этим справиться?</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/proxy/1*tkIOCiQIJ9HiO5LWAjUTJg.png" /><figcaption>«Что делать с… корреляцией?»</figcaption></figure><ul><li>Вам поручили построить классификационную модель столкновения метеоритов с Землёй (важный проект для человеческой цивилизации). После предварительного анализа вы получаете 99%-ную достоверность. Вы можете быть довольны? Почему нет? Что с этим можно сделать? (<strong><em>Подсказка</em></strong>: редкое событие…)</li><li>Возможно ли определить корреляцию между непрерывной и дискретной переменной? Если да, то как?</li><li>Если вы работаете с данными по экспрессии генов, часто бывает так, что предикторных переменных миллионы, а замеров только несколько сотен. Приведите простое математическое доказательство, почему обычный метод наименьших квадратов — плохой выбор в такой ситуации, когда нужно построить регрессионную модель. (<strong><em>Подсказка</em></strong>: кое-что из матричной алгебры…)</li><li>Объясните, почему <em>k</em>-проходная перекрёстная проверка плохо работает с моделями временного ряда. Что можно сделать по этому поводу? (<strong><em>Подсказка</em></strong>: ближайшее прошлое прямо указывает на будущее…)</li><li>Простая выгрузка случайной выборки из обучающего набора данных в обучающую и проверочную выборку хорошо подходит для задачи регрессии. А что может пойти не так с этим подходом для задачи классификации? Что с этим можно сделать? (<strong><em>Подсказка</em></strong>: все ли классы преобладают в одной и той же степени?)</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/proxy/1*kPfNKypdxw3Y5aztpw1jJg.png" /><figcaption>«Случайная выборка не работает!»</figcaption></figure><ul><li>Что для вас важнее — достоверность модели или качество модели?</li><li>Если бы вы могли воспользоваться многоядерным процессором, вы бы предпочли алгоритм <em>бустинга над деревьями случайному лесу</em>? Почему? (<strong><em>Подсказка</em></strong>: если задачу можно делать 10 руками, стоит этим воспользоваться)</li><li>Представьте, что ваш набор данных наверняка линейно разделим и вам нужно гарантировать сходимость и наибольшее число итераций/шагов в вашем алгоритме (из-за вычислительных ресурсов). Выбрали ли бы вы в таком случае <em>градиентный спуск</em>? Что можно выбрать? (<strong><em>Подсказка</em></strong>: какой простой алгоритм с гарантией обеспечивает нахождение решения?)</li><li>Пусть у вас крайне мало памяти/места для хранения данных. Какой алгоритм вы предпочтёте — <em>логистическую регрессию</em> или <em>k-ближайших соседей</em>? Почему? (<strong><em>Подсказка</em></strong>: пространственная сложность…)</li><li>Вы строите модель машинного обучения, и изначально у вас было 100 точек данных и 5 признаков. Чтобы уменьшить смещение, вы удвоили количество признаков (включили 5 новых переменных) и собрали ещё 100 точек данных. Объясните: правильный ли это подход? (<strong><em>Подсказка</em></strong>: на машинное обучение наложено проклятье. Слышали о нём?)</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/proxy/1*9ZAqGs2Y_cHdrkclGpVaMg.png" /><figcaption>«Меня прокляли размерностью!»</figcaption></figure><p><em>Перевод статьи </em><a href="https://medium.com/@tirthajyoti?source=post_header_lockup"><em>Tirthajyoti Sarkar</em></a><em> “</em><a href="https://medium.com/analytics-vidhya/25-fun-questions-for-a-machine-learning-interview-373b744a4faa"><em>25 fun questions for a machine learning interview</em></a><em>”</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=17c6087892f5" width="1" height="1" alt=""><hr><p><a href="https://medium.com/nuances-of-programming/25-%D0%BF%D1%80%D0%B8%D0%BA%D0%BE%D0%BB%D1%8C%D0%BD%D1%8B%D1%85-%D0%B2%D0%BE%D0%BF%D1%80%D0%BE%D1%81%D0%BE%D0%B2-%D0%B4%D0%BB%D1%8F-%D1%81%D0%BE%D0%B1%D0%B5%D1%81%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F-%D0%BF%D0%BE-%D0%BC%D0%B0%D1%88%D0%B8%D0%BD%D0%BD%D0%BE%D0%BC%D1%83-%D0%BE%D0%B1%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D1%8E-17c6087892f5">25 прикольных вопросов для собеседования по машинному обучению</a> was originally published in <a href="https://medium.com/nuances-of-programming">NOP::Nuances of Programming</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Вам не нужен стендап]]></title>
            <link>https://medium.com/nuances-of-programming/%D0%B2%D0%B0%D0%BC-%D0%BD%D0%B5-%D0%BD%D1%83%D0%B6%D0%B5%D0%BD-%D1%81%D1%82%D0%B5%D0%BD%D0%B4%D0%B0%D0%BF-f60f54575708?source=rss-323f6f4f9e94------2</link>
            <guid isPermaLink="false">https://medium.com/p/f60f54575708</guid>
            <category><![CDATA[agile]]></category>
            <dc:creator><![CDATA[Alisa Tolstova]]></dc:creator>
            <pubDate>Sat, 15 Sep 2018 06:16:01 GMT</pubDate>
            <atom:updated>2018-09-15T06:16:01.620Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/759/0*5VXfkikx6r56biC7.png" /></figure><p>Ведущий инженер Spotify рассказывает о том, как отказался от летучек и ретроспектив и как это повлияло на работу его команды.</p><p><em>Примечание: ниже представлены мои ЛИЧНЫЕ убеждения насчёт Agile и командной организации. У вас всё может быть иначе.</em></p><p>Недавно я стал техническим менеджером продукта в своей компании, и это мой первый опыт руководства командой инженеров. Вплоть до января я был разработчиком, недовольным обилием совещаний.</p><p>Так что последние полгода я проводил эксперимент, состоящий из нескольких новых правил:</p><ol><li>Нет летучкам (стендапам)</li><li>Нет регулярному планированию</li><li>Нет ретроспективам</li><li>Все совещания добровольны</li></ol><p>Может показаться, что это чересчур. Но в этом безумии есть некоторая логика.</p><p>Я хотел, чтобы команда знала, что я ей доверяю. Знала, что справляться с техническим долгом, изучать новое и работать в собственном ритме — нормально. Я сформулировал задачи на квартал и положился на то, что работа будет сделана. А потом свалил в туман.</p><p>И вы таки не поверите — работа была сделана. Много работы.</p><p>Мы были чрезвычайно производительной командой, которая отвечала на изменения и великолепно справлялась с каждой поставленной задачей.</p><p>Но прежде чем подробно рассмотреть, почему эксперимент сработал, давайте взглянем на то, как действует обычная Agile-команда.</p><h4><strong>Обычная Agile-команда</strong></h4><p>Создадим вымышленную команду под названием «Суперзвёзды Agile».</p><p>«Суперзвёзды Agile» работают недельными спринтами.</p><p>Так, каждый понедельник они проводят час, планируя работу на неделю. Каждый день в 10 утра они встречаются на летучке, где каждый участник команды рассказывает, что сделал вчера, что будет делать сегодня, есть ли у него заблокированные задачи, и выступает с объявлениями. В конце недели они отводят час на ретроспективу, где обсуждают, что прошло хорошо, что прошло плохо, и создают задачи, чтобы решить найденные проблемы.</p><p>Звучит довольно логично, так?</p><p>Как этот рай производительности может разрушиться? Сейчас увидите.</p><ol><li>Trello (или что вы там используете) должна быть синхронизирована с тем, что обсуждается на совещаниях. Часто это не удаётся. С ростом команды становится ещё сложнее.</li><li>Летучки ПООЩРЯЮТ ежедневную смену планов. Непоследовательность — отличный способ сломать разработчику состояние потока.</li><li>Летучки заставляют каждого участника команды быть производительным в установленном месте и в установленное время.</li><li>Экстраверты прекрасно чувствуют себя на летучках, планёрках и ретроспективах. Неудивительно, что технический долг — такая распространённая проблема. Разработчики не должны быть вынуждены РВАТЬСЯ погасить технический долг. Команды должны работать в устойчивом темпе.</li><li>Зачем поощрять обсуждение проблем раз в неделю? Нужно решать их незамедлительно, а не только на ретроспективах.</li><li>Спринты поощряют итеративную разработку. Это очень привлекательно для таких людей, как я, — приверженцев маленьких, сжатых запросов на включение кода, а не долгоживущих ветвей функциональности. Но это не одно и то же. Спринты поощряют приоритет функционала над техническим долгом. Часто ли вам приходилось уговаривать команду отвести целый спринт на погашение технического долга?</li></ol><p>Что будет, если не планировать каждую неделю, не делать ретроспектив и не проводить летучек?</p><h4><strong>Прекратите проводить летучки</strong></h4><p>Летучки раздражали меня всегда. Эффект от них обычно такой: разработчики отвлекаются, чувствуют, будто их заставляют заниматься функционалом в ущерб техническому долгу, и к тому же они легко могут длиться дольше получаса.</p><p>Побочные эффекты отказа от летучек таковы:</p><ol><li>Разработчики больше общаются</li><li>Команда лучше приспособлена к удалённой работе</li><li>Погашается технический долг</li><li>Разработчики чувствуют себя более уверенно и меньше напрягаются</li><li>Разработчики знают, что вы доверяете им и поддерживаете их</li></ol><p>Моя должность в Spotify — технический менеджер продукта. Моя роль — «стоять у руля» (например, решать, над чем мы работаем). Если я каждый день меняю курс, у меня проблемы. Если вся организация каждый день меняет курс, исправить это — моя работа.</p><p>Реальность такова: я сказал своему руководству, что мы можем выполнить до конца квартала, и я предпочитаю верить, что моя команда знает, что для этого требуется, и подойдёт к задаче творчески.</p><p>Я хочу дать им как можно больше свободы.</p><p>Хочется на денёк отложить работу и посвятить его open source? Жги.</p><p>Хочется пару дней позаниматься чем-то совершенно другим? Развлекайся.</p><p>Думаешь, наш технический долг вышел из-под контроля, и хочешь это исправить? Давай дружить.</p><p>Я знаю, что ты приведёшь нас к цели, и кто я такой, чтобы повторять тебе каждый день: «ну, у нас в журнале пожеланий к продукту самые приоритетные — X, Y, Z»?</p><p>Нафиг этот шум.</p><h4><strong>Прекратите планировать каждый спринт</strong></h4><p>Регулярное планирование меня тоже всегда раздражало. Довольно редко, по моему опыту, обстановка меняется настолько радикально, чтобы всей команде понадобилось вместе разбираться, что делать. Но если уж случилась чрезвычайная ситуация, конечно же, созывайте совещание и обсуждайте на здоровье. При этом я не против планирования, я против планирования по расписанию.</p><p>Вот как всё выглядит, когда мы не планируем каждую неделю или две:</p><ol><li>Разработчикам доверяют, что они будут заниматься тем, чем надо</li><li>Разработчиков гораздо реже прерывают, поэтому они заканчивают начатое</li><li>Журнал пожеланий к продукту используется как очередь задач в порядке приоритета</li><li>Задачи добавляются в журнал по мере необходимости, непрерывно</li><li>Проблемы обсуждаются сразу же</li><li>Планирование происходит, когда меняются планы. Усталость от совещаний снижается, и команда понимает, что это крайняя мера и обсуждаются важные вещи</li></ol><h4><strong>Прекратите проводить ретроспективы</strong></h4><p>Представьте, что у вас роман и всё идёт великолепно. Вам непременно надо начать ходить на еженедельную семейную терапию, так?</p><p>Нет, конечно. Так нахрена нам ретроспективы каждую неделю или месяц?</p><p>Кроме того, зачем нам ждать ретроспективы, чтобы обсудить проблему или похвалить кого-то?</p><p>Вот как всё выглядит, если отказаться от ретроспектив:</p><ol><li>Разработчиков не прерывают, так что они фигачат</li><li>Проблемы решаются быстрее</li><li>Стикеры и маркеры не пропадают, и вместо них мы покупаем себе обед</li></ol><h4><strong>Вот некоторые вопросы, которые, я знаю, вам хочется задать</strong></h4><p>«Как я пойму, над чем работать?»</p><p>Хорошо: выберите пункт из журнала пожеланий к продукту.</p><p>Лучше: журнал отсортирован по приоритету, и вы выбираете из него самую приоритетную задачу.</p><p>Отлично: вы работаете над техническим долгом или над open source, чтобы дать себе отдохнуть.</p><p>«Что делать, если задача заблокирована?»</p><p>Хорошо: выберите другую задачу из журнала.</p><p>Лучше: создайте в Trello колонку «Заблокировано», переместите туда задачу, потом выберите другой пункт из журнала.</p><p>Отлично: переместите задачу в колонку «Заблокировано», выберите другой пункт из журнала и скиньте команде сообщение в Slack, чтобы они знали о блоке.</p><p>«Как отслеживать прогресс?»</p><p>Хорошо: просто спросите у вашей команды, только не спрашивайте каждый день.</p><p>Лучше: обновляйте и актуализируйте журнал пожеланий к продукту. В Trello, блин, загляните.</p><p>Отлично: больше общайтесь с командой, если поставлена высокоприоритетная задача. В остальном доверяйте команде, пока она не обманет вашего доверия и не завалит задачу. Иногда непринуждённо справляйтесь, как дела, за обедом или кружкой пива.</p><p>«Погодите. У нас всё хорошо с техническим долгом, а летучки мы проводим!»</p><p>Шикарно!</p><p>Видимо, у вас разговорчивые разработчики, рвущиеся гасить технический долг, и руководство, которому глубоко небезразлично качество разработки.</p><p>Но реальность такова, что большинство компаний устроены не так, и даже ваша компания, скорее всего, не очень-то хорошо подходит интровертам.</p><h4><strong>Вывод</strong></h4><p>Эффективные команды всё ставят под вопрос. Ещё они доверяют друг другу. И ещё они много и результативно фигачат.</p><p>Эта статья — попытка поставить под вопрос обычное поведение Agile-команд. Ежедневные летучки, планирование раз в неделю или две и ретроспективы раз в неделю или две. И это мы ещё не обсудили оценку задач.</p><p>Мой совет всем командам: не усложняйте всё с самого начала.</p><p>Летучки, планирование и ретроспективы — инструмент, а к выбору инструментов надо подходить с умом.</p><p><em>Перевод статьи </em><a href="https://medium.com/@jsonpify?source=post_header_lockup"><em>palmerj3</em></a><em>: “</em><a href="https://medium.com/@jsonpify/you-dont-need-standup-9a74782517c1"><em>You don’t need standup</em></a><em>”</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=f60f54575708" width="1" height="1" alt=""><hr><p><a href="https://medium.com/nuances-of-programming/%D0%B2%D0%B0%D0%BC-%D0%BD%D0%B5-%D0%BD%D1%83%D0%B6%D0%B5%D0%BD-%D1%81%D1%82%D0%B5%D0%BD%D0%B4%D0%B0%D0%BF-f60f54575708">Вам не нужен стендап</a> was originally published in <a href="https://medium.com/nuances-of-programming">NOP::Nuances of Programming</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Бережливое тестирование, или Почему модульные тесты хуже, чем вы думаете]]></title>
            <link>https://medium.com/nuances-of-programming/%D0%B1%D0%B5%D1%80%D0%B5%D0%B6%D0%BB%D0%B8%D0%B2%D0%BE%D0%B5-%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%B8%D0%BB%D0%B8-%D0%BF%D0%BE%D1%87%D0%B5%D0%BC%D1%83-%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5-%D1%82%D0%B5%D1%81%D1%82%D1%8B-%D1%85%D1%83%D0%B6%D0%B5-%D1%87%D0%B5%D0%BC-%D0%B2%D1%8B-%D0%B4%D1%83%D0%BC%D0%B0%D0%B5%D1%82%D0%B5-24670e16ab0?source=rss-323f6f4f9e94------2</link>
            <guid isPermaLink="false">https://medium.com/p/24670e16ab0</guid>
            <category><![CDATA[tdd]]></category>
            <category><![CDATA[software-testing]]></category>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[unit-testing]]></category>
            <category><![CDATA[lean-startup]]></category>
            <dc:creator><![CDATA[Alisa Tolstova]]></dc:creator>
            <pubDate>Tue, 11 Sep 2018 06:01:01 GMT</pubDate>
            <atom:updated>2018-09-11T06:01:01.843Z</atom:updated>
            <content:encoded><![CDATA[<p>Тестирование — противоречивая тема. Люди крепко держатся за свои убеждения относительно подходов к тестированию. Разработка через тестирование — самый яркий пример. Нехватка чётких эмпирических данных провоцирует людей на громкие заявления. Я выступаю за <strong>экономический взгляд </strong>на тестирование. Далее, я утверждаю, что чрезмерная сосредоточенность на модульных тестах — не самый экономичный подход. Такую философию я буду называть <strong>бережливым тестированием</strong>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/proxy/1*8c333d_YNEHG4q3UDb1wTA.jpeg" /><figcaption>Фото: <a href="https://unsplash.com/photos/5fNmWej4tAA?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Helloquence</a>. Источник: <a href="https://unsplash.com/?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a>.</figcaption></figure><p>Мой главный аргумент в следующем. Разные виды тестов имеют разную стоимость и разные преимущества. Ресурсы, которые можно вложить в тестирование, конечны. Вам нужно получить от проведённых тестов как можно больше выгоды — так используйте наиболее экономичный подход. Для многих областей, например для графических интерфейсов, отдача от других видов тестов больше, чем от модульных.</p><h3><strong>Уверенность и тесты</strong></h3><p>В статье “<a href="https://blog.kentcdodds.com/write-tests-not-too-many-mostly-integration-5e8c7fff591c">Write tests. Not too many. Mostly integration</a>” («Пишите тесты. Не очень много. В основном интеграционные») и сопутствующем видео Кента С. Доддса хорошо выражены идеи бережливого тестирования. Он приводит три измерения, по которым можно оценить тест:</p><ul><li><strong>Стоимость</strong> (дешёвый или дорогой)</li><li><strong>Скорость</strong> (быстрый или медленный)</li><li><strong>Уверенность</strong> (низкая или высокая, то есть «не работает щелчок мышью» или «не работает оформление заказа»)</li></ul><p>А это — «кубок тестирования», показывающий, как Доддс предлагает распределить отведённые на тестирование ресурсы.</p><figure><img alt="" src="https://cdn-images-1.medium.com/proxy/0*n6D7eQ_mtcidG1zR" /></figure><p>В отличие от «<a href="https://martinfowler.com/bliki/TestPyramid.html">пирамиды тестирования</a>» Фаулера, добавлено новое измерение — уверенность. Другое различие в том, что модульные тесты не занимают наибольшую площадь.</p><p>Одно из главных прозрений Доддса — в том, что важно всерьёз задуматься об <strong>уверенности</strong>, которую обеспечивает тот или иной тест.</p><h3>Kent C. Dodds on Twitter</h3><p>The more your tests resemble the way your software is used, the more confidence they can give you.</p><h3><strong>Окупаемость инвестиций в тестирование</strong></h3><p><a href="https://ru.wikipedia.org/wiki/Окупаемость_инвестиций">Окупаемость инвестиций</a> в сквозной тест выше, чем в модульный. Ведь сквозной тест покрывает <strong><em>гораздо</em> большую площадь кодовой базы</strong>. Даже с учётом более высокой стоимости, он обеспечивает несоизмеримо больше уверенности.</p><figure><img alt="" src="https://cdn-images-1.medium.com/proxy/1*Un2-R5aTT1ElndEcsaOT5g.jpeg" /></figure><p>К тому же сквозное тестирование проверяет <strong>критические пути</strong>, по которым следуют ваши реальные пользователи. Модульные же тесты могут проверять исключительные случаи, которые на практике происходят очень редко или никогда. Возможно, отдельные части приложения работают, но <strong>приложение в целом — нет.</strong> Вышеприведённые аргументы можно найти в статье Мартина Сустрика “<a href="http://250bpm.com/blog:40">Unit Test Fetish</a>” («Культ модульных тестов»).</p><p>Далее Кент С. Доддс утверждает, что <strong>интеграционные тесты обеспечивают наилучшее равновесие между стоимостью, скоростью и уверенностью</strong>. Я подписываюсь под этим утверждением. У нас, к сожалению, нет эмпирических данных, показывающих, что оно достоверно. Тем не менее, мои рассуждения таковы:</p><blockquote>Сквозные тесты обеспечивают наибольшую уверенность. Если бы их не было так дорого писать и так долго проводить, мы бы использовали намного больше сквозных тестов. Впрочем, хорошие инструменты, такие как <a href="https://www.cypress.io/">Cypress</a>, уравновешивают эти недостатки. Модульные тесты дешевле писать и быстрее проводить, но они проверяют лишь малую часть и, возможно, не самую важную. Интеграционные тесты лежат где-то посередине между модульными и сквозными, так что они обеспечивают наибольшее равновесие. Такие образом, они обладают наивысшей окупаемостью инвестиций.</blockquote><h3><strong>Отступление: терминология</strong></h3><p>Выражение «интеграционный тест» и тем более «сквозной тест», кажется, вызывает у некоторых людей острый ужас. Считается, что такие тесты хрупки, сложны в подготовке и медленны в использовании. <strong>Тут главное — просто использовать поменьше заглушек.</strong></p><p>В контексте React в статье Кента С. Доддса под интеграционными тестами понимается отказ от использования неглубокой отрисовки. Интеграционный тест покрывает много компонентов сразу. Такой тест легче написать, и он более стабилен, потому что не требует такого количества заглушек, и менее вероятно, что вам придётся тестировать особенности внедрения.</p><p>В мире бэкенда интеграционный тест запускался бы на реальной базе данных и выполнял бы реальные HTTP-запросы (к контрольным конечным точкам). Несложно ведь заранее набросать Docker-контейнер с базой данных и настроить его на сброс состояния после каждого теста. Опять же, такие тесты можно быстро проводить, легко писать, они надёжны и устойчивы к изменениям кода.</p><h3><strong>Покрытие кода</strong></h3><p>Другой момент: <strong>покрытию кода свойственна убывающая выгода</strong>. На практике большинство с этим согласно, так как во многих проектах устанавливается нижний порог покрытия в 80%. Даже есть исследования, которые подтверждают это, например “<a href="https://www.microsoft.com/en-us/research/blog/exploding-software-engineering-myths/">Exploding Software-Engineering Myths</a>” («Подрываем мифы о разработке ПО»). Далее приведены общие рассуждения.</p><p>Даже со 100-процентным покрытием кода вы доверяете зависимым объектам. Для них, по идее, покрытие кода может быть и нулевым.</p><p>Для многих продуктов считается приемлемым, когда <strong>типовые случаи работают, а необычные — нет</strong> (“<a href="http://250bpm.com/blog:40">Unit Test Fetish</a>”). Если из-за низкого покрытия кода пропустить баг, актуальный в исключительных случаях и затрагивающий 0,1% ваших пользователей, вы, наверное, не умрёте. А вот если у вас увеличится время вывода на рынок из-за высоких требований к покрытию кода, это может быть смертельно. И ещё: «то, что вы запустили функцию или запустили строку, не значит, что она будет работать для разрешённого диапазона ввода» (<a href="https://news.ycombinator.com/item?id=14297289">источник</a>).</p><h3><strong>Качество кода и модульные тесты</strong></h3><p>Есть такое утверждение, что код, пригодный для модульного тестирования, становится более качественным. Существует множество аргументов и кое-какие эмпирические свидетельства в пользу этого утверждения, так что я освещу другую сторону.</p><figure><img alt="" src="https://cdn-images-1.medium.com/proxy/1*Di1sqwDLD0c68q-SODXUKg.jpeg" /><figcaption>Фото: <a href="https://unsplash.com/photos/A74_Kz2zn3w?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">zhu xihua</a>. Источник: <a href="https://unsplash.com/search/photos/fossil?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a>.</figcaption></figure><p>В статье “<a href="http://250bpm.com/blog:40">Unit Test Fetish</a>” говорится, что модульные тесты — <strong>противоархитектурное</strong> приспособление. Именно благодаря архитектуре ПО поддаётся изменению. <strong>Модульные тесты делают внутреннюю структуру кода косной.</strong> Вот пример:</p><blockquote>Представьте, что у вас три компонента, A, B и C. Вы написали исчерпывающий набор модульных тестов для их проверки. Позже вы решаете преобразовать архитектуру так, чтобы функциональность B распределилась между A и C. Теперь у вас два новых компонента с разными интерфейсами. Все ваши модульные тесты внезапно утратили смысл. Часть тестового кода, возможно, получится использовать, но набор тестов в целом придётся переписывать.</blockquote><p>Это значит, что <strong>модульные тесты увеличивают затраты на обслуживание</strong>, так как они менее устойчивы к изменениям в коде. Появляется сцепление между модулями и их тестами! Тесты — тоже модули системы. Об этом подробнее в статье “<a href="https://rbcs-us.com/documents/Why-Most-Unit-Testing-is-Waste.pdf">Why Most Unit Testing is Waste</a>” («Почему большая часть модульных тестов — деньги на ветер»).</p><p>Есть и психологические аргументы. Например, если для вас ценна пригодность к модульному тестированию, вы предпочтёте проект программы, который проще тестировать, проекту, который поддаётся тестированию хуже, но в остальном лучше первого, так как знаете, что потратите гораздо больше времени на написание тестов. Дальнейшие рассуждения можно найти в статье “<a href="http://iansommerville.com/systems-software-and-technology/giving-up-on-test-first-development/">Giving Up on Test-First Development</a>” («Ставим крест на разработке через тестирование»).</p><p>Статья “<a href="http://david.heinemeierhansson.com/2014/test-induced-design-damage.html">Test-induced Design Damage</a>” («Как тестирование вредит проектированию») Дэвида Хайнмейера Ханссона утверждает, что ради соответствия задачам модульного тестирования код ухудшают больше ни для чего <strong>не нужной косвенной адресацией</strong>. Вопрос в том, всегда ли предпочтительны лишняя косвенная адресация и расцепленный код. Разве они ничего не стоят? Пусть вы расцепили два компонента, которые всегда используются совместно. Стоило ли их расцеплять? Можно утверждать, что косвенная адресация всегда уместна, но невозможно, по крайней мере, отрицать, что становится <strong>сложнее ориентироваться</strong> внутри кодовой базы и во время прогона.</p><h3><strong>Вывод</strong></h3><p>Философия бережливого тестирования принимает экономическую точку зрения и пересматривает окупаемость инвестиций в модульные тесты. Задумайтесь о том, какую уверенность обеспечивает тот или иной тест. Интеграционные тесты обеспечивают наибольшее равновесие между стоимостью, скоростью и уверенностью. Будьте осторожны с покрытием кода, так как слишком высокие запросы к нему, скорее всего, контрпродуктивны. Относитесь скептически к улучшению качества кода, благодаря его пригодности к модульному тестированию.</p><p>Уточню, что я <strong>не</strong> выступаю за то, чтобы никогда не писать модульные тесты. Я надеюсь, что представил свежий взгляд на тестирование. В будущем я планирую написать статью, где расскажу, как конкретно можно внедрить хороший интеграционный тест и для фронтенда, и для бэкенда.</p><p>Если вам хочется чётких инструкций, пусть и без подробностей, вот что вам надо делать. Используйте типизированный язык. Сосредоточьтесь на интеграционных и сквозных тестах. Используйте модульные тесты, только когда в них есть смысл (например, чисто алгоритмический код со сложными исключительными случаями). <strong>Будьте экономны. Будьте бережливы.</strong></p><h4><strong>Примечания</strong></h4><p>Одна из проблем обсуждения затрат и преимуществ модульного тестирования в том, что граница между модульными и интеграционными тестами размыта. Терминология не вполне однозначна, поэтому получается, что люди говорят о разных вещах.</p><p>Нужно подчеркнуть: низкое покрытие кода не подразумевает, что багов будет меньше. Как сказал покойный Дейкстра (1969):</p><blockquote>Тестирование обнаруживает присутствие, а не отсутствие багов.</blockquote><p>Есть исследования, где обнаружилось, что разработка через тестирование (TDD) не улучшает показатели сцепленности и связности. TDD и модульные тесты — не одно и то же, но в контексте данной статьи это всё же интересно: “<a href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.304.1723&amp;rep=rep1&amp;type=pdf">Does Test-Driven Development Really Improve Software Design Quality?</a>” («Действительно ли разработка через тестирование повышает качество проектирования ПО?»). В другой статье, “<a href="https://blog.ndepend.com/unit-testing-affect-codebases/">Unit Testing Doesn’t Affect Codebases the Way You Would Think</a>” («Модульное тестирование влияет на кодовые базы не так, как вы думаете»), анализируются кодовые базы и обнаруживается, что код с б<strong>о</strong>льшим количеством модульных тестов имеет б<strong>о</strong>льшую цикломатическую сложность для каждого метода, больше строк кода на метод и такую же глубину вложенности.</p><p>Данная статья была сосредоточена на том, на какие виды тестов следует распределить бюджет, отведённый под автоматизированное тестирование. Но давайте сделаем шаг назад и задумаемся, не следует ли вовсе уменьшить этот бюджет? Тогда у нас будет больше времени, чтобы думать о своих проблемах, находить лучшие решения и экспериментировать. Это особенно важно для графических интерфейсов, так как там часто нет «правильного поведения», зато есть «хорошее» поведение. Парадокс, но снижение бюджета на автоматизированное тестирование может улучшить продукт. Больше об этом: “<a href="https://www.youtube.com/watch?v=f84n5oFoZBc">Hammock Driven Development</a>” («Разработка через гамак»).</p><p>Есть разница между библиотеками и кодом приложений. У первых другие требования и ограничения, где 100-процентное покрытие кода модульными тестами, возможно, имеет смысл. Есть разница между кодом бэкенда и фронтенда. Есть разница между кодом ядерного реактора и игрой. Каждый проект — особенный. Ограничения и риски в каждом случае свои. Следовательно, чтобы быть бережливыми, вы должны приспособить свой подход к тестированию под тот проект, над которым работаете.</p><p><em>Перевод статьи </em><a href="https://blog.usejournal.com/@eugenkiss?source=post_header_lockup"><em>Eugen Kiss</em></a><em>: “</em><a href="https://blog.usejournal.com/lean-testing-or-why-unit-tests-are-worse-than-you-think-b6500139a009"><em>Lean Testing or Why Unit Tests are Worse than You Think</em></a><em>”</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=24670e16ab0" width="1" height="1" alt=""><hr><p><a href="https://medium.com/nuances-of-programming/%D0%B1%D0%B5%D1%80%D0%B5%D0%B6%D0%BB%D0%B8%D0%B2%D0%BE%D0%B5-%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%B8%D0%BB%D0%B8-%D0%BF%D0%BE%D1%87%D0%B5%D0%BC%D1%83-%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5-%D1%82%D0%B5%D1%81%D1%82%D1%8B-%D1%85%D1%83%D0%B6%D0%B5-%D1%87%D0%B5%D0%BC-%D0%B2%D1%8B-%D0%B4%D1%83%D0%BC%D0%B0%D0%B5%D1%82%D0%B5-24670e16ab0">Бережливое тестирование, или Почему модульные тесты хуже, чем вы думаете</a> was originally published in <a href="https://medium.com/nuances-of-programming">NOP::Nuances of Programming</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Вы не понимаете своих программистов]]></title>
            <link>https://medium.com/nuances-of-programming/%D0%B2%D1%8B-%D0%BD%D0%B5-%D0%BF%D0%BE%D0%BD%D0%B8%D0%BC%D0%B0%D0%B5%D1%82%D0%B5-%D1%81%D0%B2%D0%BE%D0%B8%D1%85-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%81%D1%82%D0%BE%D0%B2-5924aaf01ce2?source=rss-323f6f4f9e94------2</link>
            <guid isPermaLink="false">https://medium.com/p/5924aaf01ce2</guid>
            <category><![CDATA[productivity]]></category>
            <category><![CDATA[technology]]></category>
            <category><![CDATA[startup]]></category>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[business]]></category>
            <dc:creator><![CDATA[Alisa Tolstova]]></dc:creator>
            <pubDate>Fri, 07 Sep 2018 04:31:01 GMT</pubDate>
            <atom:updated>2018-09-07T04:31:01.762Z</atom:updated>
            <content:encoded><![CDATA[<h4>Открытое письмо не-технарям в технических компаниях</h4><p>Почему разработчики ПО не могут сосредоточиться на работе, и как можно помочь им?</p><figure><img alt="" src="https://cdn-images-1.medium.com/proxy/1*csqpgoE3UUyh-aUsqycOfw.jpeg" /><figcaption>Фото: Jefferson Santos, источник: Unsplash</figcaption></figure><p>Может показаться, что мы заняты только этим:</p><figure><img alt="" src="https://cdn-images-1.medium.com/proxy/1*7yU40SlU2kd1YtOvaBFTCw.gif" /></figure><p>Но на самом деле всё несколько сложнее.</p><p>Обычно разработчики — целеустремлённые люди, многие из них сами научились писать код в свободное время, а затем это превратилось в их работу. Подавляющее большинство (81%) также программирует в нерабочее время в качестве хобби.</p><p>Я помню, как сидел до утра и что-то писал, просто потому что чувствовал: это нужно сделать здесь и сейчас, пусть даже я голоден, устал или забросил важные дела. Не было ничего важнее, чем довести текущую задачу до завершения.</p><p>Один раз, в компании, где я когда-то работал, я перешёл в другую команду.</p><p>Мои ожидания были высоки, ведь у всех вокруг стаж был гораздо больше моего, так что я рассчитывал узнать много нового.</p><p>Однажды утром, после летучки со Scrum-мастером, где она говорила нам о том, как важны наши текущие задачи и как мало у нас времени, один из моих коллег садится и начинает кодить.</p><p>Минут через 10 он кодить перестаёт, открывает YouTube и целый час смотрит видео о том, как точить стамеску.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FG-rEQYMjyHI%3Ffeature%3Doembed&amp;url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DG-rEQYMjyHI&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FG-rEQYMjyHI%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/b19585d7448ab3ec244cd9d5f418392b/href">https://medium.com/media/b19585d7448ab3ec244cd9d5f418392b/href</a></iframe><p>Да-да, часовое видео о заточке стамески!</p><p>Пока он смотрел этот ролик, его внимания требовали другие сотрудники и случайный «офисный шум». За 60 минут видео его отвлекали раз пять, так что смотрел он его часа два. Вскоре после этого он ушёл на обед.</p><p>Если бы он всё это время писал код, его бы прерывали точно так же, но на переключение с творческой задачи и обратно тратится гигантское количество энергии, и чтобы сэкономить эту драгоценную энергию, его мозг подсознательно решает вместо программирования посмотреть видео на YouTube, потому что это проще.</p><h4><strong>Истинная цена отвлекающего фактора</strong></h4><p>Прежде чем продолжить, я хочу написать кое-что о скрытой цене отвлекающих факторов. Если что-то требует пяти минут вашего внимания, оно отнимает у вашей истинной цели вовсе не пять минут.</p><p>Если переключать внимание между контекстами (сложными задачами разработки и тем, на что вы отвлекаетесь), можно потерять полдня, чтобы вернуться в точку, на которой вас прервали. Писать код сложно, на поддержание сложных мыслей уходит много драгоценной энергии.</p><figure><img alt="" src="https://cdn-images-1.medium.com/proxy/1*NEI0IA1cLZsJrL_6wf7ALw.jpeg" /></figure><p>Если в вашей рабочей среде процветают отвлекающие факторы (то, что обычно называют open space), то подавляющее большинство ваших инженеров будут перенапряжены до изнеможения и выполнять процентов 10 от той работы, которую они действительно могли бы выполнить.</p><p>Возвращаемся к нашему герою со стамеской: он знает, что не сможет сосредоточиться на задаче больше, чем на 20 минут, прежде чем его прервут, так что он за неё даже не берётся. Вместо этого он занимается тем, что требует минимальной концентрации, он отвлекает себя сам, чтобы избежать энергозатратного переключения контекстов.</p><p>Значит, через 20 минут после начала рабочего дня его мозг уже истощён. Энергия — драгоценный ресурс для творческой работы, без неё ничего не будет сделано.</p><h4><strong>Но вот что странно</strong></h4><p>Мне стало любопытно, так что я поспрашивал его. Оказалось, что в свободное от работы время он идёт работать над собственными проектами и очень ими увлечён.</p><p>То есть днём, когда ему платят за программирование, он смотрит видео на YouTube о том, что никому особенно не интересно, растрачивает часы своей жизни, которые никогда себе не вернёт, и растрачивает деньги работодателя.</p><p>А когда день окончен и он возвращается домой, он приступает собственно к программированию и работает продуктивно, в среде, которую контролирует сам, не отвлекаясь по лишним поводам.</p><h4><strong>Совпадение?</strong></h4><p>Не думаю. Сейчас рабочее место — худшее место для, собственно, работы!</p><p>После работы в среде, не позволяющей надолго сосредоточиться, мозг привыкает к рассеянности, она влияет на познавательные и творческие способности, из-за этого вы работаете хуже, и это дорого обходится вашим работодателям.</p><p>А именно, согласно The Telegraph:</p><blockquote>Отвлекающие факторы в офисе стоят работодателям до 3 часов времени ежедневно, а это 60 часов в месяц.</blockquote><p>Это исследование не было нацелено конкретно на разработчиков ПО, так что я полагаю, что данные для разработчиков были бы ещё более возмутительными.</p><p>Давайте подсчитаем, сколько же эти отвлекающие факторы стоят в деньгах:</p><p>20 разработчиков получают по 30 € в час = 20*60*30 = 36 000 €</p><p>36 000 € тратятся зря, каждый месяц! И это ещё если предполагать, что 3 часа — реалистичная оценка для разработчиков ПО. А я сам разработчик и могу вам сказать, что она нереалистичная.</p><h4><strong>Где же решение?</strong></h4><p>Что ж, первый шаг — осознать, что у вас проблема. Многие компании либо не осознают этого, либо им всё равно.</p><p>Следующий шаг — поговорить по душам с сотрудниками. Я прошёл через это, когда был на руководящей должности, и все ответы сводились к следующему:</p><ul><li>Более гибкий график</li><li>Больше работы из дома</li></ul><p>Возможно, вы не получите честных ответов от ваших сотрудников — все зависит от обстановки в компании. Люди сложны, групповая динамика ещё сложнее, а вы, как босс/руководитель, меняете своим авторитетом динамику внутри группы, когда находитесь с ней в одном помещении.</p><p>Но я гарантирую вам: если вы не предлагаете очень гибкий график и возможность работы из дома, вы буквально выбрасываете деньги на ветер.</p><p>Я понимаю опасения по поводу удалённой работы, но если измерять продуктивность с помощью достоверного показателя (подсказка: число строк кода — показатель недостоверный), то вы сможете увидеть: растёт она или нет. С правильной стратегией продуктивность всегда будет возрастать.</p><p><em>Перевод статьи </em><a href="https://medium.com/@amandoabreu?source=post_header_lockup"><em>Amando Abreu</em></a><em>: “</em><a href="https://medium.com/@amandoabreu/you-dont-understand-your-software-engineers-53442ca0805a"><em>You don’t understand your software engineers</em></a><em>”</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=5924aaf01ce2" width="1" height="1" alt=""><hr><p><a href="https://medium.com/nuances-of-programming/%D0%B2%D1%8B-%D0%BD%D0%B5-%D0%BF%D0%BE%D0%BD%D0%B8%D0%BC%D0%B0%D0%B5%D1%82%D0%B5-%D1%81%D0%B2%D0%BE%D0%B8%D1%85-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%81%D1%82%D0%BE%D0%B2-5924aaf01ce2">Вы не понимаете своих программистов</a> was originally published in <a href="https://medium.com/nuances-of-programming">NOP::Nuances of Programming</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Agile - враг (хорошего проектирования)?]]></title>
            <link>https://medium.com/nuances-of-programming/agile-%D0%B2%D1%80%D0%B0%D0%B3-%D1%85%D0%BE%D1%80%D0%BE%D1%88%D0%B5%D0%B3%D0%BE-%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F-c9d70b37f659?source=rss-323f6f4f9e94------2</link>
            <guid isPermaLink="false">https://medium.com/p/c9d70b37f659</guid>
            <category><![CDATA[ux]]></category>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[agile-the-enemy]]></category>
            <category><![CDATA[agile]]></category>
            <category><![CDATA[design]]></category>
            <dc:creator><![CDATA[Alisa Tolstova]]></dc:creator>
            <pubDate>Sat, 18 Aug 2018 05:46:01 GMT</pubDate>
            <atom:updated>2018-08-18T05:46:01.149Z</atom:updated>
            <content:encoded><![CDATA[<h3><strong>Agile — враг (хорошего проектирования)?</strong></h3><p><em>Перевод статьи </em><a href="https://hackernoon.com/@johnpcutler?source=post_header_lockup"><em>John Cutler</em></a><em>: “</em><a href="https://hackernoon.com/is-agile-the-enemy-of-good-design-14a35806cde7"><em>Is Agile the Enemy (of Good Design)?</em></a><em>”</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/proxy/1*pUltUFND1ZZBMzHGt6cvlQ@2x.jpeg" /></figure><h4><strong>Интеграция</strong></h4><p>Чтобы приступить к обсуждению, вначале надо поговорить об интеграции. Интеграция — это…</p><p><em>действие или случай объединения в единое целое.</em></p><p>Частая интеграция помогает людям более эффективно решать задачи:</p><ul><li>Вы и я заблудились в лесу. Мы договариваемся разделиться, исследовать обстановку и периодически возвращаться на условленную поляну, чтобы <em>интегрировать</em> наши находки (например, я нашёл воду, вы нашли убежище).</li><li>Учитель проводит еженедельную проверочную работу. Оценки за неё не влияют на табель, но она предназначена для <em>интеграции</em> на нескольких уровнях: 1) для закрепления пройденного за неделю материала и 2) для проверки прогресса учеников, на основании которой планируются будущие уроки и выявляются слабые места. Эта проверочная работа помогает «свести всё воедино» и «понять, как у нас дела».</li><li>IKEA закладывает интеграцию в конструкцию своей мебели. Собирая мебель от IKEA, можно на время зайти в тупик (если запороть какой-то шаг), но практически невозможно довести неправильную сборку до конца, разве что если проявить недюжинную фантазию.</li><li>Проектировщик горных велосипедов собирает/изготавливает опытный прототип и делает на нём пробную поездку. Эта поездка <em>интегрирует</em> ряд дизайнерских решений с реальными условиями дороги.</li><li>Команда из пяти человек пытается периодически интегрировать вклад всех участников в проект и «посмотреть, всё ли сходится». Команда дизайнеров регулярно встречается, чтобы покритиковать друг друга и «убедиться, что их дизайнерские решения имеют прочное и веское обоснование».</li></ul><p>Проще говоря, интеграция снижает риск и помогает нам решать задачи. И так во всём.</p><h4><strong>Agile и интеграция</strong></h4><p>Вот мысль, которая может помочь UX-проектировщикам, пытающимся разобраться в Agile.</p><p>Как и многие из подходов к проектированию, которые вам знакомы и близки, <strong>Agile основан на частой интеграции. Самоорганизующиеся команды, работа напрямую с заказчиком, ретроспективы, ежедневные планёрки, самодостаточность, сосредоточенность на «рабочем продукте» и качестве, дробление работы на небольшие части, — всё это поощряет более частую интеграцию.</strong></p><p>Существует, однако, ключевое различие, когда речь о разработке ПО, и об этом различии стоит поговорить. Недавно я описывал Lean и Agile своей подруге, которая занимается дизайном обуви. Она отметила:</p><blockquote>Похоже на то, как мы проектируем обувь — тесно сотрудничаем с инженерами, придумываем прототип, проверяем его, оттачиваем дизайн и подготавливаем его к производству. Дизайнер проектирует обувь: у некоторых подход не очень технический и есть только замысел и набросок, а у других — более технический. Дизайнер выбирает материалы. Директор по материалам находит и закупает их. Инженеры занимаются подгонкой, затратами, маржей, возможностью изготовления такой модели, качеством и производством.</blockquote><p>Звучит знакомо. Разница в «готовности к массовому производству».</p><p>Обувь итерационно проектируется, а затем массово производится. Некоторые пытаются распространить эту модель на ПО. Проектировщик может разработать и собрать прототип, периодически показывать этот прототип пользователям, постепенно совершенствовать его и — когда его всё устраивает — передать «этот проект» инженерам для «сборки» или «производства». В этом процессе присутствует интеграция, но в момент передачи — лишь <em>частичная</em>. У прототипа «нет потрохов»… он как здание без ОВКВ, канализации, электричества, без жителей и без структурной целостности.</p><p><strong>В отличие от опытного прототипа обуви, который можно надеть на пробежку, прототип программы на самом деле ещё не «работает». «Писать код» — это и значит заниматься проектированием ПО. Код — это и есть «проект», готовый к «сборке» (многократной) сервером сборки. Так что без кода проектирование не завершено.</strong></p><p>И это, <em>возможно</em>, не страшно. Произошло обучение (и частичная интеграция), и полученные знания достаточно ценны. Множество агентств работают таким образом, потому что их заказчики хотят увидеть продукт, «точно как он будет выглядеть». Но вы навлекаете на себя ряд знакомых рисков, принимая этот подход:</p><ul><li>Преждевременная сходимость</li><li>Проект технически нежизнеспособен</li><li>На стадии проектирования рассчитывали на «большой кусок»</li><li>Прототип «хорошо ведёт себя на тестировании», но на самом деле не удовлетворяет потребностей пользователя</li><li>Вы упускаете возможность ранней поставки заказчику продукта, имеющего ценность (и получения знаний)</li><li>Вы упускаете возможность раннего вовлечения инженеров в обмен идеями</li><li>Конечный продукт не полностью воплощает то, что технически достижимо</li></ul><h4><strong>К делу</strong></h4><p>Так вот, перейдём ближе к делу. Теоретически, предназначение Agile — предотвращать эти риски. Но Agile — как и многие другие вещи в безжалостном мире бизнеса — зачастую не может тягаться с вездесущей угрозой помешательства на результате, театра успеха и сокращения издержек. Поверьте мне… она существовала задолго до Agile.</p><p>Как объяснила моя подруга — продуктовый дизайнер ПО:</p><blockquote>Если у меня есть выбор — начать с подробного проектирования или попытаться работать по Agile, я всегда выберу начать с подробного проектирования. Почему?</blockquote><blockquote><strong>То, о чём ты говоришь, происходит редко.</strong> Всегда надо «выкатывать, выкатывать, выкатывать». Мы не переориентируемся. Мы не совершенствуем. Владелец продукта хочет только поставить «Выполнено» в Jira. Минимально жизнеспособный продукт — это оправдание, чтобы выпустить фигню и забыть о ней. Я гарантирую, что если тщательно подойду к тестированию прототипа, то у меня получится лучше, потому что его увидят пользователи. Будет не НАСТОЛЬКО замечательно, как если работать по идеальному Agile, но лучше, чем ничего. То есть у меня сложности даже с тестированием удобства интерфейса. <strong>Так что, знаешь… да, в теории всё это прекрасно, но так не бывает.</strong></blockquote><p>Насчёт МЖП она совершенно права. Эту идею продают командам как якобы способствующую обучению, но на практике они привыкают выкатывать продукт БЫСТРО и сокращать ВСЕ ИЗДЕРЖКИ, а потом им говорят: «да всё отлично, едем дальше!» Идеальный пример.</p><h4><strong>Agile для проектировщиков (в теории)</strong></h4><p>В теории, закономерности вроде Agile должны быть огромным подспорьем для проектировщика. Можно работать итерациями и доставлять заказчикам штуки, которые работают (и не ломаются). «Первый проход», вероятно, будет труден и сосредоточен в основном на сборе данных по ключевым вопросам. С каждой последующей итерацией «штука» будет оживать, выполненная всё более добросовестно и гладко. Необязательно выпускать её для <em>всех</em> пользователей — сойдёт и закрытый бета-тест — но ПО по своей природе хорошо приспособлено к быстрым итерациям и совершенствованию. Это больше похоже на проектирование услуг и управление каким-нибудь рестораном, чем на проектирование товаров для массового производства. Еда не поддельная, услуга тоже… но вы продолжаете совершенствовать.</p><p>Что важно, никто не запрещает мыслить более целостно… просто вы будете итеративно откалывать по кусочку от вашего большого целостного комка (примерно так же, как в контексте Agile подходят к архитектуре). Команда вам скажет спасибо за целостную картину.</p><h4><strong>Agile для проектировщиков (на практике)</strong></h4><p>Это была теория. На практике с помощью закономерностей Agile можно «выкатить» посредственный продукт очень скоро либо потрясающий продукт относительно скоро. Сокращаемые издержки можно сокращать быстрее. Возможности можно ловить и пускать в дело быстрее. Это такой чёрный ящик с силовыми функциями, подталкивающими к частой интеграции.</p><p>Проектировщики часто уверены, что:</p><ul><li>Проектировщик должен «определять и проектировать», а инженер должен печатать/собирать/строить</li><li>За инженером нужен глаз да глаз, и без проектировщика он всё испортит</li><li>В контексте спринтов и работы бок о бок с разработчиками ПО нет места глубокой, творческой, целостной работе над проектированием</li><li>Agile — поскольку его проектировали не проектировщики — непременно каким-то образом настроен против потребностей проектировщика (и пользователя)</li><li>Agile по своей структуре ориентирован на результат и поощряет работу в режиме фабрики функционала</li><li>Agile поощряет мелочное, скучное мышление, и в итоге команда не видит дальше собственного носа</li><li>«Технари» стремятся командовать парадом, все козыри у них на руках, а проектировщики должны защищать себя, чтобы хорошо работать</li></ul><p>Страдание.</p><h4><strong>Agile (враг или же…)</strong></h4><p>Короче говоря, Agile — враг. По словам моего знакомого проектировщика:</p><blockquote>По-моему, Agile, как его ни определи, на практике — именно то, с чем я воюю за эффективное проектирование в организациях, где/с которыми работаю.</blockquote><p>На что я ответил:</p><blockquote>С этого места поподробнее. А то в моей работе это — традиционные взгляды менеджеров среднего звена, косвенные метрики, театр успеха, управление по целям, фиксация на результате, недальновидность, недостаток измерений, традиционный подход к финансам и бюджету, противоречие между фокусом на человеке или на команде, короткие контракты, недостаток психологической безопасности и ментальность тянитолкая. Agile тут ни при чём.</blockquote><p>А другой проектировщик поддакнул:</p><blockquote>Давайте не будем толочь воду в ступе. Враг и настоящих Agile-энтузиастов, и специалистов по UX/проектированию в 2018-м — это, как говорит Джон, недальновидное, ориентированное на результат мышление, подстёгиваемое сосредоточенностью на краткосрочных финансовых целях, а также весь комплекс культурных последствий этого мировоззрения.</blockquote><p>Я предвзят. Я согласен.</p><h4><strong>Что же теперь?</strong></h4><p>Так каково же наше положение? Проектировщики имеют право беспокоиться. По крайней мере, в каскадной модели никто не орёт «выкатываем» раньше времени, посреди проекта. У проектировщика есть время, чтобы работать, а не скакать по конвейерной ленте спринтов. А так как искомую «штуку» собирают большим куском, у них есть время на целостный подход к задаче проектирования с самого начала. «Хороший» каскад всегда лучше злоупотребления Agile.</p><blockquote><em>«Хороший» каскад всегда лучше злоупотребления Agile.</em></blockquote><p>Что же можно сделать? Я вижу два широких подхода:</p><ol><li>Размежеваться</li><li>Расти над собой всем вместе</li></ol><p><strong>Размежеваться</strong> — значит продвигать процессы, где проектировщики окапываются выше по течению, чем разработчики ПО (старое доброе «проектирование, потом сборка»). В среде, погрязшей в работе на результат, это не самая плохая идея. Может случиться хороший проект. Разработчикам, возможно, даже понравится, ведь умеренно хорошее проектирование всегда лучше фигового.</p><p><strong>Расти над собой всем вместе</strong> тяжелее. Это значит…</p><ul><li>Открыться всем возможностям частой интеграции.</li><li>Прочно закрепить кроссфункциональные команды по разработке продукта.</li><li>Продвигать качественное проектирование в контексте кроссфункциональных команд.</li><li>Продвигать такой итерационный подход, который выгоден пользователю (не останавливаться, когда тестирование успешно пройдено и руководство требует перехода к следующему проекту). Результаты важнее итогов.</li><li>Способствовать совместному проектированию с разработчиками ПО и другими заинтересованными лицами.</li><li>Ограничивать работу «против течения» — вместо этого нужно стремиться сотрудничать с другими участниками команды и пройти этот путь вместе.</li><li>Вникать и приспособляться в сотрудничестве с участниками своей команды, подстраивать свои рабочие договорённости и процессы под достижение наилучших результатов (и довольных участников команды). Раз вы проектировщик, то, вероятно, можете с этим помочь.</li></ul><h4><strong>Вывод</strong></h4><p>В заключение я хотел бы поделиться личным наблюдением. Единственный способ побороть недальновидность и сокращение издержек — показывать прекрасные результаты. Если результат работы не ощущается, то, как её ни делай, появится чувство «движения к провалу» и отступление обратно к фиксации на результате. Любой «улучшенный» способ работать чреват злоупотреблением.</p><p>Я считаю, что проектировщики как никто другой способны помочь команде разработчиков ПО «расти над собой», прекрасно выполняя свою работу и помогая каждому стать (чуть-чуть) лучшим проектировщиком.</p><p>Что же касается ненависти проектировщиков к Agile… могу сказать, что Agile представляет собой некие закономерности, которые в определённый момент (и в определённом контексте) «сработали». Уверен, проектировщики могут понять, каково черпать вдохновение из многих традиций, чтобы разобраться со своей задачей. Акцент на частой интеграции, надеюсь, вам знаком. В Agile ключевой момент — использование этой частой интеграции для достижения высокого качества, а не посредственности.</p><p><em>Перевела Алиса Толстова.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=c9d70b37f659" width="1" height="1" alt=""><hr><p><a href="https://medium.com/nuances-of-programming/agile-%D0%B2%D1%80%D0%B0%D0%B3-%D1%85%D0%BE%D1%80%D0%BE%D1%88%D0%B5%D0%B3%D0%BE-%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F-c9d70b37f659">Agile - враг (хорошего проектирования)?</a> was originally published in <a href="https://medium.com/nuances-of-programming">NOP::Nuances of Programming</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Как быть успешным сейчас и в будущем]]></title>
            <link>https://medium.com/nuances-of-programming/%D0%BA%D0%B0%D0%BA-%D0%B1%D1%8B%D1%82%D1%8C-%D1%83%D1%81%D0%BF%D0%B5%D1%88%D0%BD%D1%8B%D0%BC-%D1%81%D0%B5%D0%B9%D1%87%D0%B0%D1%81-%D0%B8-%D0%B2-%D0%B1%D1%83%D0%B4%D1%83%D1%89%D0%B5%D0%BC-21e8eb82e2f8?source=rss-323f6f4f9e94------2</link>
            <guid isPermaLink="false">https://medium.com/p/21e8eb82e2f8</guid>
            <category><![CDATA[life]]></category>
            <category><![CDATA[technology]]></category>
            <category><![CDATA[entrepreneurship]]></category>
            <category><![CDATA[digital]]></category>
            <category><![CDATA[innovation]]></category>
            <dc:creator><![CDATA[Alisa Tolstova]]></dc:creator>
            <pubDate>Fri, 10 Aug 2018 06:51:01 GMT</pubDate>
            <atom:updated>2018-08-10T06:51:01.231Z</atom:updated>
            <content:encoded><![CDATA[<p><em>Мировоззрение, мировоззрение и ещё раз мировоззрение</em></p><p><em>Перевод статьи </em><a href="https://hackernoon.com/@erikpmvermeulen?source=post_header_lockup"><em>Erik P.M. Vermeulen</em></a><em>: </em><a href="https://hackernoon.com/how-to-be-successful-now-in-the-future-c87cc77d723f"><em>How to Be Successful Now &amp; In the Future</em></a></p><figure><img alt="" src="https://cdn-images-1.medium.com/proxy/1*VtM4-ykEi_MucmmlMwVQOA.jpeg" /></figure><p>Цифровые технологии — писк моды. Это, положим, очевидно. Количество связанных с ними событий растёт с поразительной скоростью.</p><p>Каждый хочет узнать побольше о новых технологиях и их влиянии на его жизнь. У каждого есть мнение о них. Кто-то их обожает, а кто-то (до сих пор) не доверяет им.</p><p>Мне это стало совершенно ясно (в очередной раз) на конференции в Японии на прошлой неделе.</p><p>Наши жизни всё больше и больше вращаются вокруг цифровых технологий. Алгоритмы и соцсети уже сегодня «подавляют» нашу экономику, общество и культуру. Они всё в большей степени определяют, как мы работаем, общаемся и знакомимся. За каждой гранью нашей жизни сегодня стоят технологии.</p><p>Как это обычно бывает, не все участники того мероприятия в Японии были в этом убеждены. Они цепляются за «старый мир» и отрицают возможность изменений. Что интересно, они ссылались на непостоянство Bitcoin и потребление энергии его блокчейном в доказательство своего мнения. Было ясно, что они просто не желают верить в оцифровку мира.</p><blockquote><em>Но они неправы. «Цифровое преображение» реально и происходит повсюду вокруг нас.</em></blockquote><p>Пути назад нет. И нам всем следует задуматься о том, как технологии влияют на нашу жизнь и что нам с этим делать.</p><p>И дело тут не в понимании всех технических деталей, стоящих за цифровыми новшествами. Однако нам непременно нужно <strong><em>изменить своё мировоззрение</em></strong> и <strong><em>сообразить</em></strong>, как мы можем использовать огромные возможности, создаваемые цифровыми технологиями.</p><blockquote><em>Если использовать их с умом, цифровые технологии могут сделать нас счастливее и успешнее.</em></blockquote><p>Они способны «децентрализовать» и наделять нас большей автономией и выбором. Вот что такое «цифровое преображение» — культурный сдвиг, касающийся каждого из нас.</p><p><strong>Так как же нам изменить своё мировоззрение?</strong></p><p><strong>Как нам развить «цифровое мировоззрение», необходимое, чтобы взять всё лучшее от нового мира?</strong></p><p>Я считаю, что нам нужно осознавать риски цифровой культуры и подходить с умом к нашим отношениям с новыми технологиями.</p><p>Вот что я имею в виду.</p><h3><strong>Осознавать «риски» цифровой культуры…</strong></h3><p>Конечно, все мы видим «опасности», сопровождающие новые цифровые технологии и цифровую культуру, выросшую вокруг них.</p><p>Задумайтесь о некоторых возможных рисках, создаваемых этими технологиями:</p><ul><li>Мы тяготеем к излишней концентрации на краткосрочных целях. Например, мы сосредотачиваемся на мгновенном наборе «читателей», «лайков» и «положительных комментариев», чем больше — тем лучше. И да, это бывает очень увлекательно. Но обратная сторона такого «быстрого выигрыша» — в падении интереса к разработке осмысленных материалов или опыта, который мог бы вдохновить других или оказать благотворное влияние на сообщество или человечество.</li><li>Мы постоянно занимаемся нездоровыми сравнениями с другими. Мы используем «читателей» и «лайки» как мерило успеха своей деятельности относительно окружающих, и мы привыкаем бояться «отрицательных комментариев». Отрицательные комментарии — причина, по которой некоторые из моих коллег и друзей опасаются соцсетей.</li><li>Мы подвергаемся рискам «стадного поведения». Мы следуем за «толпой» в погоне за признанием или принятием окружающих, и мы лишаемся самобытности, теряя из виду себя, чтобы «вписываться».</li><li>Цифровые технологии часто «очаровывают» нас и превращаются в помешательство, захватывающее всю нашу жизнь. Мы оказываемся в ловушке «времени перед экраном» и развиваем нездоровую зависимость (иногда подобную наркотической) от наших устройств.</li><li>Иногда у нас даже развивается зачастую неоправданное ощущение собственной важности или заслуг на основании признания, полученного нашей «онлайн-маской».</li></ul><p>Разумеется, я здесь обобщаю. Но, думаю, каждый — если он честен перед собой — может понять эти риски. Они постоянно заманивают любого, кто участвует в новой цифровой культуре.</p><p>Одним из возможных ответов на эти риски может быть «отторжение» технологии и отказ от взаимодействия с цифровым миром.</p><p>Или можно подождать, пока производители технологий не найдут «техническое» решение некоторых из этих проблем. Пример — технические меры, разработанные, чтобы ограничить время перед экраном и снизить риск излишней зависимости от цифровых устройств.</p><p>Проблема таких стратегий, однако, в том, что, отстраняясь подобным образом, мы рискуем упустить ряд великолепных возможностей, созданных движимой технологиями цифровой культурой.</p><blockquote><em>А эти цифровые возможности более чем реальны.</em></blockquote><p>Как уже сказано, технологии предоставляют нам разнообразие выбора и свободу, которая делает нас более человечными, развивает нашу индивидуальность и приводит к намного большему счастью и многообразию.</p><h3><strong>И подходить с умом к цифровым технологиям</strong></h3><p>И всё же я думаю, что нам необходимо подходить к новым технологиям с умом. Нам нужно «разобраться в них», чтобы снизить риски и максимизировать возможности для построения и создания такой жизни, которая будет приносить удовлетворение лично нам.</p><p>Также я убеждён, что это подразумевает развитие «цифрового мировоззрения» нового типа, над которым постоянно нужно работать. Нам всем нужно стать активными и позитивными пользователями технологий, создающих новые возможности, а не жертвами таких вредоносных процессов, какие описаны выше. И это относится ко всем нам (и к молодым, и к пожилым), а также к бизнесам.</p><p><strong>Так как же нам в них разобраться?</strong></p><p><strong>Как подойти с умом к нашим взаимоотношениям с новыми технологиями?</strong></p><p><strong>Каковы важнейшие элементы нового цифрового мировоззрения?</strong></p><p>Вот пять идей для начала обсуждения:</p><h4><strong>№1 — набирайте опыт</strong></h4><p>Нам нужно гнаться за моментом и накапливать как можно больше нового опыта. Именно через новый опыт можно выстроить лучшее ощущение того, «кто мы» и «что мы хотим делать со своей жизнью». И в этом отношении не следует чересчур концентрироваться на результатах — думать нужно о процессе.</p><h4><strong>№2 — экспериментируйте</strong></h4><p>Нам нужно «учиться, делая». То есть практиковаться и улучшать свои навыки, чем бы мы ни занимались. Разумеется, следует быть осторожным со стремлением к бесконечному самосовершенствованию, но подобная экспериментальная жизнь — единственный путь к обнаружению и созданию новых возможностей.</p><h4><strong>№3 — будьте терпеливы</strong></h4><p>Нам нужно быть упорными и последовательными. Надо избегать разочарования и досады, когда что-то идёт не так, как мы надеялись и планировали (например, когда профиль в соцсети не привлекает ожидаемого количества посетителей). Продолжать заниматься выбранным делом может быть нелегко, но это — лучший вариант.</p><h4><strong>№4 — сотрудничайте</strong></h4><p>Нам нужно осознать важность совместного, разделённого творчества. Цифровой мир платит сторицей «командам» за «командную работу».</p><h4><strong>№5 — выстраивайте сообщества</strong></h4><p>Наконец, нам нужно искать сообщества людей, разделяющих наши интересы. Таким образом, мы можем создать поистине вдохновляющую среду, позволяющую каждому стать лучшей версией себя.</p><p>Все вышеперечисленные стратегии связаны с коммуникативными навыками, о чём я писал выше.</p><h3><strong>И напоследок</strong></h3><p>В цифровую эпоху технологии действительно становятся частью нашей личности. В этом смысле мы теперь все станем «киборгами». Но не нездоровым образом, а таким, который расширит наши возможности и создаст больше путей к удовлетворению собственной жизнью.</p><p>Вот, например, «социальные сети». Это идеальный способ стать заметным в нашем быстро меняющемся мире. Однако на удивление мало моих учеников относятся к соцсетям серьёзно. Да, у них есть профиль на Facebook или Instagram, они часто делятся какими-то событиями из своей жизни, но не прилагают серьёзных усилий к построению личной истории или бренда, который помог бы им в будущем.</p><p>Кроме того, всем нам нужно быть скромными и понимать, что мы сами постоянно учимся. Благодаря взрывному росту инноваций, «цифровую жизнь» невозможно освоить в совершенстве.</p><p>Ориентироваться в новом цифровом мире бывает непросто, но если «разобраться» в нём и вести себя умнее, выгода очевидна.</p><p>Наконец, одно из лучших свойств нового мира: возраст, предыстория и прошлый опыт больше не имеют такого значения, как раньше. Всё решает «цифровое мировоззрение». И именно это я стремился сообщить слушателям на том мероприятии в Японии.</p><blockquote><em>Правильное мировоззрение действительно создаёт значительный потенциал для свободы, счастья и нового уровня человечности для всех нас.</em></blockquote><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=21e8eb82e2f8" width="1" height="1" alt=""><hr><p><a href="https://medium.com/nuances-of-programming/%D0%BA%D0%B0%D0%BA-%D0%B1%D1%8B%D1%82%D1%8C-%D1%83%D1%81%D0%BF%D0%B5%D1%88%D0%BD%D1%8B%D0%BC-%D1%81%D0%B5%D0%B9%D1%87%D0%B0%D1%81-%D0%B8-%D0%B2-%D0%B1%D1%83%D0%B4%D1%83%D1%89%D0%B5%D0%BC-21e8eb82e2f8">Как быть успешным сейчас и в будущем</a> was originally published in <a href="https://medium.com/nuances-of-programming">NOP::Nuances of Programming</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
    </channel>
</rss>