Реализация vs. Продукт

Март 10th, 2009

Заказчик (З): Сколько займет сделать калькулятор?
Исполнитель (И): А.. понты, задача легкая, за два дня справлюсь.

Прошло два дня.

И: Я калькулятор сделал. Исходники только что выслал.
З(робко): А можно что-то, чтобы я мог запустить.
И: Да, без проблем — .exe послал.
З: Оно что-то говорит о том, что  не хватает какого-то .NET framework
И: А блин… Так нужно его сказать с http://… , потом поставить
З (через час): ok, Оно запустилось, но выглядет просто ужастно. Мне нужен нормально выглядящий калькулятор.
И:  От блин. Я вообще дизайном не занимаюсь, но попытаюсь что-то сделать.

Через день

И: Вот, поглядите.
З: А можно, это сделать чуть больше, тут цвета поменять, тут еще что-то подправить.
И: ok. Сейчас прямо сделаю. (Делает)
З: ok. Так вроде нормально. Так, насчет установки. Честно говоря, мои клиенты не захотят с этим .NET установкой возится, сделай, чтобы можно было по Next проходить.
И: Оk. (В мыслях — как он меня достал, я ему не подписывался все это делать). Завтра сделаю.

Через день.

И: Сделал.
З: Надеюсь, оно же будет работать и на XP и на Vista?
И: А… хм… черт его знает. Я на Vista не пробовал.
З: Ладно, я сам попробую. …. Ага вроде работает, но почему-то выдает сообщение о том, что какой-то файл не найден. Это нужно исправить.
И: А откуда же я в Vista возьму? Давайте я вам пошлю отладочную версию, вы ее запустите, пришлете логи, а я потом поправлю.

Еще один день проходит в отладке.

З: ok. Вроде установка работает. Я покасуть до дело попробовал, и почему-то если сложить 2 + 2 получается 5, а если поделить на ноль то он вообще вылетает.
И: О.. Блин, так что я все комбинации должен был проверять (уже сильно нервничая).
З: Не фига себе, а ты что вообще пытался им пользоваться.
И: Ну, почему-же не тестировал… Тестировал — 1+1 проверял, что выходит 2 и 1*1=1.
З: Так, мне нужно это дело серьезно проверить, чтобы ошибок не было.Чтобы до завтра было готово, и так уже сроки затянул.
И: ok. Но это я уже точно не обещал, так что требую дополнительную плату. (Про себя Этот заказчик @!#!@#).
З: Черт с тобой, половину от того, что требуешь оплачиваю — остальное нет, так как полное говно, я тоже не собирался у тебя покупать. (Про себя Этот исполнитель @!#!@#).

Прошло 2 дня, все более менее оттестировано.

З: Ну, ok. Вроде все нормально работает. А где help у калькулятора?
И: (Чуть не падая под стол). Какой еще help?
З: Ну, для того, чтобы объяснить как все функции работают.
И: Не, этого я точно делать не буду. Я и писать то не умею.
З: ok. Ладно, я сам напишу. Но мне нужно, чтобы это выглядело, как стандартный help файл.
И: ok. Присылай.
З: Присылает word документ на 10 страниц.
И: Ой блин… Так мне теперь надо разобраться как это все запихнуть в hlp  файл.

Еще проходит день и все запихнуто.

З: Ну, все, вроде все работает. Вот тебе деньги, хотя ты бездарь их не заработал. Говорил 2 дня займет, а мы тут уже чуть ли не две недели ковыряемся.

Входит новое (виртуальное) действующее лицо — покупатель (П). Виртуальное, так как это не конкретный покупатель, а очень обобщенный.

З:  Покупайте калькулятор — бакс, одна штука.

В ответ тишина.

З: От блин… Надо же сайт сделать и выложить на другие сайты рекламу. (Привлекается исполнитель для создания сайта.)

З (снова):   Покупайте калькулятор — бакс, одна штука.
П: ok, теперь слышу, хотя редко и плохо. Но, нафига мне собственно говоря, покупать твой калькулятор — у меня в Windows встроенный.
З: Ой блин… А действительно, я и не знал, что в Windows он уже есть. Идет к исполнителю, добавить крутых функций и выкладывает на сайт.

П: Да, крутые функции у тебя есть, но мне нафиг они не нужны.
З: Оглядываясь. А кому они вообще нужны? Находит, что математикам нужны.
З: Математики, покупайте калькулятор — бакс, одна штука.

В ответ опять тишина.

З: Ну, что же все так херово идет. Делает рекламу в журналах для математиков.
П: о… Вроде то, что надо. Начинают покупать. Хотя в начале возьму пробную бесплатную версию на 30 дней.

Проходит время.

П: Что-то у меня это плохо работает и это не работает, да и это борохлит. Если исправите, копию куплю.
З: Устав уже отвечать на email’ы и звонки, нанимает девочку, которая делает это за него. А исполнитель постепенно все поправляет.

П: Ну, теперь вроде все ok. Вот твои заслуженные $1 за калькулятор.

Вот такая грустная история 🙂

По мотивам истории:

Продукт = Реализация + тестирование + инсталяционный пакет + документация +  веб сайт+ реклама + маркетинг + поддержка + еще тьма всего.

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

Скруммное (часть 2).

Март 6th, 2009

Эдак с месяца 3-4 уже сижу на Скруме. Маленькие записки по поводу него я уже писал, но постепенно набрались новые мысли и ощущения.

Из новых ощущений
— Очень понравилось то, что не пытаешься планировать в какие-то бесконечные дали, а решаешь текущие проблемы, оставляя будущие проблемы на будущее (причем это относится как к product managment’у, так и к программированию).
— Понравились burnchart’ы — гораздо более объективная и простая методика видеть, как движется проект (по сравнению с нереально тяжким и неточным MS Project).

А вот теперь то, что НЕ понравилось

— Узаконенное не планирование архитектуры.

Молодые/плохие разработчики с удовольствием работают в пределах user story. Приемочные критерии пройдены, а остальное их не сильно волнует. Проблема возникает в том, что они могут писать код, который является полным говном. И когда, даже внутри того же спринта сталкиваешься с другой user story в которой нужно использовать их код, приходится — разобраться в нем, отрефакторить, проверить, что старая US не поломана и что новая сделана. И это в результате выходит дольше, чем сделать хорошо сраз.

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

Впрочем проблема тут не только в Скруме, но просто в Скруме она узаконена.

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

Вероятности, факты и вера.

Февраль 27th, 2009

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

Знаете, этот бородатый анекдот?

Блондинку спросили: «Какова вероятность встретить на улице динозавра?»

Ответ: «Пятьдесят на пятьдесят. Либо встречу, либо нет».

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

Частенько я вижу две стандартные логические ошибки в спорах

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

Это как раз случай с встречей динозавров. Число исходов — 2 (встречу или не встречу), вывод вероятности по 50% на каждое событие.

Надеюсь, все осознают, что вероятности исходов могут быть НЕ равные.

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

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

Представим себе, что мы кидаем кубик с миллионом граней и у нас выпадает 495345. И мы говорим… о боже… ведь вероятность того, что выпадет точно 495345 всего 1 из 1000000. Это же чудо.

Если бы выпадо 495346, то можно повторить те же слова. Так, что получается, что чтобы не выпало — это будет чудо?

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

Теперь немножко о вероятности, фактах и вере.

Скажите пожалуйста,  является ли солнце — звездой?

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

Собственно говоря, почему мы утверждаем, что оно существует? Опять же возвращаясь к первому пункту, существует масса исходов и у них разные вероятности. Как мы оцениваем вероятности? Оцениваем мы исходя из всех остальных наших знаний — жизненного опыта (что мы видим солнце), уроков физики (когда нам рассказали, что это звезда). Замечу, ни в одной из этих вещей мы не уверены в 100%, так как она в свою очередь базируется на других вещах, в которых мы не уверен на 100% и т.п.

Что мы имеем — это нереально сложную сеть знаний с оценками их вероятностей.

Что является важной особеность, что есть очень «рыхлые» связи, там где вероятность правильности одного знания мало влияет на другие знания. А есть очень связанные знания.

Примером связанных знания является наука. Причем чем выше интеллект (для проверки выводов), тем более тесным является связанность таких знаний.

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

К чему это я веду… А веду я к тому, что наука дает достаточно цельную связанную картину знаний с высокими вероятностями.

Однако, даже высокая вероятность,  не является 100% вероятностью. Обычно — это основной удар любителей альтернативных теорий.

Да, крайне редко (фактически никогда) вероятность даже простейшего события в реальном мире и уж тем более целой системы событий, знаний не может быть равна 100%. Она может как угодно близко приближаться к этому значению, но равным 100% станет только тогда, когда мы будем знать абсолютно всю про наблюдаемый нами мир.

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

А все остальные альтернативные теорию должны ютиться в оставшихся им процентах.

Собственно именно исходя из этого я верю и знаю, что

а) Земля НЕ была сотворена за 6 дней где-то 40000 лет назад.

б) ДНК появилась в ходе эволюции.

