Как стать автором
Обновить

Комментарии 181

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

Это очень хорошо, когда есть время на долгое планирование, но вспомним ситуацию, с которой, думаю, многие сталкивались.

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

Плюс поправку на длину проекта. Например, мы два года работали с заказчиком, который понятия не имел об итеративности разработки ПО и требовал, чтобы единожды исправленный баг не всплывал больше никогда, ни под каким соусом (и все последующие исправления делались бы за наши деньги). «Всего» за полгода удалось его перевоспитать и ввести стандартный цикл обратной связи.
В соответствии с МакКоннелом оценку стоит делать хотя бы потому, что без нее невозможно сказать, насколько цель близка к завершению. Но оценку нельзя сделать более точной только потому что от нее хочется точности.
Конкретных случаев очень и очень много. Этот рассказ просто расписывает один из них, и мои очень-очень расплывчатые «советы», естественно, актуальны только для него.
Для начала попробовать найти человека, который уже ходил этой дорогой.
Берем и читаем классику жанра «Мифический человеко-месяц». Для улучшения надо четко понимать:
Никакой «ползучей функциональности». Проще говоря, перед началом работы с проектом определитесь с тем что будет уметь система. Все а давайте еще сделаем «вот это» должно душиться в зородыше. Дополнительный функционал можно делать если у вас осталось время. Это как раз необходимо чтобы 400 миль не растягивались в 800.
Ведение четкого списка задач с получением оценки от исполнителей и умножением этой оценки на два. Все agile-методики строятся на простой вещи, короткие итерации и короткие задачи на них. С оценкой от исполнителей.
Ну и соответственно ведение всего этого не на бумаге, а в виде в трекере или системе управления проектами. В этом случае звоночек вы услышите задолго до реального возникновения проблем.
А такое бывает — чтобы «Никакой «ползучей функциональности»»?
Бывает. Фиксируйте функциональность бумагой. Плюс еще от этого спасают короткие итерации на которых она отсутствует в силу их малой длины. А в проекте это выливается только в увеличение количества итераций. Но в этом случае после каждой итерации на выходе должна быть работоспособная фича.
!!! Никакой «ползучей функциональности»!!! — В яблочко!!! От теперь дела пойдут!!!

«Был бы повпечатлительней, в уста бы расцеловал!»
Требование «никакой ползучей функциональности» иногда бывает несовместимо с бизнес-требованиями разработки проекта. Например, когда идёт постоянная доработка уже запущенного сервиса, и продукту необходимо очень быстро реагировать на рынок и реальное поведение пользователей.

Но при этом сама книжка потрясающая, конечно.
А в этом случае надо делать только короткие итерации с коротким списком задач.
А ещё есть вариант «Fix Time and Budget, Flex Scope» — время и деньги фиксированные, а функционал по ситуации (ну, есть какой-то неснижаемый минимум, конечно, но это на самом деле минимум)
То есть, возвращаясь к аналогии, чувакам в походе после окончания туалетной бумаги за ней в ближайший город не ходить, и вообще, сравнивая изначальный план и реальное побережье, не верить глазам своим?
Проблема не в ползучей функциональности, а в том, что разработчики сталкиваются с проблемами, на которые уходит больше времени, чем планировалось.
Именно для этого используется умножение сроков на два.
Или на пять.
Слышал, что иначе:
Возвести в следующую систему счисления и потом умножить на два. т.е. 1 час = 2 дня а 2 недели это 4 месяца.
Умножение на два — это странное заявление… Хороший исполнитель тем и хорош, что в частности, называет правильные оценки, а не заниженные в два раза. Если он даёт заниженные — значит он облажался: был слишком оптимистичен, где-то не докопал, не было опыта подобных проектов и т.д. Косяк это!

И почему именно умножать на два? Почему не на полтора или на три? :)

Да, короткие итерации могут помочь, это правда. Но и они не помогают, если, например, на стороне заказчика появляются новые люди с новыми идеями или заказчика покупает кто-то более крупный или у него заканчивается финиансирование… Я знаю несколько проектов, которые год делали честный скрам, а на выходи всё равно получили недовольного заказчика и дикое говно вместо проекта))
Умножение на два это типичная давно устоявшая практика. Некоторые умножают на 1.5 но типичный множитель два. Насчет того что хороший исполнитель дает правильные оценки. Он начинает давать правильные оценки со временем. Но в реальности x2 позволяет спасать всех от горящих сроков и в случае чего делать дополнительные плюшки.

Короткие итерации оправданы только в случае если после короткой итерации софт сразу идет в боевой режим. В противном случае ничего хорошего вы не получите. Из-за этого короткие итерации хорошо работают на различном софте разрабатываемом внутри компании и на сайтах. На заказной разработке это работает хуже и может приводить или к недополучению прибыли компанией (заказчик сказал мне хватит и этого а не сделана еще половина) или к перерасходу бюджета у заказчика (начали уходить в расширение побочного функционала).
В посте довольно четко описана ситуация — шли-шли и тут бац-забор/обрыв и дальше не пройти никак, приходится возвращаться и делать крюк. В ИТ бывают похожие ситуации, и иногда вовсе не потому, что плохо спланировали.
Есть отличный способ, но он никому не нравится:
увеличьте срок вдвое и измените единицу измерения на следующую.
Я слышал про «увеличить срок на 1 и единицу на следующую». Могу сказать, что работает очень точно: если я оцениваю задачу в 4 часа, то на нее, скорее всего, уйдет 5 дней. Потому что найти эти 4 часа, абсолютно свободные от постоянно возникающих мелких срочных задач, быстрее не получится.
Есть. Надо было всего-лишь пойти из Сан-Франциско в сторону Стоктона, а потом свернуть направа до Санта-Клариты. Там переночевать в мотеле за 20 баксов, выспаться и двигать дальше вдоль дороги.

