Пользователь
76,7
рейтинг
25 августа 2012 в 19:50

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

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

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

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


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


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

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

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


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

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

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

Знакомо, а?

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


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

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


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

Так что да, мы оптимисты, мы на всё смотрим с гордо поднятой головой и интересом. Мы всегда будем такими. Много ли других профессий могут похвастаться тем же?
Перевод: swizec
Владимир @tangro
карма
713,7
рейтинг 76,7
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Спецпроект

Самое читаемое Управление

Комментарии (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
    Напоминает уже всем знакомое «Только у нас ...»

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.