Разработка ПО — источник бесконечного «счастья»?

В свой книге «Поток. Психология оптимального переживания» известный американский психолог Михай Чиксентмихайи приводит восемь основных компонентов переживания радости. Попробуем разобраться, что это за компоненты и при чем здесь программирование?

Чтобы это сделать, приведу первоначальное описание автора:

В результате наших исследований было выделено восемь основных компонентов переживания радости. Когда люди размышляют о своих чувствах в особенно позитивные моменты, они, как правило, упоминают не менее одного из них, а чаще — все восемь. Во-первых, задача, которую ставит себе человек, должна быть для него посильной. Во-вторых, он должен иметь возможность сосредоточиться.

В-третьих и в-четвертых, концентрация, как правило, становится возможной потому, что задача позволяет четко сформулировать цели и немедленно получить обратную связь. В-пятых, в процессе деятельности увлеченность субъекта настолько высока, что он забывает о повседневных тревогах и проблемах.

В-шестых, занятия, приносящие радость, позволяют человеку ощущать контроль над своими действиями. Седьмая особенность этого состояния заключается в том, что осознание своего Я в момент совершения действия как будто исчезает, зато после окончания потокового эпизода оно становится сильнее, чем раньше. Наконец, изменяется восприятие течения времени: часы превращаются в минуты, а минуты могут растягиваться в часы. Сочетание всех этих составляющих порождает чувство настолько глубокой радости, что люди не жалеют сил, чтобы снова и снова испытывать её.

А теперь попробуем разобрать каждый из компонентов и понять, как это относится к процессу написания кода.

Посильная цель — при изучении новой технологии мы (разработчики) начинаем с той ступени, которая нам может быть наиболее понятна, но не является для нас и нашего опыта чем-то очевидным. В текущем информационном пространстве каждый может выбрать формат обучения, доступный для понимания: от вебинаров и книг серии “for dummies” до мастер-классов и теоретических лекций с элементами высшей математики.

Возможность сосредоточиться — стереотипы о разработчиках и вообще об IT-специалистах говорят сами за себя. Часто программисты “отключаются” от внешнего мира, чтобы разработать сложный алгоритм, изобрести новый подход, или просто реализовать новую “фичу”.

Четкая формулировка цели — как правило, цель всегда понятна: алгоритм должен работать, сайт должен соответствовать макету пиксель-в-пиксель, сервис должен держать нагрузку N запросов в секунду. Т. е. большинство задач имеют четкие критерии приемки.

Немедленная обратная связь — за эту возможность я и многие, наверно, полюбили программирование. Меняешь пару строчек местами, запускаешь компиляцию — ошибка! Разбираешься, что-то переделываешь, опять запускаешь — работает! Такие циклы могут иметь место по нескольку десятков раз в час, что дает возможность малыми итерациями двигаться к цели.

Увлеченность — наше сознание фокусируется на одном объекте в отличие от многопоточного подсознания, поэтому любое интересное занятие позволяет забыть о других заботах и тревогах.

Ощущение контроля — текст программы полностью подвластен разработчику, особенно если говорить про задачи для обучения. Поэтому, на мой взгляд, в этом и кроется одна из проблем методологии RUP, где “кодеру” остается лишь наполнить заранее спроектированные классы кодом, что как раз лишает это занятие творческой составляющей и чувства автономности.

Личностный рост — любая тренировка и оттачивание мастерства, в т. ч. и разработка, позволяют почувствовать удовлетворение от проделанной работы. Освоен новый фреймворк, “легаси” код отрефакторен и покрыт тестами по новой технологии… Все это позволяет положить в копилку наших навыков еще один, который поможет двигаться дальше и ставить более амбициозные цели.

Восприятие времени — часто мы теряем чувство времени, т. к. занимаемся любимым делом. На этой особенности, например, построены концепции хакатонов, когда нужно кодить несколько суток не останавливаясь. Для участников такие события пролетают за одно мгновение.

Многие скажут, что большинство из этих компонентов легко воспроизводимы в других профессиях, но мне кажется, что в написании кода выбор посильной цели и немедленная обратная связь доступны наиболее широкому кругу людей, нежели в других занятиях. Вы все еще не хотите стать разработчиком и получить свой источник “бесконечной радости”?:)

0
Комментарии
-3 комментариев
Раскрывать всегда