Предыдущий пост Поделиться Следующий пост
Маниакально-депрессивный девелопмент
lex_kravetski
После прочтения статьи неизвестного мне коллеги-айтишника, который ухватил самую суть, вдруг нахлынуло желание поделиться аналогичным, несмотря даже на то, что аналогичное — во многом аналогично уже написанному коллегой. Авось свою часть сути и мне ухватить удастся.

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

Экстремальные физические условия труда подрывают телесное здоровье и потому чреваты сокращением жизни. Экстремальные психологические условия труда — особенно в интеллектуальных сферах — способны устранить жизнь задолго до её прекращения. От человека остаётся только лишь его оболочка (тоже, кстати, физически нездоровая), но личность потихоньку уходит. Личность после этого заменяет показное бахвальство собственной приспособленностью к «современному динамичному миру» или другой подобный суррогат полноценности.

Тут я должен сразу оговориться: против идеи динамичного мира я ничего не имею. Речь идёт лишь о том, что оная «динамичность» всё отчётливее приобретает античеловеческую форму. Впрочем, правильно было бы сказать «возвращает», ибо понятия о правильных формах у нас существуют лишь благодаря тому, что наша страна в своё время успешно вырвалась из античеловеческих форм, сопровождавших человеческую цивилизацию с самого её рождения.

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

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

Большинство решений принимается так, будто их берут из личного контакта с потусторонними силами. То есть, из концепции «все делают так». При этом, почти никто не может ответить, откуда он узнал, «как все делают», и, тем более, почему «все делают это» правильно. Вроде бы, кто-то читал когда-то какую-то книгу и там было написано, что, де, вот эдак и всё такое. Вопросы типа: «а с чего ты взял, что автор не идиот», — считаются моветоном. «Как может автор быть идиотом, если он написал книгу»? Идиоты — только в нашем коллективе. Попытка анализа прочитанного на состоятельность воспринимается почти как бунт против тысячелетней религии. «Мы — мелкие сошки, достойные лишь смиренно повторять за небожителями».

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

Можно ли усовершенствовать концепцию? Есть ли в ней недоработки? На правильные ли постулаты опирался её автор? Соответствуют ли его условия нашему случаю? Ответ найти нельзя, потому что его негласно запрещено искать.

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

Раб пытается придумать себе обоснования: «ему нравится именно это», «он так и хотел», «он не любит суетиться». Жрец уверяет, что нет счастья выше, чем сражаться за волю богов. И они оба как бы вычёркивают себя из списков имеющих право на эту самую волю. У них её нет. Их воля — служить ими непознаваемому.

И тут противоречие не в том, что все должны друг другу противоречить, нет. Хороший театральный коллектив не плодит противоречия — он совместно творит искусство. Он ищет зерно истины не во имя конкуренции, а во имя поиска истины. Но как только дело поворачивается так, что все становятся на концепцию «делаем, как заведено», искусство сдувается. Искусства нет, когда все творцы добровольно становятся посредственностями. Ровно так же происходит и с наукой. И, само собой, ровно так же происходит и на их стыке — в частности, в АйТи-сфере.

Можно писать программы и ставить спектакли в таких условиях — да, можно. Но радости в этом нет. А если нет радости, то есть накапливающийся, неустранимый стресс. Который, к тому же, подогревается другими замечательными явлениями, о которых речь пойдёт чуть позже.

Нет радости — нет и развития. Что бы там ни утверждали адепты рыночной экономики, но человек развивается не ради того, чтобы хорошо зарабатывать. Ради этого он разве что тешит себя мыслью, что вот он-то ещё чуть-чуть и как начнёт развиваться — не чета балбесам-коллегам, которые ради своего материального счастья и пальцем не шевельнут. Нет, развитие идёт только тогда, когда есть воодушевление делом. Когда оно — полёт и отдохновение души. Без этого существует лишь максимально монотонный труд. Ремесленничество в худшем смысле этого слова: «мой дед вытачивал бобышки, отец вытачивал бобышки и я тоже буду вытачивать те же бобышки, тем же способом, что и мои пра-пра-пра-пра-предки».

