30 лет программирования в лицах

Original author: Fun boy
  • Translation
Статья без начала, в которой автор рассказывает о невыносимых типажах людей, с которыми он работал за последние 30 лет, с эпилогом переводчика

Я закончил колледж 30 лет назад. Моей первой работой была разработка испытательной аппаратуры для Univac. Это были бы замечательные времена, если бы не…

Грег Скрытный


Здесь я впервые столкнулся с человеком, который считал, что не помогать другим и не отвечать на вопросы — это некая форма гарантии занятости — его занятости.

Однажды я рассказал в общих чертах о проекте, которым я собирался заняться. Грег внимательно выслушал и сказал то же, что и обычно: ничего. Я провозился с реализацией неделю или две, пока не обнаружил, что мой подход в корне неверен. Я спросил об этом Грега, и он ответил, что для него это было очевидно с первого взгляда. Знаете, он ничего не сказал мне! Будь я его боссом, я бы его уволил.


В 1984 году я ушел из команды Univac в компанию, которая занималась автоматизацией складов. Это была лучшая работа за время моей карьеры, если не считать…

Ион Некомпетентный


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

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

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

Гэри Придумано не здесь


Скорее всего, вы работали с Грегом или Ионом, но держу пари, вы никогда не встречали Гэри!

Итак, в 1985 году я попал в небольшую компанию, которая занималась мониторингом времени отклика каналов связи. Я понял, что влип, как только оказалось, что моей работой было перенимать опыт у Гэри и наводить порядок в его трудах.

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

Я поинтересовался у Гэри, что происходит и почему. Оказалось, что однажды Гэри нашел баг в ассемблере, и с тех пор ему не доверял. Он выучил наизусть коды операций для процессора 6809, писал свои программы в шестнадцатеричном коде, вычислял свои собственные jump offset, сам выполнял преобразования в ASCII и вводил свои коды в отладчик, который сохранял образ памяти на винчестер.

Точно так же Гэри не доверял операционным системам. Он написал свою собственную для устройства, с которым он работал — все низкоуровневые процедуры доступа к винчестеру и монитору, все математические библиотеки, все в шестнадцатеричных кодах.

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

Роджер Фанат Рефакторинга


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

За много лет он привык работать в одиночку, но однажды его назначили руководителем команды из шести человек, включая Иона Некомпетентного. Как обычно, Ион провалил свое задание, потратив на это два месяца; после его перевода в другой департамент я переписал его код за два дня. После этого код попал в руки Роджера, который решил, что код недостаточно эффективен. Следует отметить, что ни скорость выполнения, ни используемая память не имели решающего значения для моей задачи — но для Роджера это было непринципиально.

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

Тем временем остальные ознакамливались с кодом Роджера. Это оказалось напрасной тратой времени. Роджер постоянно реорганизовывал и переписывал свой код — потому что он придумал лучший способ его написать или просто лучшее название для переменной. Это сводило нас с ума.

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

Я? Я сбежал из этого отдела при первой возможности.

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

Комментарий переводчика.
Эта статья заинтересовала меня тем, что мне трудно решить, согласна ли я с автором.
С одной стороны, действительно тяжело работать с людьми, с которыми нельзя обсудить твои идеи, которые все время заваливают свое задание или лезут в твой код без согласования с тобой, не говоря уже о неподражаемом Гэри :-)
С другой — записки автора относятся к 80-ым годам. В начале развития индустрии ИТ каждый программист был гением и энтузиастом своего дела, и команда была именно командой единомышленников, которые не раздражались друг на друга из-за пустяков, если работа шла, и были вынуждены притираться друг к другу, потому что альтернатив не было. Сейчас индустрия ИТ разрастается и взрослеет, и состав людей, работающих в ней, становится более усредненным. Программисты перестали быть яркими личностями и творческими бунтовщиками, став просто людьми, выбравшими этот вид деятельности — играющими в игры и живущими не только работой. Гении будут продолжать раздражать остальных, оставаясь незаменимыми, а остальным было бы неплохо сделать небольшое усилие, чтобы не раздражать друг друга.
Вот было бы здорово, а?
Share post
AdBlock has stolen the banner, but banners are not teeth — they will be back

More
Ads