Я употребил два слова- верю и знаю. Знаю я именно благодаря фактам, которые лично могу «пощупать» и сети научных знаний, который наращивают вероятность событий до высоких значений.

А верю я потому, что если вероятность перещелкивает через скажем 90% в моей голове, то я принимаю теорию за факт. Естественно, как я уже написал 100% вероятности дожидаться придется долго. Поэтому вера для меня как раз и есть тот пороговый процент, выше которого я готов верить пренебрегая альтернативными теориями с малой вероятностью.

И как я уже говорил, меня удивляют люди, которые понижают этот «проходной» процент до уж не знаю.. 5% и после этого спокойно находят место в своей голове и для веры в науку и для веры в хрустальный небосвод. Более того, судя по всему после перехода этого барьера, люди оценивают все теории как равновероятностные, хотя на самом деле они разновероятностны.

Развенчивание мифов о том как стать успешным.

Февраль 24th, 2009

Есть три очень распространенных мифа о том как стать успешным (навеяно вот этой статьей).

Миф N1:

У оптимистов все происходит хорошее, а у пессимистов — все происходит плохое. Поэтому нужно быть оптимистом и все у вас получиться.

Миф тут в двух пунктах

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

— Впрямую оптимизм на исход события не влияет.

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

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

Тем не менее, в целом — это достаточно косвенный параметр влияющий на успешность.

Миф N2:

Успешные люди всегда уверены в себе. Это вообще полная херня.

Поглядите фильм Пираты Силиконовой Долины о старте Microsoft и Apple. Там очень хорошо показано, что Bill Gates и Steve Jobs может быть в целом и были достаточно самоуверенными людьми, но они не знали и не были уверены, что станут настолько богаты и они не были уверены, что все пойдет удачно.

Миф N3:

Главное ставить высокие цели.

Ню-ню… Поставьте себе цель перепрыгнуть 10 метровую планку в высоту без разбега. Как результаты? Думаю прыгать никто лучше не стал от этого.

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

Вот такие вот мысли. Кстати, частично о том откуда растут ноги у этих мифов я уже писал.

Кстати, для интересующихся альтернативной (обратной) точкой зрения — читать тут.