Заодно поймать автостопом машину и доехать до друзей на 7 дней раньше?

В реальных проектах — здраво мыслить и находить аутсорс. Там, где кто-то потратит день на решение задачи и 100 долларов, другой сделает за 10 минут и за 5 долларов.
После того как романтизм разбился о скалы действительности, умный человек вышел бы на дорогу, словил попутное авто и доехал бы до пункта назначения вовремя. При этом все были бы счастливы: путешественники реально «прохавали» опыт и в будущем не допускали бы такой небрежности; при этом они не подставили своих друзей; и вместе в итоге они прекрасно поужинали в воскресенье.
Очень наглядная аллегория, так и есть — чем детальнее масштаб, тем больше ухабин.
40 миль в день — это 65 км в день. Это как-то дофига. Такая оценка — это, я б сказал, диагноз.

Уж если у людей есть рюкзаки, палатка и прочее, наверное, они не первый раз идут.
Если они хоть раз ходили, то могут представить, что 60 км в день они никак не пройдут, а если нет — тогда у них определенно нет мозга, начинать что-то, не имея даже примерного представления о том, что они могут.

Впрочем, не все веселые моменты упомянуты.
А как же насчет решили срезать, в результате заблудились?
А как же насчет я не взял воду, потому что у нас ее будет много — мы ж возле океана идем, а у меня опреснитель есть?
А как же насчет друзья попросили зайти купить им чего-нибудь в Санта-Барбаре, раз уж мы по дороге идем? Шар для боулинга, например?
Продолжать можно до бесконечности, на самом деле.
Что самое прекрасное, весь ваш комментарий тоже прекрасно на управление проектами переводится.
Поставлю коммент повыше. Но в статье написано: «Мой друг говорит, что раз мы прошли 40 миль за 4 дня...».
Самое начало:

«Путь займёт около 400 миль, в день мы можем пройти 4 мили в час по десять часов, так что придём мы туда примерно через 10 дней»
60 км в день вполне реально
по трассе или нормальной ровной дороге, но ни как не по пересеченной местности и песку
Я лично знаю людей, которые за день легко доходят из Краснодара до моря или по трассе (120 км) или по горам (80 км). Не знаю можно ли 10 дней идти в таком темпе, но 3 дневные походы точно есть.
Витензон А. С. в книге «Зависимость биомеханических параметров от скорости ходьбы» 1974 г. определяет следующие характеристики ходьбы здоровых людей в разном темпе:

Медленный темп: 2,196 км/ч
Замедленный темп: 3,276 км/ч
Произвольный темп: 5,148 км/ч
Ускоренный темп: 6,840 км/ч
Быстрый темп: 8,208 км/ч

Возьмем средний произвольный темп. Чтобы пройти 60 км необходимо 11.65 часов без перерывов. Не сомневаюсь, что есть люди, способные идти более 11 часов без остановки, но это что-то из области тех индейцев, которые способны несколько дней преследовать жертву.
без подготовки в среднем человек выдержит 1 день ходьбы по ровной дороге в произвольно-замедленном темпе 10 часов.
но утром он не встанет.
Если есть цель и он к ней идет, встанет. И пойдет. На третий день встать будет ещё сложнее, но он встанет и снова пойдет. И на четвертый встанет, потому что чувства уже притупятся. На пятый будет уже легче. А потом будет тонус. Просто потому что есть цель и он идет к ней, а не просто идет и не из под палки.
Вы это серьёзно? Попробуйте сами, поймёте на сколько ошибаетесь)
Серьезно. Я сам ходьбой на такие дистанции не занимался, но продолжительное время тяжелым монотонным физическим трудом — несколько раз. Один из таких — это копка котлована под гаражом, 8×5×2 м. с углублением под погреб 4×4×2 в августе-сентябре 2004 г. Первые дни болело все, но мы работали, на второй неделе было тяжело, но уже привычно, знаешь что тебя ждет, к концу августа единственная мысль, которой я себя тешил во время работы, что это все равно когда-нибудь закончится, я уеду дальше учится и уже сидя на лекции буду вспоминать, как я въебывал в этой яме. Мне становилось легче. И действительно, мы выкопали эту яму, отец продолжил строительство а я уехал и как-то на лекции вспомнил, как тяжело было вставать по утрам, махать лопатой и вытаскивать сырую глину, а теперь все просто шикарно. И по сей день в любой тяжелой ситуации я четко знаю, что я могу её осилить и что все когда-нибудь закончится и я буду об этом только вспоминать.

А вы-то сами пробовали? Понимаете, на сколько я ошибаюсь?
10 часов без перерыва идти и копать яму — это разные вещи.
Да, у меня как-то был шестичасовой заезд без подготовки на велосипеде. Я долго после того дня за велосипед не садился.
А в чем разница?

