Программисты — самые оптимистичные люди на свете!

Original author: swizec
  • Translation
Мы, программисты — самые оптимистичные люди, из всех, кого я только встречал. Спросите любого из нас, сколько времени займёт сделать ту или иную вещь — и вы получите супер-оптимистеческий ответ, очень далёкий от реальности. Это не потому, что мы специально стараемся вас дезинформировать и запутать, нет. И не потому, что мы глупы. Просто мы смотрим на всё с оптимизмом.

Вот есть проект, вот наши знания и возможности, вот ваши спецификации, вот Неведомые Загадочные Вещи… Последнее, конечно, самая большая проблема. Нельзя заранее предусмотреть всего и есть большие шансы встретить в тихом болоте таких громадных чертей, что вся Королевская Рать будет их бороть очень долго. Но всегда хочется верить, что их не будет. И вот мы даём оценку времени «1 час», начинаем работать, встречается одна странность, вторая, баг в чужом компоненте — и вот уже на задачу ушел целый день, а она еще не закончена.

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


Медицинская история


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

Сегодня, спустя всего 6 дней, мне уже намного лучше. Я бы оценил прогресс выздоровления где-то на 90%. Сегодня утром я сделал 60 из моих обычных 150 отжиманий, попрыгал на скакалке и даже поднял правой рукой мой четырёхкилограммовый скейт. Я так думаю еще день-два и я напрочь забуду о моей травме. Получается, что доктор дал оценку прогресса моего выздоровления с троекратной погрешностью. На как же, чёрт побери, я рад, что он ошибся!

Программерская история


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

Я не справился.

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

Знакомо, а?

Программисты очень оптимистичны


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

Все программисты постоянно:
  • Ныряют с головой в омут новых непонятных проектов с постоянно меняющимися спецификациями
  • Берут новые неизвестные им инструменты, применяют их в непонятных целях и… получают желаемый результат
  • Попадают в новую вселенную с каждым новым проектом
  • Постоянно переходят на новые языки, платформы, базы данных, устройства и т.д.


Любой, кто не является отъявленным оптимистом просто не выжил бы в профессии программиста.

Так что да, мы оптимисты, мы на всё смотрим с гордо поднятой головой и интересом. Мы всегда будем такими. Много ли других профессий могут похвастаться тем же?
Share post