Вялость трудовых коллективов сразу же диагностируется по тому выражению глаз, которое имеет место быть у членов этих коллективов, как только заходит речь об изучении чего-то нового. «Это зачем?». «Можно как-нибудь без этого — ведь есть же проверенные способы?». «Читать долбанные книги? Увольте, я их уже читал». И немудрено: читать книги на самом деле — скучная скука. Когда по необходимости. Книги весело читать только тогда, когда не терпится узнать что-то в них написанное. А такое бывает только тогда, когда его стремишься узнать и без книг. Додуматься. Вычислить. Изыскать в тысяче экспериментов. Книга интересна, когда есть эдакая «конкуренция» с автором — додумался ли он лучше меня? Скажет ли он мне то, чего я не знаю? А нашёл ли он ответ на тот вопрос, на который я сам уже почти нашёл ответ? Или хотя бы подтвердит ли он мои мысли?

Без такого рода азарта чтение книги или прослушивание лекции становится пыткой: ведь разбираться приходится с каждым словом. Каждый абзац между строк содержит дополнительный вопрос: а на хрена это всё вообще нужно? Ну, вот, можно сделать эдак, а на хрена? Программист смотрит на первые же содержательные абзацы книги, как эскимос на пляжные шорты. Можно ли уговорить его читать дальше?

В результате, нет азарта, нет развития, нет радости. Что есть? Чисто механическая деятельность, усугублённая отсутствием эндорфина, благодаря которому хоть как-то скрашивается физический труд.

Пустота. За которую дают деньги, поэтому не уйти. Добровольная психологическая пытка. Символ свободного рыночного общества.

На суть труда накладывается соответствующая его организация. Например, требование мгновенных результатов. Представьте, совет Академии Наук решил финансировать разработки в каком-то новом жанре с самого острия переднего края науки. Проголосовали, утвердили и сразу же говорят лаборатории, которой это дело поручено: «завтра покажете результаты». Те в шоке — как завтра?! Да тут ещё пока неясно, что вообще делать. Только намётки есть. Только кой-какие эксперименты, из которых, быть может, следует наличие чего-то такого, что мы понадеялись найти. А им сообщают: «не будет завтра результатов — прикроем всё нафиг».

В надежде выкрутиться, лаборатория соглашается. Назавтра им всем сообщают, что они — люди с нетрадиционной ориентацией в плохом смысле этого слова. Напослезавтра — аналогично. Как долго человек протянет так? Он протянет годы. Но все эти годы будет чувствовать себя дерьмом, ужираться вусмерть уже пятничным вечером и не трезветь до понедельника. Он будет мысленно говорить: «ах так, да я тогда вообще ничего делать не буду». И незаметно следовать мысленно сказанному.

То есть, вместо того, чтобы показать человеку: «айда, это очень прикольно, ты сможешь, мы все затаили дыхание», — ему намекают: «ты — чмо, мы на тебя даже не надеемся, чтоб ты сдох, скотина».

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

Многие думают: чего такого, если остальные будут идиотами — мне ж проще, я ж буду вне конкуренции. Но диалектика тут такая: тебе ж проще, но ты ж тоже станешь слегка идиотом. Или даже совсем идиотом. Невозможно сохранить полную нормальность в окружении идиотов. Человек — существо коллективное. Даже гении, уходя в отшельники, становятся овощами. А нормальный в окружении идиотов — всё равно что отшельник.

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

Речь пошла про учёных, а я вроде как сначала говорил про программистов. Почему так? Потому что на этапе начала разработки программист — это учёный. Даже если он что-то уже сто раз делал, есть новые нюансы, их надо осознать. Токарь может всю жизнь вытачивать одну и ту же деталь, но программист не может раз за разом писать одну и ту же программу. Надо либо привнести новое, либо придумать, как усовершенствовать старое, чтобы его повторение заняло в сто раз меньше времени. А это — именно что научная деятельность.

