воскресенье, 22 марта 2009 г.

Усталость от работы

В двух предыдущих заметках (первая и вторая) я завел речь о том, какие виды деятельности приходится выполнять по ходу проекта. И сколько времени в день может занимать плодотворная работа того или иного рода. Сейчас хочется рассказать, насколько я устаю на разных этапах разработки.

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

Кодирование вызывает похожий эффект. Но, к счастью, не настолько сильный. И психологическая, и физическая усталость не такая сильная, как при документировании. Не знаю, чем это вызвано. Может быть тем, что при кодировании есть гораздо большая положительная отдача: написал кусок программы, покрыл ее тестами, убедился, что все работает и… И хорошо! Душа поет! :) Может быть дело еще и в том, что при кодировании редко возникают ситуации, когда ты работаешь “отсюда и до обеда”, когда ставишь себе цель написать столько-то разделов такой-то главы за сегодняшний день. И ближе к концу рабочего дня начинаешь понимать, что нужно выдавить из себя еще вот эту страничку, а затем еще одну, а затем и еще одну… Может быть, дело еще и в том, что кодированием занимаешься находясь “на пике формы”, когда еще не было накопления усталости от всего, что было раньше. А вот документирование – это уже самый конец проекта, когда огромное количество сил потрачено на проектирование, экспериментирование, кодирование, тестирование, опытную эксплуатацию и пр. И после всего этого – за сегодняшний день нужно написать 20 страниц документации… пристрелите меня… ;) В общем, резюмируя: от кодирования устаешь. И физически устаешь, и психологически. Но не очень сильно.

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

Но вот усталость от экспериментирования и от отладки программ уже другого рода. Не столько физическая, сколько психологическая. Насколько я могу вспомнить, я редко сильно физически устаю, когда приходится выискивать баги в программах. Может быть потому, что отладка заставляет больше двигаться – вскакивать, мерить шагами коридор, грозить кому-то кулаком, стучать в сердцах по столу… :) Но вот психологическая усталость от отладки серьезно отличается от таковой при кодировании/документировании. Она гораздо сильнее. Может быть за счет более сильного нервного напряжения. Еще хорошо, когда отладка завершается успешно и злобный баг, на который было убито несколько мучительных часов тестирования, таки найден и устранен. Тогда просто чувствуешь себя очень усталым победителем. Но вот если баг не найден… Вот это действительно хреново. Поскольку мысли о его поиске не покидают тебя. Даже не смотря на попытки переключения на какую-то другую тему. Меня в такие моменты иногда одолевает очень серьезная рассеянность. Несколько раз в магазине я забывал забирать сдачу или взять с собой купленные продукты. И, что интересно, я не думал в эти моменты о программе. Просто вообще ни о чем не думал. Было состояние какого-то опустошения.

Состояние, надо сказать, неприятное. Самое плохое, что это очень асоциальное состояние, провоцирующее конфликты. Находясь в нем невозможно обсуждать шторы или пытаться играть в выдуманную ребенком роль. Просто потому, что ты отстранен от всего этого, но ты понимаешь, что нельзя вот так относится к своим близким. Но ты так же понимаешь, что и переломить себя не можешь. Еще хуже, когда такое состояние прострации внезапно прерывается какой-то догадкой. Как шило в задницу. Которое заставляет тебя бросить все и если не уткнуться в компьютер проверять ее, то хотя бы записать на листочке бумаге. Ты срываешься с места и заседаешь на полчаса-час за письменным столом, чтобы краем уха услышать в другой комнате: “Папа опять не может поиграть с ребенком”…

Да, а еще бывает, что просыпаешься среди ночи из-за того, что во сне тебе приснилось решение проблемы. У меня такое однажды было. В принципе, довольно жуткое это дело…

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

Как говорят: в правильно сформулированном вопросе заключена половина правильного ответа. Так вот, на мой взгляд, задача этапа мозгового штурма состоит именно в формулировании правильных вопросов. Нахождение ответов на них затем будет уже делом техники. А пока нужно определить правильные вопросы. И это такая головоломка временами…

Так вот что же тяжелого в этапе мозгового штурма? Неопределенность. При большом нервном, умственном и эмоциональном напряжении. Даже при отладке и поиске багов все гораздо очевиднее: баг либо устранен, либо нет. Если устранен, то хотя бы есть чувство победителя здесь и сейчас. Если не устранен, то хотя бы понятно, что он будет устранен (чем больше опыт, тем более я в этом уверен). А вот при мозговом штурме такой очевидности нет. Не всегда ты знаешь, насколько твои вопросы хороши. Не всегда ты знаешь, в нужную ли сторону ты вообще движешься…

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

Вот такой поток сознания получился… Хотел еще что-то вставить про “состояние потока”. И о том, при каких раскладах мозговой штурм оказывается тяжелее, а при каких – проще. Но, видимо, уже в другой раз. Если кому-то будет интересно (в чем я не особо уверен).

5 комментариев:

Rustam комментирует...

Пиши, интересно :)
Вообще ты описал то, что писатели называют "творческими муками", задача вытесняются в подсознание, там идет активная работа, которая никак ни осознается, кончается или депрессией или озарением и переходом в состояние потока :)

1 комментирует...

Нравятся мне люди, которые на вопрос "как ты отдыхаешь?" отвечают: "А я не напрягаюсь". Надо это в себе воспитывать. Иначе есть шанс перегореть. При любом роде деятельности.

eao197 комментирует...

2Lamer: а вот фиг знает, правы такие люди или нет. Где-то я встречал мнение, что для успешного долгожительства (т.е. когда человеку за 80, а он/она бодрячком -- в здравом уме, в трезвой памяти, не требует постоянного ухода и т.д.) требуются постоянные испытания человека на прочность. В качестве примера приводятся современные 80-90-100 летние старики, на жизнь которых выпали в прошлом веке очень серьезные испытания (войны, голод, репрессии, денежные и социальные реформы).

Вспоминается Валентин Пикуль с PQ-17. Он там говорил, что, как правило, на спасательном плотике выживали те, кто располагался на краю плота и больше всех рисковал. А вот те, кто оказывался в центре, в относительной безопасности, обычно погибали.

Так что, вопрос, наверное, больше в том, ощущает ли человек удовлетворение от результатов своего напряжения. Если степень удовлетворения гораздо больше напряга, то все нормально. А вот если нужно "копать траншею" просто потому, что это нужно. И результат только: "Хух, наконец-то все закнчилось", тогда да. Перегар случится, ты прав. Но здесь, наверное, нужно задумываться о смене деятельности.

1 комментирует...

То, что ты описал, сравнимо с тем, как паришься в бане (жарко, блин) или, например, пашешь в качалке. Напрягаешься, получая удовольствие.

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

К тебе последняя ремарка не относится, естественно.

eao197 комментирует...

Не могу согласиться, что посещение бани или качалки сравнимо с выживанием на спасательном плотике в Северном море...

Но самое смешное, что по своему складу характера я как раз предпочитаю напрягаться только периодически, зато сильно. А остальное время проводить в праздности :) Только вот программирование не очень хорошо согласуется с таким подходом. Вот и приходится приспосабливаться :)