Сегодня 19.04.2024 Вы зарегистрированы в системе под именем ANONYMOUS

Rambler's Top100
Начало
Обо мне
Моя семья и звери
Статьи
Проекты
Стихи
Фото-галерея
Досуги
Былое и думы
Универсальная Самообучающаяся Экспертная Система
Мудрости
Приколы
 
Новости
Карта сайта
Все материалы
Обсуждение
Опросы
 


КиноНавигатор поможет выбрать фильм, если не знаешь, что посмотреть.
Персональный сайт Андрея Акопянца  >  Статьи  >  Прочее

    След. материал >>

Программазм как состояние души

Опубликовано в Компьютерре от 6 декабря 2005г.

Недавно случилось так, что для одного большого и срочного проекта мне пришлось самому "взять в руки шашку" и заняться программированием. Правда, весьма высокоуровневым (на Communiware), но все-таки... Причем значительная часть этого программирования пришлась не на реализацию функционала конкретного сайта (имеющего ТЗ), а на доделку и переделку ряда общеупотребительных пакетов – т.е. деятельность, не имеющую четкой постановки и границ.

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

Характерно состояние "программазма"

  • полной "забитостью"
  • смещением жизненных приоритетов

И для этого есть вполне объективные предпосылки, определяемые самим характером деятельности. Писание программ, в ситуации, когда ты на себя замыкаешь цикл "постановка – архитектура - кодирование" является очень творческий процессом, и очень благодарным в смысле быстроты получения результата. Но ровно эта "мягкость" материала, с которым ты работаешь, и быстрота технологического цикла "придумал-сделал", начинает играть злую шутку.

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

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

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

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

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

И именно это является объективным источником множества баек и анекдотов о неадекватных программистах. Не приходится удивляться, что большинство русских программистов не в состоянии сколько-нибудь адекватно продавать свой труд и его результаты - им просто не до того :)

Эффект "трудоголизма" вообще говоря известен и описан, но я утверждаю, что ни в одной другой деятельности он не является столь массовыми и остро проявляющимся. Потому что программирование обладает рядом особенностей:

  • Программирование является деятельностью чисто ментальной и не требует практически никакого ресурсного обеспечения
  • Программист имеет дело с объемными и долгоживущими ментальными объектами (образами программ)
  • Результат работы является в некотором смысле "живым" – программа как-то себя ведет, с ней возможно интерактивное взаимодействие, иногда – с непредсказуемым даже для творца результатом.

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

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

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

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

Аналогично - если ты кодируешь, но не сам ставишь себе задачу и оцениваешь результат, у тебя в заметной степени исчезает удовлетворение от сделанного и стремление к совершенству, подменяясь рациональными социальными стимулами – одобрением, зарплатой и др.

И в этом - одно из основных достоинств так называемых "промышленных подходов" к разработке программного обеспечения. Они, искусственно ослабляя обратные связи, позволяют всем участникам процесса сохранять адекватность.

Ценой этого, конечно, является значительное падение "пиковой" производительности. Поэтому при разработке каких-то не очень больших систем одиночки могут давать фору большим коллективам...


( написано 16.07.2004,   опубликовано 08.11.2004)
    След. материал >>

Обсуждение (всего 2 реплики, последняя - 04.05.2005 15:37)    Настройка

01.03.2005 16:22 Andrey Akopyantc Замечание по теме: Программазм как состояние души
Поржалуйста!
А в Компьютерре не взяли... Точнее, просто забыли про этот текст.>> >>

 
01.03.2005 15:13 Замечание по теме: Программазм как состояние души

БЛЕСТЯЩЕ!!!
СПАСИБО!

>> >>

 


В начало страницы (C) Andrey Akopyants
Перепечатка авторских материалов сайта приветствуется! Ссылка на первоисточник при перепечатке обязательна.