Но именно её из программирования пытаются изгнать стремлением к мгновенному результату. И тут-то в полный рост встаёт диалектическое противоречие: подобное стремление к мгновенному результату не приближает его получения, а наоборот отдаляет. Сорванные на годы сроки сдачи проектов, это — результат стремления к быстрому результату. «Сделайте хоть как-нибудь, потом поправим». «Тут же всё понятно — фигарьте». «Чего думать, трясти надо». И это, самое козы́рное: «вы фигарьте, а в фоновом режиме доводите до ума».

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

Современные программные проекты имеют такие масштабы, что обычно количество людей, хорошо знающих устройство каждой их части, равно… нулю. Про достаточно большие программы ни один человек не знает, как работает каждая их деталь. Это просто физически невозможно узнать, поскольку совокупное время разработки измеряется в сотнях тысяч или даже миллионах человеко-часов. Благо, значительная часть этого времени делится между тысячами проектов, путём повторного использования кода, поэтому каждый проект по отдельности отнимает ощутимо меньше времени, но плата за это — несуществование людей, знающих каждую деталь.

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

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

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

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

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

Если же при этом ещё и отношения в коллективе не ахтец — получается вообще полный швах. А такое — тоже не редкость.

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

Только тут уже не тело — тут душа.

Эта статья на «Однако»



Метки:

Кто все эти суки, что мешают? Я-то понятно, но неужто и у провидения врождённые психические недостатки?

Верно подмечено

интересно написано и с душой. ИУИ будет доволен. Спасибо.

Подпишусь не только под каждым словом - под каждым пробелом.

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


Добавить надо - предпосылки и структуру явления. Ибо многое - неустранимо, а что-то можно поправить.

если всё-таки про программирование

Большинство решений принимается так, будто их берут из личного контакта с потусторонними силами. То есть, из концепции «все делают так». При этом, почти никто не может ответить, откуда он узнал, «как все делают», и, тем более, почему «все делают это» правильно. Вроде бы, кто-то читал когда-то какую-то книгу и там было написано, что, де, вот так и всё такое. Вопросы типа: «а с чего ты взял, что автор не идиот», — считаются моветоном. «Как может автор быть идиотом, если он написал книгу»? Идиоты — только в нашем коллективе. Попытка анализа прочитанного на состоятельность воспринимается почти как бунт против тысячелетней религии. «Мы — мелкие сошки, достойные лишь смиренно повторять за небожителями».

у меня последние годы ровно обратная проблема - вижу несколько возможностей и как буриданов осёл не могу определиться.


Можно ли усовершенствовать концепцию? Есть ли в ней недоработки? На правильные ли постулаты опирался её автор? Соответствуют ли его условия нашему случаю? Ответ найти нельзя, потому что его негласно запрещено искать.

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

Re: если всё-таки про программирование

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

# Именно - интуиция - страшная штука, особенно по молодости, когда не забита опытом.

Тут есть несколько предпосылок:

1. Любимый мной time-to-market
2. Коммуникация - с ростом потока информации (вроде удваивается раз в 5 лет) сама по себе проблема передачи информации внутри коллектива - крайне сложный сюжет
3. Проблема архитектурного сопряжения хотелок и возможностей
4. И главное для программирования - ОТСУСТВИЕ стандартизации как таковой. Сраный миллионы библиотек и нету standards body для управления и унификации, равно как и возможностей заставить производителей следовать стандартам и обеспечивать совместимость.

Вполне справедливые замечания. Единственное, с термином time-to-market не знаком. Ну, где-то на уровне подсознания я представляю себе, что это такое, только правильно ли?

Хотя все Вами перечисленное имеет место быть, но относится к рациональной стороне проблемы. Я же обратил внимание, скорее, на иррациональную сторону вопроса, моральную, что ли, или даже духовную. Тут, на мой взгляд, смысл сводиться к вопросу, что заставляет человека играть в игру под названием "бизнес"? Ответ прост -- жизненные обстоятельства. Может, человек вовсе не собирался играть. Может, он вообще играть не любит, но приходится.
В общем, вот в таком спектре я увидел смысл публикации "неизвестного мне коллеги-айтишника", а у Лекса он мне показался еще шире. И, честно говоря, я даже и не знаю, как в данном контексте выявить предпосылки и структуру явления.


