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

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


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

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

Опубликовано в Компьютерре от 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
Перепечатка авторских материалов сайта приветствуется! Ссылка на первоисточник при перепечатке обязательна.