Comments 61

    +11
    Спасибо за оптимистичный топик в выходной день)
    P.S. > Постоянно переходят на новые языки, птатформы, базы данных, устройства и т.д.
    Ага, обновилась сегодня Ubuntu 12.10 Alpha, поставила новые пакеты mesa и тем самым убила работоспособность Compiz.
    Пол часа поиска проблемы и скачивания старых версий пакетов для отката — и вот я полный оптимизма пишу багрепорт на launchpad.
      +4
      А кто вас просил использовать альфа-версию дистра на боевой машине?
        +1
        Я её, собственно, и процитировал.
        В погоне за новыми версиями попадаются вот такие сюрпризы. С другой стороны — нужно же кому-то тестировать продукты в реальных условиях.
        Но после продолжительного альфа-тестирования Ubuntu 12.10 буду, наверное, теперь ставить только бета/финальные релизы.
        0
        Re: Постоянно переходят на новые языки, платформы, базы данных, устройства и т.д.
        … и натыкаетесь на дубликат, поскольку все базовые поломки уже всем известны. В частности, на данный момент сломаны пакеты драйверов ATI и NVidia и пока намеренно не чинятся. Ручная установка последней версии драйвера NVidia приводит к неизбежному падению xorg при запуске unity, gnome-shell, firefox и прочих glx-приложений. Opera недорисовывает интерфейс, Chrome периодически исполняет Малевича. Разработчик NVidia пишет, что мы сами виноваты, что пользуемся бета-версией Xorg с новым ABI, который они не поддерживают (но люди ждут), ответа ATI я не видел. Таким образом, пересборка пакетов не выгодна, поскольку просто убьёт Xorg окончательно.

        Касательно альфа-версий Ubuntu, нужно обладать навыками по восстановлению сломанной системы и мягче воспринимать нестабильность (ага, мягче. Лично у меня так накипело, что пишу оффтопик-комментарий). Ежедневные сборки на работоспособность вообще мало кто проверяет, может свалиться на середине установки. Но зато потом получаешь самое свежее ядро, ещё не вышедший xserver, unity+related, решатель всех проблем Apport и много чего ещё интересного. И оно того стоит.
          0
          Re: Постоянно переходят на новые языки, платформы, базы данных, устройства и т.д.
          Не только дубликаты, на моем счету уже несколько багов, которые я нашел первым, за некоторые просто проголосовал, чтобы поднять уровень важности бага, что тоже полезно. Драйвера видео использую открытые после четырех неудачных попыток обновления дистрибутива с fglrx и кастомным ядром на нескольких компьютерах.

          На счёт альфа-версий целиком и полностью согласен. Banshee крешится уже больше недели при старте либо переключении трека, и только раз из 30-40 он как-то так запускается, что потом целый день играет без падений — мистика да и только. Но нервы закаляет здорово, и эйфория какая, когда баг правят — наконец оно работает как надо!)
        +27
        Спустя 6 дней после перелома отжиматься — это мегаоптимистично, имхо. Пожалейте себя :)
          +1
          Это перевод
            +43
            Ну тогда все в порядке! Возможно, автор с другой планеты, где переломы менее чем за неделю срастаются.
              0
              Возможно, что автор статьи != автор перевода и стоит обращаться напрямую.
          +3
          Какая же это правда.
            +29
            Мне почему то эта статья напомнила. У нас в конторе (провайдер телефонии и интернета) взаимные приколы отдела ИТ и телефонии. Последний прикол телефонистов был такой — "Быстрее всех эволюционируют системные администраторы — каждый новый спрашивает: что за тупица это далал?".
              +7
              Особенно оптимистичные — Web-программисты
                +9
                Когда заказчик просит IE6
                  +6
                  Когда у заказчика IE5.5…
                    +7
                    О чём он сообщает в ходе приёмочного тестирования.
                      +8
                      …происходящего с выключенным джаваскриптом.
                +2
                А я вот хочу кинуться в омут node.js, переписав проект, который писался только мной около 2х лет и не понятно сколько до меня… Оптимизм, такой оптимизм =)
                  +3
                  Ну не отчаивайтесь, у вас уже построена логика, просто нужно сменить язык :) ( ну а там найти гору либ на замену, освоить асинхронность ноды, небольшие затупы на замыканиях и все в порядке )
                    0
                    … На все провсе пару недель))))
                  +4
                  Через несколько дней после перелома отжимается, молодец какой. И в зрелом возрасте может бодро шагать за инвалидностью по причине практически мертвой, из-за того, что не дал корректно восстановиться хрящевым и прочим тканям, руки
                    +11
                    Тут особый случай — это писал Чак Норрис.
                      –2
                      image
                        +1
                        И отжимается-то он не руками, а подбородком
                        +1
                        а ведь от такой нагрузки кость могла бы сломаться повторно прямо во время упражнения! вот вам и оптимизм
                          +3
                          Думаю, там какое-то недоразумение. Это просто невозможно — делать такие упражнения на шестой день после перелома плечевой кости. Возможно это вывих
                            0
                            Если это вывих, то хрен бы он ей пошевелил на 6 день, вывих плечевой кости — это 2-3 недели минимум в гипсе, а потом еще минимум столько же — фиксирующая повязка. Инфа 100%, сам и вывихивал, и ломал, причем как раз ту самую правую руку.
                            0
                            Я думаю, он отжимался на левой руке. Все-таки, 60 из обычных 150.
                            Ну или закрепил руку так, что на сломанное место нагрузка не приходится.
                              –1
                              ну, может, он отжимался на одной руке?
                              обычно он делал по 150 на каждой, но тут гипс мешает…

                              image
                              +16
                              Мы, программисты — самые оптимистичные люди и все остальные люди нам завидуют (так и просится добавить)
                                +10
                                А я думал, что один не могу сроки оценить. Надеялся, что все из-за неопытности.
                                  +15
                                  Был даже чей-то именной закон: любая работа занимает в два раза больше времени, чем планировалось, даже если при планировании учитывался этот закон.
                                    +2
                                    Мой замдекана любит говорить, что в пи раз больше времени нужно. Впрочем, он со студентами дело имеет, так что...)
                                      0
                                      Ну если препод в универе хочет, чтобы студенты действительно успели к сроку, то ему и правда нужно называть время в пи раз большее того, что он называет.
                                        +2
                                        Часто слышал формулировку: «Возьмите оценку программиста, умножьте на пи и добавьте две недели». %)
                                          +2
                                          И так π раз.
                                            +1
                                            Я слышал немного по-другому: умножьте на два и поменяете единицу измерения. Час на день, день на неделю, неделю на месяц и т.д.
                                          0
                                          Это Закон Джесса Либерти — автора книги «Освой самостоятельно C++ за 21 день» :)
                                            0
                                            Не могу найти его биографию — но точно закон его имени мог быть в книге 1968 года издания?
                                              0
                                              Очень навряд ли :) В его версии это звучало примерно так: «По закону Либерти разработка программы занимает всегда больше изначально предполагаемого времени, даже если сделать поправку на закон Либерти».

                                              В любом случае, с таким-то названием книги это звучит достаточно иронично.
                                              +1
                                              Т.е. правильно — «Освой самостоятельно C++ за 42 дня»
                                                0
                                                Выше в комментах добавляют, что нужно сменить единицу измерения.
                                                Так что «Освой самостоятельно C++ за 42 недели»
                                                  0
                                                  Всё равно оптимистично)
                                            0
                                            У нас просто умножают на три все сроки, что вылетают из уст программистов :-)
                                            +1
                                            Значит болезнь Альцгеймера нам не грозит!
                                              0
                                              Тоже подумал про эту статью когда прочитал заголовок. Все-таки не все оптимисты, или я не программист)
                                                +1
                                                Особо не обольщайтесь: оптимизм может привести к депрессии, когда реальность обломает ожидания (
                                                0
                                                Узнал себя целиком и полностью, простенькая задачка на пару дней делалась две недели и потянула за собой тонну переписанного кода и исправление старых багов, о которых я даже не догадывался.
                                                  +7
                                                  Сегодня, спустя всего 6 дней, мне уже намного лучше. Я бы оценил прогресс выздоровления где-то на 90%. Сегодня утром я сделал 60 из моих обычных 150 отжиманий, попрыгал на скакалке и даже поднял правой рукой мой четырёхкилограммовый скейт. Я так думаю еще день-два и я напрочь забуду о моей травме. Получается, что доктор дал оценку прогресса моего выздоровления с троекратной погрешностью. На как же, чёрт побери, я рад, что он ошибся!

                                                  Глупости это, максимализм и дурость. Я пришел к выводу, что лучше не выпендриваться а сразу при любой травме идти к хорошему врачу и делать все как он скажет. Тк один раз сломал ключицу и просто очнулся, сел снова на велосипед, поехал домой и лег спать не раздеваясь, тк не двигалось плечо. Думал полежу и отпустит. И в скорую позвонил утром, когда под кожей увидел торчащий обломок кости. Тут все срослось, чуть криво, но вполне допустимо. А второй раз повредил голеностоп на тренировке по тайскому боксу, но продолжил тренировку. И только на следующий день, когда нога стала в 2 раза толще и синяя — вызвал скорую. И затем (по вине правда уже не своей глупости а одной твари) через 2 недели после травмы (пришлось) прошагал по гололеду километров 5. В итоге я уже более полугода (7 меяцев!!!!) мучаюсь от воспаленного голеностопа и спустил на лечение денег как на весь свой тайский бокс вместе взятый. А если бы не выпендривался, пошел сразу к врачу, вел бы себя дальше аккуратнее и эгоистичнее — сейчас бы бегал и прыгал.

                                                    +1
                                                    Мне кажется, автор плохо сформулировал мысль, а я перевёл как есть (хотя может быть стоило переписать эту часть полностью). Мысль в том, что доктор в качестве критериев для оценки скорости выздоровления брал только объективные факторы: тяжесть травмы, скорость срастания костей и т.д. плюс позаботился о некоторой перестраховке — поэтому его оценка в 3 недели была даже «с запасом». Доктор не думал мыслей типа «ну вот этому пациенту повезет» или «ну я же классный доктор — у моих пациентов травмы за 2 дня должны срастаться». А программисты оптимистичны и потому так думают. Основная мысль данного абзаца в этом, а не в том, что надо слушаться врачей и не делать глупостей.
                                                      +3
                                                      Программисты реалистичны: они знают, что если выдадут реалистическую оценку времени, клиент пойдёт к другому программисту, не боящемуся изображать из себя оптимиста, а потом срывать сроки.
                                                      –1
                                                      Вы уже старый наверно ) у молодых все за два дня проходит)
                                                        +2
                                                        20 лет. И о том, что бы за 2 дня проходила травма в стиле «связки подорваны, место крепления связки к кости отслаивается, кость сломана» я не слышал. Тренировка была зимой при температуре -20, «холодные» связки, кости и все такое — сильно травмируются.

                                                        А вообще так долго тк изначально диагноз ложный поставили, врач не заметил очевидную трещину, которую принял за «неправильное развитие кости, так бывает» и я месяцев 5 лечил не то, что имел.
                                                      0
                                                      Очень кстати после этого поста.
                                                        0
                                                        А что за алгоритм, интересно?
                                                          +1
                                                          Время до дедлайна * 2 = идеал. Неважно, с какой степенью пессимистичности оценивается дедлайн…
                                                            –1
                                                            Спасибо за позитивный топик. я вот тоже с этими выходными ничего не успею закончить)
                                                            а пох, лето…
                                                              0
                                                              А я научился вполне оценивать время на реализацию компонентов. Не у себя — у программистов. Пока что практические наблюдения более менее подтверждают оценки. От программистских оно отличается разительно, да.
                                                                0
                                                                Я оптимистичен по жизни и по работе, но оценки трудозатрат делаю пессимистичные. Просто мысленно накидываю в полтора-два раза. Как правило, так рабочий процесс оказывается более здоровым, чем если не укладываться в сроки, которые сам же поставил. Так остаётся времени больше, можно ещё что-нибудь полезное сделать, заказчик доволен.
                                                                  +2
                                                                  «Программист должен или быть оптимистом, или застрелиться.» Джошуа Блох. Не прибавить, не отнять.
                                                                    +2
                                                                    «Так что да, мы оптимисты, мы на все смотрим с гордо поднятой головой и интересом. Мы всегда будем такими. Много ли других профессий могут похвастаться тем же?»

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

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

                                                                    P.S. А насчет переоценки сроков врачами, то это вроде бы связано с законодательством (я так понял речь идет про США). И лучше лишний раз перестраховаться накинув недельку другую, чем разбираться с пациентом в судебном порядке.
                                                                      0
                                                                      Напоминает уже всем знакомое «Только у нас ...»

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