Comments 75

    +54
    У автора почти нет мании величия:
    «Мой исходный код был изящным, легко читаемым и легко отлаживаемым»
    «Я переписал за два дня»
    «Я написал за 10 минут чумовой супербыстрый и легкий код» и так далее.
      +11
      Ага, мне тоже это царапало глаза при переводе. Кстати, он тоже страдает тем же переписыванием чужого кода, в котором он обвинял Роджера.
        +9
        Роджер страдал не манией переписывания чужого кода (или не только ей). У него проблема с преждевременной оптимизацией. Это болезнь присуща студентам и программистам на языках от С++ и ниже. На некоторых языках очень сложно абстрагироваться от технических деталей имплементации и начать делать бизнес-задачу.
          +8
          Его код, в отличии от Роджера, работал. Это ключевой момент.
            0
            В статье ни слова о том, что он работал.
              +3
              > Я полностью переписал его за три дня. После этого я переписал низкоуровневый код в самом устройстве; мой код работает там и по сей день.

                0
                тот код, который он переписал перед Роджером

                >после его перевода в другой департамент я переписал его код за два дня.

                Так то это был не код описанный выше. А об этом нигде не сказано, что он работал. Вообще работающий прототип они написали через енное время. Автор — программист, поэтому нужно следить за его «пассами руками» — он мог сказать правду, но это не значит, что всё так как вы поняли :)
          0
          Да на самом деле ничего особенного тут нет. Редко встретишь талантливых программистов даже сейчас, не говоря уж о разработчиках. Я за 10 лет IT работы знаю только 2-х талантливых.
            0
            спс, кто второй?
            +1
            Кто не считает свой код изящным?
              +2
              Я :-P
              Нет, правда, иногда по желанию заказчиков приходится такое Г писать, аж самой неловко. Или если спешу сильно.
              • UFO just landed and posted this here
                +3
                Я.

                ИМХО, если автор уверяет через год-два, что его код изящный и чумовой — он либо мега бог, либо застыл на месте
                  0
                  Все сильно зависит от задачи. Да и вообще «все гениальное просто». Простое красивое решение запросто и через два года может оказатся простым красивым решением.
                    0
                    Никоим образом этого не отрицаю. Я имел ввиду сугубо субъективное отношение человека к своему коду.
                    Я думаю, если человек растет как профи, то через два года он расскажет как сделать это более простым и красивым способом. Но, по крайней мере, его рассказ об этом решении будет лишен такой доли воссторга, т.к. для него это уже привычное обыденное решение.
                      0
                      Ну, учитывая что персонажи в сабже спустя 30 лет вызывают у него бурю эмоций, что уж там пару лет? )
                  +1
                  Я.
                  Очень часто из-за скорости написания не получаеца писать красиво/изящно/etc.
                    +2
                    В процессе написания — считаешь, а через год-два взглянешь — такая бяка, оказывается, получилась :)
                  –4
                  Думаю автору надо было попытаться открыть свою фирму ешё 30 лет назад. Программирование здесь не причём, всё выше перечисленное аспекты работы на дядю.
                    +28
                    /irony mode on/
                    Glazik Стартапщик

                    При малейших нестыковках с коллективом рвёт и мечет, требуя открывать отдельную фирму, отдельный город, отдельную страну.
                    /irony mode off/

                    При чём тут начальство? Описывается конкретно коллектив.
                      +2
                      автор сам говорит, что если бы он был босом то уволил бы…
                      если бы он был босом то сам бы собирал комаду с которой работал бы
                      именно автор статьи написал эту статью, а не кто то из его коллектива, а значит у него есть свой взгляд на вещи

                      вот.
                        0
                        >именно автор статьи написал эту статью

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

                          И систематическая имитация бурной деятельности делает свое дело — начальник думает что этот человек стоит своей зарплаты и своего места.

                          Вспомните институт и тех преподов, которые ничерта не зная, всячески изображали себя богами :) Тут то же самое.

                          P.S.: Разумеется, это относится к крупной компании, в которой хреново поставлен менеджмент (иначе бы все это всплыло бы через месяц).
                        +1
                        В комментариях к исходной статье автор говорит, что у его отца был свой бизнес, ему не понравилось, и вообще автору нравится иметь регулярные рабочие часы, свободные выходные, оплачиваемый отпуск и 401К в год — то есть то, что у него есть сейчас.
                          +3
                          Если б мне в отпуск можно было телефон выключить, я б и на неоплачиваемый согласился… :)
                            0
                            А что такое «401К в год» ;)?
                              0
                              401k денег. В америке принято указывать зарплату за год.
                                0
                                Эта сумма слишком велика даже для годовой заработной платы разработчика.
                                  +2
                                  Вы правда думаете, что после 30 лет работы он всё еще обычным кодером вкалывает? :)
                                    0
                                    Хоть ниже и дали правильный ответ, но тем не менее управленческие позиции в IT имеют оклад в 85-120K в год. )
                                      0
                                      Ок, я не знаком настолько с их реалиями.
                                        0
                                        не только управленческие позиции. Правительственные конторы и сабконтракторы тоже предлагают подобную сетку. Сейчас, по крайней мере.
                                        0
                                        Билли???
                                      +2
                                      А точно-точно имеется в виду не пенсионная программа 401(k) ;)? 400k долларов — это зарплата Обамы, к слову.
                                        0
                                        Мм, вполне возможно. В оригинале про «в год» не было, впрочем, скобочек вокруг К тоже, так что интерпретация моя.
                                          0
                                          именно она. Написание может отличаться, но это и есть пенсионная программа.
                                          0
                                          0
                                          401К — это программа, когда работодатель из твоей зарплаты изымает энное кол-во денюжек, добавляет от себя какой-то процент, и отправляет эти денюжки в, выбраный тобой, фонд. денюжки эти налогом не облагаются и к 65 у тебя есть пенсия. как-то так.
                                      0
                                      Я думаю, что отдельные проявления можно наблюдать и в наше время. Особенно в крупных компаниях.

                                      А вообще, после прочтения текста мне сразу вспомнился Dilbert.
                                        +3
                                        Проклятье, я теперь так и никогда не узнаю про Майка Архитектурного Астронавта. Буду вот гадать.
                                          0
                                          Ага, меня тоже терзает этот вопрос. Выгоревший и Аутист — это понятно, но Майк остается для меня загадкой. Будем страдать вместе :-)
                                            +5
                                            Вы в интернете или как?

                                            The Architect Astronaut is trying to solve a real business problem, but the mistake they make is thinking they can solve multiple problems with a single solution. So they abstract higher and higher until they’ve lost sight of the original problem and can only focus on the abstractions.
                                              +1
                                              Мм, видимо, «или как» :-) Mea culpa :-)
                                            0
                                            Зато я его знаю, только его зовут не Майк, а Рой. Та еще песня, с припевом.
                                            Мужик совсем не дурак, но умудряется приводить в изумление буквально на пустом месте.
                                              0
                                              В общем виде про таких можно почитать тут:

                                              local.joelonsoftware.com/wiki/Не_дайте_Астронавтам_Архитектуры_вас_запугать
                                                0
                                                Немного смешивают маркетологов и евангелистов с архитекторами. У первых двух — работа такая, им за это деньги платят. А вот архитектора надо притормаживать, пока он «не улетел слишком высоко».
                                              +4
                                              самое страшное что все эти Греги, Ионы и т.д. встречаются в повседневной жизни.
                                              есть люди которые с красными глазами бьют себя по груди и доказывают что они лучшие из лучших, а при этом действительно хорошие программисты сидят тихонько в углу, делают свою работу и с усмешкой наблюдают за первыми.
                                              но часто из-за первых — вторым приходится терпеть большие неудобства.
                                                +1
                                                Ну так автор такой и есть. Не спорил, кому-то что-то доказывая, а просто тихо делал свою работу, временами делая работу за других.

                                                Не понимаю, чем всем так автор не угодил. Всё правильно, с фактами, по полочкам. Или рассказывать о себе положительно — значит сразу говнюк?
                                                  0
                                                  я говорю что автор все правильно написал.

                                                  есть люди самокритичные — это ценится людьми но плохо для самокритичного. а есть те кто думает о себе положительно — и это хорошо но люди его заклюют
                                                    0
                                                    > есть люди самокритичные — это ценится людьми но плохо для самокритичного. а есть те кто думает о себе положительно — и это хорошо но люди его заклюют

                                                    Заклюют, по-моему, только в России и ко. В остальном мире нужно уметь рассказать о себе без критики :)
                                                      0
                                                      это и есть наша беда
                                                0
                                                Есть ссылка на оригинал?
                                                  +1
                                                  Это же топик типа «перевод» — ссылка «Fun boy» рядом с моим ником. Там серия коротких зарисовок, я их объединила.
                                                    0
                                                    Точно. Спасибо
                                                  +4
                                                  Добавлю ещё один типаж из своего опыта.

                                                  Въедливый Джек.

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

                                                  В общем, в отличие от вышеперечисленных типажей, Джек обладает уникальным свойством активного нанесения психического урона. В этом качестве он сравним разве что с Роджером.
                                                    0
                                                    Кстати, Джек может оказаться вашим начальником. Тогда вам капут. По 10 раз за день во всех подробностях разжевывать свою деятельность — ни с чем несравнимое удовольствие.
                                                      0
                                                      Естественно лучше, чтобы Джек через 2 месяца узнал что проект не готов.
                                                        0
                                                        Это вы не про Джека. Совсем другой типаж. А вам «Daily Standup» в помощь.
                                                          0
                                                          Спасибо, действительно вчитавшись понял, что с типажом промазал.
                                                      • UFO just landed and posted this here
                                                          0
                                                          Вариант в основном для фрилансеров. Нужно будет отрабатывать навык «посылания в лес» в нерабочее время.
                                                      +6
                                                      Когда-то я работал в конторе, в которой тоже был один «анноящий тип». И как-то после одной из его очередных выходок, одна мудрая тетка сказала фразу, которую я всегда повторяю про себя, когда встречаюсь в жизни с тем или иным «анноящим типом»:
                                                      «Нас всех кто-нибудь терпит» — сказала она.
                                                      Возможно я или вы также раздражаете кого-то, и заставляете терпеть вашу придурь, поведение или просто ошибки, как кто-то другой раздражает вас.

                                                      Кто знает, может быть Гэри или Роджер напишут в своих воспоминаниях про Фэнбоя Самовлюбленного, или еще какого-нибудь. Или не напишут, потому что знают: «Нас всех кто-нибудь терпит».
                                                        0
                                                        Нужно оценивать положительный и отрицательный вклад человека и решать для себя. Компании создаются для того, чтобы производить продукт и зарабатывать деньги, а не для того, чтобы играть в «кто кого перетерпит».
                                                          0
                                                          Точно. А еще — если терпеть, то некоторые люди начинают вести себя все хуже и хуже…
                                                            0
                                                            Компании создаются для того, чтобы производить продукт и зарабатывать деньги, именно так, а не для того, чтобы радовать своих работников отсутстием в штате «идиотов», тем более, что для всех эти «идиоты» будут разные. Именно для этого в компании, ради производства продукта и зарабатывания денег, в том числе и на зарплату, необходима нормальная толерантная атмосфера, а не разборки «кто кому сегодня не нравится».
                                                          +1
                                                          Хотел сказать что и сейчас работаю с некоторыми описанными персонажами, но подумал — а может и я тоже персонаж.
                                                          Другими словами спорная статья… вроде «все кругом козлы, а я бабочка», а с другой стороны «кто без греха...». В общем отвечать нужно только за себя, а подставляя других перед начальником сам себе яму выроешь…
                                                            0
                                                            Спорно ваше отношение к автору, а типажи он описал вполне конкретно. И по каждому типажу можно сразу делать выводы:

                                                            Грег Скрытный — программист средней руки и таким и останется, если не изменит поведение. При увольнениях будет в первых рядах, так как не приспособлен к командной работе.

                                                            Ион Некомпетентный — проверять сделанную работу, если не справляется — увольнять.

                                                            Гэри Придумано не здесь — сдать в психиатрическую больницу пока не начались обострения.

                                                            Роджер Фанат Рефакторинга — можно работать, но только нужно поставить под начало более профессиональному программисту, чтоб прерывал поползновения уйти в рефакторинг на две недели.

                                                            PS: Въедливый Джек — в течение пары месяцев успевает достать всех вокруг, после этого увольняют.
                                                            +8
                                                            Похоже, он один из тех волшебников, которые приходят в команду, делают что-то очень быстро и качественно, потом меняют место работы, оставляя на прежнем месте легендарные воспоминания о себе и код, которые отмечен комментариями
                                                            #Написано легендарным Челом. Не удалять и не править. Использовать как образец.

                                                            Да, имя автора не указано, но это точно он: Чел Безупречный. :-)
                                                              0
                                                              Исповедь программиста, которого все знают, но никто не видел!
                                                                0
                                                                Надо бы еще стандартные типажи описать. В частности «Ковбой» и «Примадонна».
                                                                  0
                                                                    0
                                                                    Качество текста по ссылке плохое. И у нашего автора чувствуется, что он работал со всеми этими людьми.

                                                                    А по ссылке… Тихоня. Очень опасный тип характера. И вся опасность заключается в том, что он критикует начальство за спиной? Я это смогу пережить.
                                                                      0
                                                                      Это на самом деле кусок, вырванный из книги. Там было гораздо более пространное описание. Если кто подскажет оригинал книги — буду признателен.
                                                                  0
                                                                  Все просто — автора реально форматнул первый опыт общения с авторитетным программистом (я о Греге Скрытном). И дальше может и не напрямую, он демонстрирует усвоенную в программистском отрочестве модель взаимодействия с остальными: «Вот пусть они облажаються, а потом появлюсь Я!»

                                                                  Only users with full accounts can post comments. Log in, please.