В первичной работе речь идет о бизнесе. Отсюда и ощущение бессмысленности у исполнителя. Смысл бизнеса - прибыль владельца. А для исполнителя смысл - участие в обмане. Если исполнитель станет владельцем бизнеса, то смысл сразу откроется. С учетом того, что весь бизнес в России сейчас спекулятивный - смысл действительно уловить непросто. Это первое. И второе - предлагаю авторам поменять сферу деятельности. Из бизнеса перейти в науку. Там смысл сразу откроется - наблюдение за природой. Прекрасное занятие, самое интересное на свете.
Короче - ощущение смысла дает культура. А бизнес - обман. Все просто.

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

Прочёл.
Полностью поддерживаю - причём сам наблюдал такую ситуацию вживую, в развитии,
и сегодня она пришла точно к описываемому состоянию (несмотря на то,
что такое состояние должно, вороде бы, быть некоторым преувеличением).

Кстати, весьма характерно, что с 91 года нас, весь народ, упорно пичкают вещами вида
"какие вы сволочи, гады, дебилы, антидемократичные, нетолерантные, оккупанты" и т.д.

Раб пытается придумать себе обоснования: «ему нравится именно это», «он так и хотел», «он не любит суетиться». Жрец уверяет, что нет счастья выше, чем сражаться за волю богов. И они оба как бы вычёркивают себя из списков имеющих право на эту самую волю. У них её нет. Их воля — служить ими непознаваемому.

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

тоже был программистом, но уже давно архитектор и заказчик систем
на мой взгляд
1. каждому программисту и инженеру должны объяснять более крупные цели его руководители, по крайней мере, я так делаю
2. обязательно нужна группа архитекторов системы и баз данных, без них все будет так как описано в статье
3. всегда нужно иерархически-построенная документация на все уровни системы
- спонсорам или заказчикам
- пользователям (vip и обычным)
- программистам (по API и хотя бы комментарии)
- сисадминам
- сервисным ИТ
- ну и самим архитекторам СиБД, их могут ведь тоже заменить

0. Нужно, чтобы у всей этой кодлы был ОДИН более-менее здравый начальник, который может вломить нижестоящим по мозгам и велеть "Делать вот так и так, шаг влево-вправо - уволен". А то ведь в крупных корпорациях ответственность за проект/продукт размазана по куче людей и они непрерывно срутся друг с другом за собственные не имеющие отношения к делу интересы. Особенно этим славятся упомянутые в п.2 "группы архитекторов"

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

> На фоне написанного, странно выглядит упорное нежелание автора согласиться с тем, что программирование деградирует.
Это, наверное, потому что, "деградация программирования" не совсем корректное определение, точнее, совсем не корректное. Ровно с тем же успехом можно говорить о деградации математики или ядерной физики. Деградация скорее заключается в требованиях к уровню квалификации программиста. Разберется программист в чужом коде и сможет его сопровождать -- подойдет работодателю, а уж тот факт, что владеет ли программист теорией реляционных БД, ООП и умеет их применять - работодателю до лампочки.

> Из вдохновенного творчества оно всё больше и больше превращается в рутинное ремесло с соответствующим результатом.
С первой частью вполне согласен, а вот на счет соответствующего результата - не совсем. Рутинная работа, в подавляющем своем большинстве, приносит вполне себе неплохие результаты. Другой вопрос, сделано это с душой и по всем канонам или так, чтобы хоть как-то работало? Руководству виднее. Отсюда и Ваше высказывание...

Напомнило Тома ДеМарко - "Deadline. Роман об управлении проектами".

(Удалённый комментарий)

Re: Ответ на вашу запись "Маниакально-депрессивный деве

Всего хорошего.

О! Роскошно, роскошно написано. Описывает мой опыт последних, э, 15 лет. Т.е. практически весь мой опыт работы в США. Но я, кстати, где-то понимаю, почему так происходит. Это хороший способ менеджерам превратить стаю котов в стадо скотов.

Последнее предложение зажигает. Сейчас сам думаю, как бы не создать такую ситацию у себя на проекте. А оно идет к тому ;(

?

Log in

No account? Create an account