А если бы вам нужно было осилить 200-часовой заезд, как думаете, как бы вы тогда поступили, как ехали?
Я бы умер.
Да не (:
Я в такой ситуации на 3й день купил билет на автобус.
Сорри, что не в тему, но очень напомнило…
У меня был друг, с которым мы бегали по утрам. Где-то на 2/3 дистанции он дожидался трамвая, догонял на нём меня и добегали мы уже вместе. Но зато, он упорно продолжал бегать. Т.ч. каждому по потребностям :)
в выносливости. задачи разные.
на третий день человек, который постоянно походы не ходит и бегом не занимается — ляжет при 60км/день
И лопатой я не постоянно работал, а тогда пришлось и стал постоянно, тело привыкло со временем, нашлись оптимальные хваты и движения. С дуру-то любой ляжет с трудной работы.
Одна моя знакомая говорит:
«День не поешь, два не поешь, а на третий привыкнешь ;)»
На третий умрёшь ;)
Вообще, если говорить о велосипедах, обычно не ноги болят, а зад. Независимо от сиденья.
Но зависимо от веса. У меня зад начинает болеть раньше, чем у многих других. :(
У меня руки почему-то болели после трехчасового заезда без подготовки.
велосипед и ходьба тоже слабо соизмеримы. 100км в сутки на велосипеде (около 6 часов, если без пересеченки) — это практически отдых (регулярно так развлекаюсь), 60км пешком — тяжелое испытание (уже после 30км идти никуда не хотелось и темп из произвольного перешел в медленный).

в любом случае товарищи из повествования изначально очень переоценили свои силы, так что проблема не в сложностях на пути, а в том что сама оценка сделана на грани человеческих возможностей (если это и разумно для тренированных людей на первый день, но на остальные так не переносится). это как при планировании проекта, считать что в день будет написано по тысяче безбажных строк функционала (ведь один раз, в пятницу 13, 1998 года так и получилось).
И думаю, что не только на велосипед…
Все зависит от физической подготовки человека и его природных данных.
А ещё от веры в себя. По крайней мере я в это верю (:
Проводя параллель с топиком: вы оценивали, что дешевле — нанять экскаватор и вырыть яму за 2 дня или копать самому целый месяц?
Мой комментарий вообще с топиком слабо пересекается, я ответил на замечание, что человеку нереально подняться на следующий день после 10-часовой ходьбы.

Проводя параллель с топиком, сейчас я бы без вопросов нанял экскаватор и людей. Но тогда в 2004, у родителей видимо не было финансовой возможности это сделать и мы копали сами.
… вспомнил свою стройку в 2004м
именно тогда-было проще нанять людей и экскаватор за эквивалент трехдневной з/п в спирто-закусочном эквиваленте, чем самому неделю ломать спину. в `11м такое уже не прокатило
Помимо того, что копание и хождение по пересеченной местности (особенно такой как описано в статье) с рюкзаком на плечах это разные вещи. В случае вашего копания нету привязки к времени, Вы не считали сколько кубометров в день копаете, и сколько должны выкопать, а потому в вашем случае по большей части действовала монотонность работы, да и птание/отдых я думаю был несколько более комфортный, чем в походном режиме.
Да, вы правы, ценное замечание. У нас, конечно, был срок — конец августа, но мы были ответственны только перед собой. Это большая разница. В итоге мы все равно не уложились и учится я уехал тогда на неделю позже.
А кубометры мы считали (: И где-то с середины августа уже делали почти в два раза больше, чем в начале.
А на шестой день его увезет скорая?
Человек без подготовки не сможет в таком темпе идти пять дней. Он банально сотрет ноги в кровь, сорвет мышцы и потянет связки. Вопрос не в психологической подготовленности, а в том, что человек не готов будет к этому физически.

Это все равно, что человеку, который никогда не качался, вдруг дать штангу 100 кг и сказать, что если захочет, то поднимет.
Человек адаптируется очень быстро. Иначе бы мы давно уже как вид вымерли. Не надо идти в одном темпе, надо подстраиваться. Когда идет марш-бросок, солдата не спрашивают, мозоли у них там или ноги болят. И они не готовы к марш-броску, если вы думаете: «Ну они ж солдаты, им положено». Мозоли заклеиваются тремя пластырями друг на друга, а люди терпят.

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

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

Неподготовленный человек даже пройдя 2-3 часа на утро будет страдать.
Знаю, тягал железки. Почитайте выше, я говорил про веру в себя и преодоление физических трудностей.
Значит вы неплохо подготовлены физически. И даже если очень давно вы были в хорошей форме, а сейчас все запустили — в любом случае ваши ресурсы выше, нежели у тех, кто никогда «не был в форме».
Я вот тоже себя могу морально заставлять преодолевать…
Только боком это может вылиться:
Сколько то лет назад восстанавливал растяжку и переусердствовал «не слушая организм» и получил болевой шок.
Не так давно так же превозмогал себя на тренировке и остановился когда реально посинело в глазах (как оказалось у меня пульс «выстрелил» выше 200 ударов в минуту).
Так что превозмогая себя неподготовленный человек может нанести реальный вред своему здоровью.
Вера в себя не поможет снять отек с мышц, не поможет снабдить кислородом, вера в данном случае как и любой фанатизм сделает только хуже, это может привести к сильному воспалению, к повышению температуры и т.д. В итоге можно заболеть очень не слабо, можно заработать проблемы с сердцем, можно заработать к примеру гипертонический криз, тогда точно о походе можно забыть.
Согласен. Тем более, чем старше человек, тем больше мыслей о здоровье. У меня брат-студент, я вижу его окружение, никто среди них не думает особо о здоровьи.
И вера должна быть без фанатизма. Помимо веры ещё мозг нужен. И хорошее их сочетание, я считаю, позволяет человеку преодолевать трудности, двигаться вперед, совершать открытия.
НЛО прилетело и опубликовало эту надпись здесь
Прохожу по 15 км меньше чем за 3 часа без проблем (если не жарко и не холодно на улице, нет дождя и т.п.) где-то раз в год. Спортом не занимался, виду сидячий образ жизни, курю как паровоз, врожденная патология сердца (хотя и прооперированная). Почему я не страдаю на утро, а даже чувствую себя лучше, чем если бы не ходил (за три часа протрезвеваю :) )?
Всё болеть будет, но встать и ходить вполне можно. Проверено. Только желательно обувь другую одевать, в той, что вчера ходил, будет очень не удобно.
О, хоть один человек нашелся, кто говорит, опираясь на схожий опыт.
Куда ходили и почему во вчерашней обуви будет неудобно?
Я ходил на соревнованиях www.runcity.ru по Питеру и Москве. Правда, там можно общественным транспортом пользоваться в той категории, что я участвовал. Но 12 часов на ногах всё равно проводишь плюс до старта доехать и с финиша до дома. Это с учётом того, что не бегать, а именно ходить пешком.
Неудобно во вчерашней обуви, потому что ноги болят и нагрузка опять идёт на те же места, а другая обувь по другому на ногу садится, уже другие мышцы работают или те же самые, но по другому на них нагрузка распределяется. В общем, я не знаю, как это по научному, а по опыту — просто так легче передвигаться.
По традиции каждую весну хожу на майскую прогулку (50 км), маршрут проходит за городом, и местами по шпалам и полу-болотам (особенно после дождей). Так что преодолеть такое расстояние по пересеченной местности без подготовки за день — абсолютно реально. На следующий день ходить тоже реально. Другое дело как ходишь на следующий день :)
Я однажды будучи в плохом настроении, прошел по своему городу (Питер ) ., шел спокойно, вышел в 9 утра вернулся в 7 вечера, хандру как рукой снело. На след. день ходить было тяжело, но возможно.
Все зависит от того, занимается ли человек постоянно физическими упражнениями или сидит днями за компьютером.
Средняя скорость наверное врядли будет отлична в первый час-два, а потом начинают ныть мышцы, натираются ноги от непривычки и т.д.
В Одессе каждый год, в начале апреля, проводится марафон — пробежать 100 км за 24 часа по поясу славы. Выходят сотни желающих. До финиша доходят не все. По дороге людей подкармливаю, дежурят скорые. Мой знакомый с женой участвовал. Жене на 60 км стало плохо, посадил ее в скорую, сам дальше побежал. Тренированный.
Да, это очень сложно. Я как-то раз прошел g.co/maps/9c5xe от горы Джигит до поселка Каракол. Больше такого опыта получать не хочется.
Эти слова могут оказаться верными лишь в том случае, если ваши знакомые — чемпионы по спортивной ходьбе или из тех спортсменов, которые в забегах на Эльбрус участвуют.

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

Написано показательно, но не завершена история.

Да, и прежде чем идти в такие походы, было бы неплохо сделать несколько вылазок в окрестности с хронометражем пройденных километров.
Можно я дополню? ))

А какже насчет:
— Решили по середние пути купить велосипеды (они же быстрее!!). Потратили кучу денег и день на поиск и подготовку. Но оказалось, что дальше надо идти по песку и велосипеды медленнее чем пешком.
— Решили взять попутчика, он очень быстро ходит и вообще спортсмен. Но оказалось, что он не знает дороги, поэтому помтоянно убегал вперед кудато нетуда, приходилось его искать.
Ну и эпическое:
— Ждущие нас друзься выслали выртолет, чтобы быть в курсе событий. Он постоянно кружил над башкой, мешал идти. А еще спускался каждый час и пытался выяснить, почему так медленно идем. И рассказывал, что чем позже мы придем тем меньше нам достанется за ужином, думая, что это нас както замотивирует бежать бегом.
Проходя мимо пляжа с загорелыми красотками:
— Слушай, чего-то я сегодня устал…
— Надо идти ведь всего полдень!
— Ты иди, я пока поизучаю маршрут, продумаю, а потом догоню!
— Ну ОК, догоняй.
Я думаю, самая реальная оценка — после того, как часть пути уже пройдена (или часть проекта сделана):
Мой друг говорит, что раз мы прошли 40 миль за 4 дня, и наш маршрут состоит по крайней мере из 600 миль, то это 60 дней, а чтобы с запасом — 70


фоты классные!

А это модель конуса неопределенности оценки, которая соглашается со сказанным
Наивность главного героя поражает.
Подвел всех — друзей, спутника — ради идеи увлекательного путешествия.
И самое главное — для чего эти мучения? Неужели нельзя было сесть на автобус или, если хочется романтики, путешествовать автостопом?
Я что-то в метафорах запутался уже. Что в данном контексте из себя представляют автобус и автостоп? Покупка существующего решения и аутсорсинг?
Главный персонаж пытался получить удовольствие от путешествия, не оценив силы свои и напарника. По аналогии некоторые разработчики жаждут писать код, не не принимая во внимание сроки, затраты времени. Возможно, покупка стороннего решения будет для них выгоднее, но они слишком увлечены, чтобы хотя бы оценить эту возможность.
Очень хорошо про это написал Тед Дзюба:
teddziuba.com/2010/12/the-3-basic-tools-of-systems-engineering.html
«Знать путь и пройти его — не одно и тоже» (с) Вавилон 5

А вообще я скептически отношусь к планированию. Всего учесть невозможно. Обычно интуитивно делаю прикидки + расчёт на 1.5-2 запас по времени в случае форс-мажоров.
В данном случае мой расчёт по походу был бы таким.
400 миль пути по пересеченной местности. Оптимистичная средняя скорость 3 мили в час. Следовательно, 133 часа на движение. В день идем по 7 часов — это при условии хорошей физической подготовки, кстати. Получаем 19 дней.
Закладываем привалы через каждые 3 дня. Плюсуем еще 6 дней. Итого в идеале получаем 25 дней.
Умножаем на коэфициент 1.5 или 2, получаем от 37 до 50 дней.
Тогда не получилось бы у вас позвонить друзьям и забронировать столик на ужин (:
>>(с) Вавилон 5
А разве не первая Матрица?
Точно.
Хотя может что-то подобное и в Вавилоне было.
Надо пересмотреть.
Комментарий в духе топика.
Почему бы не пересмотреть Матрицу? Там же серий меньше!
Из этих двух Матрицу пересматривал последней.
Не исключено, что в Вавилоне тоже была такая фраза. Любили там минбарцы философствовать.
В матрице такого именно не было. Было несколько похожих фраз но не это.
Не заметил ссылку, пошел искать в английских субтитрах. "...there's a difference between knowing the path… and walking the path."
Беру свои слова обратно :)
И то, по вашим расчетам получилось меньше, нежели уже более реальный расчет в конце рассказа.
надо было умножать на 3… :-)
(с) Вавилон 5

О боже! Разговаривающая космическая станция! Все в StarFury!
Стены станции помнят всё :)
> получаем от 37 до 50 дней

… и заказчик отвечает на это «it is absolutely out of my budget»
… отказывается работать с вами, а потом вы узнаете, что его проект был реализован другими за 78 дней.
Зато честно. Я предпочитаю реалистичные прогнозы кормлению обещаниями.
Но это лучше или хуже. В обоих подходах есть свои плюсы и минусы.

«it is absolutely out of my budget» — это аргумент. На него можно найти и убеждающие контраргументы, вроде «Когда цена ниже это только означает, что работа будет делаться в рассрочку или не в полном объеме».
Можно называть и более красивые сроки/числа для соблазнения заказчика, но для себя в уме держать реальные. Себя-то зачем обманывать.
потом он идет к индусам, а потом через 3 месяца он приходит обратно к нам на рефакторинг и суппорт.
Я считаю что при планировании следует закладывать риски, которые могут составлять львиную долю от проектного времени.

Ну а в данном случае просто было изначально неправильно планирование, планировать надо на знании физической подготовки, в данном случае это не было учтено. Можно было пройти просто 2-3 часа не отдыхая и посмотреть на реакцию организма, думаю это уже о многом бы сказало.
К сожалению, и для реальных проектов нередки случаи, когда какой-нибудь менеджер, оценивающий сроки, наивно полагает, что программисты будут работать над проектом по 168 рабочих часов в месяц. Поэтому в рассказе и подчёркивается игнорирование физических возможностей человека.
Интересно, только мне показалось, что автор идеально знает ситуацию с нашим проектом на работе и описал именно ее?
Уж очень типичная ситуация :)
продолжая иронию… поэтому, в этой ситуации надо на 9-ый день связаться со мной. я приеду из LA и вытащу вас из любой задницы.
НЛО прилетело и опубликовало эту надпись здесь
Чёрт, а я-то дурак, когда собирался в свой первый поход зачем-то начал с исследований о возможных скоростях движения с учётом особенностей конкретной местности, о необходимых «днёвках», о возможных проблемах и способах их решения (пластырь не взяли в поход, ну надо-же какая засада «неожиданно» подкралась!)

К чему это я? А не фиг заниматься планированием того, в чём вообще ничего не понимаешь!
Согласен. Люди занялись тем, в чём вообще не понимают. Если у нас в мире программирования та же ситуация — это печально…
Но это реальность, и никуда от ней не денешься, ведь так? Люди _любят_ ломиться сквозь лес без карты и аптечки. А уж если оно еще и может дать профит…
Надо ещё красивых фоток в топик!
Аналогия похода с разработкой понятна. Но это же очевидно и для других областей деятельности: если нет желания включить голову заранее и нет опыта, то вероятность уложиться в срок и/или сделать работу качественно очень мала.
Много раз был в походах различной категории сложности и когда планирую сам закладываю солидный запас по времени и пути выхода (ситуации могут быть различные). Также планирование маршрута/экипировки может занять больше (по крайней мере у меня) времени чем сам поход: одно только составление продуктовой раскладки (чтобы вес был меньше, а калорийность и питательность была выше) является целой наукой :)
Поэтому когда я увидел цифру в 700 км для меня было очевидно что это минимум на 2 месяца :) И одно только планирование маршрута может затянуться на месяц.
Резюмируя: сначала надо ходить в походы на 2-3 дня, потом на пару недель, потом на месяц… И всегда включать голову и не стесняться советоваться с более опытными людьми. Вывод: как бы ни хотелось грандиозных результатов, без предварительной работы ничего не получается. Поэтому надо достигать вершин мастерства последовательно и постоянно включать голову (вернее никогда не выключать)
а теперь все дружно повторим мантру проджект-менеджера: «планируй риски! планируй риски! планируй риски!...»
что есть «планировать риски»? надо управлять ими! Закладывать их в проект и прорабатывать варианты заранее. Может быть, минимизировать, может быть — страховать, может быть — принимать.
Ну как бы после оценки хорошо сказать клиенту, что это примерные данные. Фирма наша работает с клиентами на почасовой основе. То есть мы стави клиенту 50 часов на задачу, делаем её за 70, соотвественно мы должны обосновать переработку 20 часов. В принципе все нормально проходит.
Прочитав комментарии вспомнилась книжка Кинга «Длинный путь» (из его ранних)
fantlab.ru/work313
Я обычно прикидываю сроки, а потом смело умножаю на 3. Ну и конечно никаких «а давайте еще...»
Навеяло
programmersclub.ru/gambler-fractali4/

И опять же читать Элли Голдрата об одностороннем увеличении длительности цепочки.
А вот как на самом деле планируют серьезные маршруты (автор — руководитель совершенно умопомрачительных авономок на 500 км по горам с восхождениями на 7-тысячники).

www.risk.ru/users/leb/7135/
Красивая аналогия:)
В ней очень здорово демонстрируется тот простой факт, что всё планирование, переносы встречи, чувство вины, мнимое геройство никому нафиг не нужны! Пошли в поход — идите себе спокойно, радуйтесь природе! Какая, блин, разница, через 10 дней вы сядете за столик с друзьями или через 50?! Месяц страдать и ползти на мозолях только ради того, чтобы… что?? Пораньше сесть за стол? Офигеть, идея to die for…

В реале всё абсолютно также. Дедлайны, стрессы, планирование, нарушение планов, догоняем, опять стрессы, не спим ночи, скрипим зубами… и для чего это всё, чтобы продукт появился не через 50 дней, а через 10… Будто что-то принципиально от этого изменится в жизни.
Если через 50, а не через 10 — конкуренты опередят и рынок будет просран.

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

Так вот для летящего в ногу со временем бизнеса 40 дней это срок. Если вы пишете файловую систему или СУБД — возможно 40 дней роли не сыграют. Если вы пишете говносайт/приложение под телефоны к некому событию которое произойдёт скоро — и вы вместо 10 дней делали его 50 — вы просрали полимеры.

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

Ну и чего вы просрали, скажите толком? В мире до вашего Крайне Критичного Срока слеплены миллионы приложений, и после Крайне Критичного Срока будут слеплены миллионы приложений. Важность выпуска чего-либо ко дню Х (который в 99.9% взят с потолка отделом маркетинга или продакт менеджером) очень часто преувеличена и совершенно не оправдывает авралы. И как уже заметили выше, авральный выпуск полуготовой поделки с багами (зато в срок!), не есть правильный путь. В точности, как в описанном проекте «веселый поход к друзьям», который не достиг ни единой цели (не веселый, не поход, и с друзьями поссорились).

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

Выводы делаем сами.
Ссылку дайте на статью (источник картинки).
Спасибо
Время такой же ресурс, как и стоимость. По крайней мере так учили в институте.
Все можно перевести в ресурсы, включая кровавые мозоли и страдания вместо запланированного отпуска. В данном случае время совершенно очевидно не было ресурсом (друзья остались бы друзьями и через месяц), зато все остальные ресурсы были безнадежно и глупо загублены. В IT очерь часто происходит аналогичное: потогонка и стрессы ради срока Х, который совершенно не критичен, но достигается ценой инфарктов или болячек у работников в 40 лет, некачественным продуктом и т.п.
Самая большая ошибка — экономия на проектировании и начальном согласовании. Почти любое время, вложенное в проектирование, окупается в дальнейшем.
В данном случае проектирование заключалось в остутствии проектирования. Идём себе спокойно из Фриско в ЛА, насладждаемся прибрежными видами. Когда дойдем — пообедаем с друзьями. Что получилось в итоге: не поход, а сплошные страдания, плюс обиженные друзья.
Если б цель была спроектировать переезд из СФ в ЛА, это можно было сделать в аэропорту. Или на машине, с любого участка маршрута.
Представьте, что от вашего проекта еще кто-то зависит. Например, корабль не сможет вовремя выйти из порта. День простоя корабля — 100 тысяч $.

Допустим, вы что-то делаете для корпорации. Корпорация это тот же корабль. Один нарушенный день работы корпорации из 1000 человек — это три человеко-года.
И так далее.
Прошу сосредоточиться на простой мысли — сокращение сроков в целях относительно оценочных не приведет к более быстрому завершению проекта, скорее наоборот, продукт будет готов позже, так как разработчики напорят горячки, недопроектируют, недотестируют и испольщуют большое количество костылей и временных решений.
НЛО прилетело и опубликовало эту надпись здесь
Моя фраза была в ответ на неважность сроков. О том, что их можно занижать по воле левой пятки или забивать на планирование я ничего не говорил.
Ну разумеется, на свете есть и критичные проекты, никто ж не спорит. Есть life saving деятельность, есть дорогостоящие зависимости (вроде простаивающих кораблей) и так далее.
Пример про путешествие очень ЯРОК, так как он идеальнейшим образом описывает некритичный проект. Из СФ в ЛА можно долететь за 2 часа, а доехать меньше, чем за день. Акцент в «проекте» не был на время, а на «качество»: поход, живописный путь (по берегу), друзья — вот ключевые слова проекта. И по ключевым параметрам проект превратился в страшный фейл. Причина проста: «менеджер» проекта по привычке и по дурости решил, что тайминг — тоже важный параметр. А он не только не важный, он еще и убил все остальные. В IT такое встречается сплошь и рядом.
Ни один из параметров не может быть произвольно отброшен в проектной работе. Отсутствие сроков означает невыпуск продукта в принципе. Это тоже встречается сплошь и рядом.
В ситуациях, когда не удалось трезво оценить сроки, и сообщаешь заказчику о задержке и он сердится, нужно дать почитать эту статью. Но перед оценкой проекта, нужно каждый раз читать ее самому.
Добрый день.
Для начала поблагодарю автора — очень интересный рассказ. Поднял настроение.

К сожалению не все комментарии понравились.
Хочется вставить и свои 5 копеек, т.к. имею отношение и к походам и оценке проектов.
1. Оценку сроков прохождения этого пути сделали люди, которые никогда до этого не ходили (а не то, что не ходили этим маршрутом).
2. Когда планируется поход — скорость оценивается в расчете на 3,5 — 4 км/час ходьбы (и это по дорогам или совсем ровной местности) или 15-25 (ну в крайнем случае 30) км в день, расписываются план прохождение на каждый день, и на каждый день расписываются где будет ночевка и что будем есть. Каждые 3-4 дня дневка — отдых. Если итди напролом по лесу с горами — скрость может быть 5-10 км в сутки.
Предусматриваются аварийные маршруты (для схода или чтобы срезать).
Т.е. если очень грубо считать по этому примеру и этим картинкам, то это холмистая/скалистая месность, особо без дорог, то я бы брал из расчета 15 км/день. Тогда первоначальные 400миль (640 км) проходятся за 43 дня + к этому 11 дней отдыха = 54 дня. Это совсем грубо. Плюс небольшой запас (травмы/болезни, чегото нужно дозакупить и прочее). Кроме того, по карте — рядом лежит дорога — это и есть аварийный маршрут. Например если предположить что ребята по времени не вкладываются, то можно сойти с маршрута и быстро поймать попутку и приехать к друзьям (цель то будет достигнута, но с другими затратами и «некторыми недоработками»).
3. Если попытаться бысто (практически без сна, это тоже в жизни было) 100-120 км за 40 часов, практически налегке, Но после такого марафона дней 5 отходить нужно. Тогда можно попытаться вложиться
4. Ответ на комментарий: "… Пошли в поход — идите себе спокойно, радуйтесь природе..." Опять же для данного примера — а если отпуск заканчивается или ты еды взял в тайгу на 10 дней и транспорт бывает раз в неделю? Куда денешься?
5. Опять же коментарий к придыдущему посту — представь себя на месте заказчика. Например ты хочешь отремонтировать себе квартиру. Ты думаешь в нее вселиться за 2 месяца, нанимаешь рабочих… И тут они тебя начинают разводить на итерации, гибкий подход, вытягивание денег из тебя за свои просчеты и прочее. Они тебе оценивают работу в 10 дней и $500, а потом говорят что это будет 60 дней и $10000. Или говорят ты плати, а мы будем делать. Когда и за сколько сделаем — это как получиться.
Тебе это понравится?
В этом случае ты бы посмотрел на все с другой стороны. Тебе от рабочих нужно точно получить что они справяться за определенное время и определенные деньни ± 20%. Не так ли?
Полностью согласен. Вообще исходя из топика не совсем понятна главная цель. Если ребята ставят цель пройти именно по берегу океана, а покушать в ресторане с друзьями не критично — нужно идти по берегу и корректировать сроки. Если очень важно покушать в день Х в ресторане с друзьями, можно сойти с маршрута, и добраться на автобусе\попутке.
В реалиях статьи — если нужно сделать некий функционал именно таким каким нужно, необходимо вкладывать средства чтобы получить именно то что нужно (как Blizzard, откладывает сроки запуска игр, чтобы вылизать все до последней мелочи), а если нужно сдать в час Х (например это промо-сайт для какой-то акции), то можно упростить некоторые моменты, взять готовые решения и т.п. Упираться рогом и хотеть и рыбку съесть и на**** сесть — не лучшая стратегия.
И почему я вспомнил о Canonical читая ваш коммент…
а если отпуск заканчивается или ты еды взял в тайгу на 10 дней
Например ты хочешь отремонтировать себе квартиру

Никто не спорит с тем, что тайминг иногда очень важен, а планирование критично. Но речь-то идет про IT! Не о возможном голоде или ночевке под мостом, а часто о том, чтобы один полудоделанный продукт оказался на полках раньше или вместе с другим полудоделанным продуктом (у конкурентов ведь тоже аврал). И в IT есть срочные вещи, но большинство менеджеров планируют авралы на каждую (буквально!) глупость, даже если это «поход по берегу».
Только хотел написать, что если бы альпинисты так планировали свои походы в горы, они никогда бы не возвращались :)
Вы полностью все описали, и добавить нечего.
Насчёт ремонта квартир можно сказать, что ситуация делится как минимум на два случая: типовой ремонт и ремонт по индивидуальному проекту.
Согласитесь, сделать евро-ремонт в двушке и осуществить дизайнерский проект в особняке на 1000 кв.м. — это две большие разницы. И если в первом случае, заказчик вправе рассчитывать на оценку с точностью ± 20%, то во втором ему никто точно стоимость не оценит. Так же и с программными проектами, одно дело сайт-визитка и совсем другое очередной «супер-пупер» стартап, в котором заказчик постоянно вносит изменения в требования.
Насчёт «точно не оценит» я бы не сказал, если подрядчик квалифицированный.
В строительстве всё очень хорошо нормировано и если проект грамотный, то точную смету, включая затраты времени, составить особого труда не составит. :) Доп. работы, конечно, возникают, но редко они больше 20%, только в случае ошибок проектирования и разработки инженерных решений, ну или организационные проблемы, типа несоблюдения технологического цикла, из-за которого потом надо всё переделывать.
Нормированы могут быть лишь типовые работы. Да и то там не всё так гладко, как Вы пишите…
Даже не типовые сначала нормируются, вводятся единичные расценки, они утверждаются заказчиком, а потом составляется смета. «Отмазки» типа «мы думали монтаж займёт 10 человеко-часов монтажников 5-го разряда, а заняло 20, оплатите ещё 10 и дедлайн переносим» обычно не прокатывают. Чтобы прокатили нужно, как минимум, составлять акт, а для этого убедить заказчика в том, что действительно ошиблись и эту ошибку он должен оплатить.
Мораль: не нужно совмещать спринтерскую гонку и марафон. Либо быстро и чуть-чуть, либо медленно и много.
И тут они изобрели фрактал.
Software Estimation: Demystifying the Black Art

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

Чем отличается любительский туризм от спортивного туризма?

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

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

Спортивный туризм — это борьба. Маршрут длинной от 150 до 400 километров, по глухой тайге, по рекам и горам. Без селений, без дорог без людей. От 7 до 36 дней, группа из 4-16 человек, в полной автономии идёт по маршруту.

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

Спортивный туризм, это когда за год заранее прорабатывается маршрут, изучаются «ОТЧЕТЫ» — опыт прохождения этой или близкой местности, другими группами. Ковыряются карты пятисотметровки, рассчитываются варианты изменения местности, с последней топосъемки, и чем это может быть чревато. Есть коэффициенты, по которым считается перепад высот, что бы понять какое на самом деле расстояние, есть средние скорости для групп разного уровня подготовки. Руководитель похода, заместитель и завхоз, часами просиживают за бумагами, расчетами, прорабатывая маршрут. Участники с трепетом ждут.

И вот: маршрутная книжка — типовой документ, где шаг за шаг описан маршрут, вкратце, что бы МХК разрешил выйти на него, и полностью в записях руководителя, что бы привести всю группу к концу маршрута ЖИВЫМИ. Да-да, тут вопрос стоит не только в том, что бы просто пройти маршрут. Дойти до конца нужно:

1. За строго определенное количество дней.
2. Строго определенное количество и категорию сложности препятствий.
3. Строго определенное расстояние.
4. Запечетляя все ключевые моменты маршрута, что бы написать отчет. Отчет — доказательство того, что ВЫ прошли маршрут, и помощь будущим группам, которые пойдут по этому маршруту.

Иначе… Иначе, всё будет зря. Не дойди 10км из 400, обойди 1 препятствии из 30, опоздай на 1 день из 16 — вся работа, всё твоё мучение пойдет на смарку — поход не засчитают. Да, группа получит опыт, но поход засчитан не будет.

Ещё там умирают. Срываются с веревок, засасываются в порогах в сифонах после киля, замерзают в пурге, бывают завалины лавиной, разное бывает… Походы 5-6 категории, это испытание, это спорт борьбы человека с природой, со стихией. К походам высших категорий сложности готовятся особенно тщательно. Еда, рассчитанная до грамма, до коллории на человека, снаряжение, проверенное десятками раз. Ах да снаряжение… В автономной группе нет личного снаряжение. Плохие трекинговые ботинки, у одного из участников группы, могут стоит жизни всем. Могут.

Поэтому группа — это единый организм, целое. Они множество времени готовились что бы высчитать всё, подготовить всё, учесть любое развитие событий. Месяцы, недели подготовки, что бы наконец выйти на маршрут. Вышли, и N дней ты живешь тем, что так долго готовил, проходя маршрут, бодая препятствия, отдыхая на так вовремя продуманной дневке и коротая время у вечернего костра. Выйдя с маршрута к месту выброски, в полном составе и здравии, ровно к назначенному времени, после недель автономного скитания. И это время было назначено год назад.
упс, промахнулся, ниже вопрос задал.
>поход любителей где-то недалеко от цивилизации, когда всегда можно позвонить по телефону

Разве сейчас не является обязательным наличие средств связи с МЧС? А раньше, помнится, практиковалась система контрольных точек и если группа в назначенное время не приходила, то начинались поиски с использованием военных вертушек и поднятия солдат ближайших частей по тревоге для прочесывания местности.
Правила меняли несколько раз, за последние несколько лет, в какое то время да, были обязательны спутниковые телефоны, для походов высших категорий сложности, но потом отменили — телефонов ни у кого нет, групп стало мало ходить, да и МХК на это глаза закрывало, так выпускало на маршрут.

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

Например: поход 33 дня, протяженность 400 км, выходим из точки N, такого то числа Х, будем в точки завершения маршрута М, контрольное время Х+33 дня, соответственное если не выйти с маршрута и не отзвониться Х+33 числа, начнет работу МЧС.
Точно помню, что отзванивались дежурным с промежуточных точек. Маршрут по треугольнику был, от одного населенного пункта к второму, от него к третьему, а от третьего назад к первому.
Если на маршруте есть населенные пункты, то никто не запрещает назначить контрольное время отзвона при их проходе, как раз получатся «промежуточные точки».

Но в большинстве случаев это не возможно, маршрут такой, что стартуешь с трассы, либо с места выброски с вертушки, и все остальные дни маршрута идешь без населенных пунктов, в конце же точка выхода в населенный пункт, или там где будет ждать транспорт, соответственно отзвонится о выходе с маршрута можно только в этом месте, и в условленное время.
Честно говоря, рассказ показывает не столько фейл сроков при планировании, сколько бездарное планирование. Уйти в поход и не взять с собой банально пластыря, чтобы потом потрать 45 минут на его покупку — то же самое, что сесть программировать без компьютера.
НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации