Archive for the ‘Эффективность’ Category

Win-win, бывает ли он вообще?

Воскресенье, Март 29th, 2009

Как при обсуждении в статье о развенчивании мифов об успешности, мы с СОТОН’ой вышли на забавную тему.

Он писал:

классический win-win это просто красивая сказка. просто если преподносить ситуацию как win-lose, то сторона, которая lose может начать действовать неадекватно (от банальных обид, саботажа до приноса УЗИ в оффис), поэтому все разрешения конфликтов каг-бе надо маскировать в обоюдовыгодное решение… кто может это делать лучше — тот более правильный лидер, т.к. при его win сторона lose не испытывает дискомфорта и даже верит, что так лучше.

Как раз на этом пункте и разошлись в мнениях.

Начну с моего понимания терминологии.

Во первых любой win или lose — величина не бинарная (выиграл или проиграл). Вполне можно выиграть больше и проиграть больше. Ну, это вроде само собой разумеющееся.

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

Условно говоря, вы купили спички за 1 кп., продали за 5 кп. В выигрыше вы или в проигрыше? Где-то внутри головы есть сотни факторов — знание о окружающих цена, цена вашего времени, минимальная прибыль которая вас интересует, количество потраченных моральных сил на покупку и т.п. В конце они складываются у одного скажем в то, что 4 кп. он считает продажей, которая минимально выигрышная, а у другого это 6 кп. Соответственно, одна и та же сделка с продажей за 5 кп. для одного продавца будет казаться слегка проигрышной, а для другого слегка выигрышной.

Итого, имеем, что «win» для человека — это превышение какого-то нулевого порога, который установлен у него в голове.

Теперь пройдемся по ситуациям:

а) Покупатель хочет купить вещь, нулевой уровень в его голове равен 10 рублям.
б) Продавец хочет продать вещь, нулевой уровень в его голове равен 8 рублям.
Итого, если продажа произойдет в пределе от 8 до 10 рублей, то обе стороны будут чувствовать себя win. Замечу, даже, если продавец продаст за 9.99 и будет считать, что просто поимел покупателя по полной программе, все равно покупатель чувствует win. На самом деле ключевой вопрос, не количество переданных денег и услуг, а то что после этого думаю продавец и покупатель.

Естественно, что если после этого покупатель обнаруживает, что везде вещь продавалась по 8 и его таки «нагрели», то он переоценивает свой нулевой уровень в 7.50 и мгновенно начинает чувствовать себя lose. Однако это происходит, только в том случае, если вокруг продавали по 8 и если для него психологически важнее купить по средней цене, а не по тому, сколько он был готов заплатить изначально.

Следующая ситуация.
а) Покупатель хочет купить вещь, нулевой уровень в его голове равен 8 рублям.
б) Продавец хочет продать вещь, нулевой уровень в его голове равен 10 рублям.
Соответственно, здесь win-win не возможен изначально. Либо сделки (наиболее вероятно) не будет, либо одна сторона будет ее считать lose.

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

А вот, теперь, переходим к более интересной части. Как вообще добиваться win-win’а из этого второго типа сделок?

Я уже писал об этой стратегии в статье о скидках. Самое важное, договариваться не по одному, а по нескольким пунктам сразу.

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

Предположим, компания A имеет права на сериал «Богатых тоже пучит» и хочет за прокат больше $5M (та самая нулевая отметка). TV студия в свою очередь хочет взять в прокат и в их голове цифра $4.5M. Добавлю чуть больше информации, она понадобиться чуть ниже, в прокат сериал компания A сделает минимально за $5M, потому, что при этой цене они получат минимальную прибыль $0.5M, TV студия хочет взять за $4.5M максимум, потому что они при этому тоже получат $0.5M.

Вроде исходя из этого, если они начинают играть по правилам «win-lose», то сделка явно не состоится (так как студия не хочет предлагать даже минимума). Однако есть второй фактор — количество показов каждой серии. То есть сколько раз имеет право студия прокрутить одну и туже серию. Стандартное количество прокрутов оказывается равно 6 (никогда об этом раньше не знал). Студии интересно получить больше прокрутов — скажем 7 или 8, так как это позволяет больше собрать на рекламе. Компании A, которая дает сериал в прокат наоборот увеличение прокрутов вредит, так как сериал «засматривают» на одном канале и вторая студия уже с меньшей готовностью (за меньшую сумму) возьмет его в прокат. Так вот, студии каждый лишний прокрут приносит $0.75M дохода, а у компании которая сдает в аренду, это вредит $0.25M (уменьшение стоимости следующей сделки по прокату сериала).

И вот тут возникает интересная часть — суммы прибыли у одного и убыли у другой компании НЕ одинаковые. Соответственно, если компании обсуждали бы договор в рамках 8 прокатов, вместо 6, то их границы были бы: для компании сдающей фильм в аренду: $5 + $0.25*2 = $5.5, а для студии $4.5 + 0.75 * 2 = $6M. Вуаля.. Мы получили результат, что они могут договорится в пределах от 5.5 до 6. Пусть скажем, они сошлись на 5.75 (ровно посередине).

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

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

Возвращаясь к тому, что я писал вначале, то что выигрыш величина относительная и она относительно крайнего значения, которые вы считаете нулем. И вот тут важно понимать, что нулевая отметка это не та цифра за которую они готовы были сдать или взять фильма в прокат, а прибыль от которой они отталкивались. Обе компании, отталкивались от прибыли $0.5M. Если посчитать, сколько же прибыли получила каждая компания, то мы обнаружим, что компания A получил — $0.75M и студия получила тоже $0.75. Итого, ОБЕ стороны оказались в выигрыше от того, что они планировали изначально.

Естественно, будет нечестно опустить тот факт, что таки за $0.5M (между $5.5M и $6M) они таки должны были бороться «перетягивая канат», но с другой стороны какой бы счет не был в процессе перетягивания — результат уже лучше, чем то, что они запланировали.

Ну и естественное, если бы они могли добавить еще скажем 3-5 параметров с разной стоимостью для двух сторон (и прибыль от которых больше чем убыли), то они получили бы еще больше и их прибыль могла бы достигнуть скажем $1M. И кстати, не думаю что какая-то сторона будет обиженна таким выходом.

И возвращаясь к самому началу статьи. Хотя речь в целом идет не только о лидерстве, но и вообще о любых сделках. Тоже самое работает и с лидерством. Да, лидер может зачастую «накрутить хвосты» (особенно если он прямой менеджер и обладает еще и официальной властью). Но после 2-3 накручивания хвостов (типичный win-lose), люди вообще перестанут идти на уступки, а то и решат сменить место работы. С другой стороны, если скажем в момент deadline предложить людям поработать в субботу в обмен на 2 выходных по окончанию release, сразу получается чистый win-win. Суббота — является гораздо более дорогим для менеджера чем для людей параметром и он хочет получить его. В ответ, два выходных для людей более дорогой параметр, чем для менеджера — они получают его. В таком виде, каждый сотрудник с радостью будет помогать лидеру.

Вот такие вот дела….

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

Вторник, Февраль 24th, 2009

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

Миф N1:

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

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

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

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

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

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

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

Миф N2:

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

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

Миф N3:

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

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

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

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

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

Выбей 100% скидку.

Воскресенье, Февраль 8th, 2009

В моих бизнес знаниях и умениях очень долгое время зияла гигантская дыра. Я фактически не умел торговаться

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

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

Ну, естественно — это не торговля, а игра в поддавки, где я всегда проигрывал деньги, да еще и настроение.

И вот, наконец, я догадался, что можно прочесть книгу по этому поводу. Купил и запоем прочел первые 3-4 главы (которые в целом и оказались самыми полезными).

ТОВАРИЩИ, это просто потрясающе. Открыл для себя новый мир.

В тот же день, как прочел первые главы — провел переговоры с своим internet provider’ом, применил описанные методики и
а) Снизил цену с $40 до $30 за месяц
б) Получил один месяц бесплатный
в) Получил заметку, что если у меня будут проблемы — то буду общаться не с девочками на телефоне, которые мне читают по пунктам, что делать, а с человеком, который разбирается в компьютерах и которому можно объяснить проблему.

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

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

P.S. А название статьи собственно не причем. Просто завлекательный трюк 😉

P.P.S. Очень короткие выжимки из книги (того, что мне показалось самым полезным).Но вообще 200 страниц — в 10 строк уложить тяжело.

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

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

в) Не нужно бояться пауз после того, как вы сделали свое предложение. Нужно таки ждать пока оппонент сделает ответное.

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

О тупых программистах.

Пятница, Январь 30th, 2009

Осторожно, очень много букв 🙂

Есть у меня один очень умный друг, которого абсолютно не возможно переспорить 🙂 Причем не из-за того, что он применяет какие-то нечестные метода спора, а просто потому, что количество знаний в его голове помноженные на его умение ими оперировать оставляют меня далеко позади 🙂

Кстати,  именно он подкинул мне идею (был ее автором) самой моей любимой серии статей про программистский синхрофазатрон.

И вот, собственно, смирившись с невозможность победить в online споре, я решил перейти в offline режим, где смогу детализировано рассмотреть проблему.

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

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

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

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

Итак начнемс…

Приведу три точки зрения. Первая — точка зрения программиста, вторая точка зрения менеджера, третья — точка зрения предпринимателя.

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

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

Из этого следует, что если мы Васю уволим, то Петя потратит на эту задачу 5 часов и сделает (вместо объяснения, как ее делать), а фирма в результате потратит меньше денег. Вывод, Вася плохой программист и имеет отрицательную эффективность (только вытягивает на себя деньги).

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

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

Менеджер мыслит примерно так (естественно не с такими детальными выкладками)

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

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

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

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

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

Ну и просто, для того, чтобы показать, что значит в 50 раз менее эффективны. Это значит, что хороший программист задачу сделает за 1 неделю, плохой программист за 1 год.

Небольшое замечание по измерению оценки. Программист оценивает других программистах в терминах «на» — Вася сделает туже задачу _на_ X долларов дороже чем я, поэтому Вася не нужен. Менеджер измеряет в терминах «в». Вася сделает туже задачу _в_ Y раза дороже.

Теперь следующий шаг в оценках менеджера. Пусть мы знаем, что задача которая подается программистам на вход должна принести скажем $10k. Самый эффективный программист на ее решение тратит $1k. Из этого следует, что все кто эффективны менее чем в 10 раз, будут тратить больше $10k и значит, что они приносят фирме уже только убыль. И чем больше они работают, тем большую убыль приносят. Так, что их таки можно увольнять.

Возвращаясь к Васе. Пусть Вася по этой формуле оказался в 4 раза менее эффективным. Тем не менее, с решенной задачи мы все еще имеем $10k — $4k = $6k прибыли.
Хотя безусловно, если Васю уволить, то получится $9k прибыли.

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

То есть, если у него эффективность жуткая (в 7 раз хуже, чем у Пети), но работает он автономно и Петю не трогает вообще, то тогда, получается, что они вдвоем могут приносить $10k-$1k (Петя) + $10k-$7k (Вася) = $12k. А если Васю уволить, то прибыль падает до $9k.

Ну и теперь с точки зрения предпринимателя.

Базируем ее на точки зрения точке зрения менеджера. Только введем некоторые дополнительные параметры.

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

Итого, когда у нас диапазон качества, в абсолютно условных цифрах от 3 до 5. То вполне возможно, Вася сделал бы задачу с качеством 3 с той же эффективность, которое Петя делает задачу с качеством 8 (с одной стороны такое качество просто и не нужно, с другой стороны Петю ругать за дополнительное качество тоже было бы странно, да и плюс именно из-за Пети в целом программа не выпадает из диапазона).

Заметьте, как мыслит программист

а) Берется факт о случившейся ситуации где эффективность другого программиста была низкая

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

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

На самом же деле расход и доход динамичен. Он происходит в разные моменты времени.

Вернемся к примеру, который привел программист. Если плохой программист тратит в одной точки времени 5 часов хорошего, 20 часов своих и после этого в какой-то момент получается прибыль $10k, то действительно второй программист паразитирует в прямом смысле слова.

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

Для того, чтобы все стало на свои места, возьмем фирму из 30 плохих и 3 хороших программистов. Если мы слушаем 3 хороших, то мы увольняем всех плохих и ждем пока хорошие сделают всю работу которые делали бы плохие. Проблема заключается в том, что плохие хоть и были менее эффективны, но делали ее параллельно. Хорошие более эффективны, но делают ее последовательно. Итого, вместо выпуска через месяц и получения дохода, выпуск происходит через два месяца.

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

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

Тут кроется одна проблема, это хорошо масштабируется от 1 до 5 хороших программистов, плохо от 5 до 50 и не масштабируется фактически вообще от 50 до 500 программистов. Поэтому для увеличения прибыли и сокращения сроков, компании проще нанимать 50 хороших программистов и 500 плохих, чем 100 хороших.

И последняя особенность.  В формуле прибыль = доход — расход, и доход и расход на самом деле являются не константами, а функциями.

Во первых, если фирма имеет большие продажи, то тогда доход от одной и той же функциональности может быть разный. И вот возникает интересный эффект. Если доход $10k, при расходах $1k и $7k — то отличие хороших и плохих программистов очень чувствительно (так как это изменяет прибыли от 90% дохода до 30% дохода). А вот если доход составит $100k, то разница между хороших и плохим программистов фактически не чувствуется (99% или 93%).

Важное замечание, которые мне написали: Это естественно более актуально для продуктов, где прибыль зависит от объема продаж. Для попроектной работы, прибыль заранее фиксирован. Более того, чаще всего они сильно прижат конкуренцией за исполнение проекта.

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

Фух… Подводя к итогам всю эту фигню, которую я написал.

а) Идеальная ситуация — много хороших программистов, нету плохих. Ситуация идеальная, но недостижима из-за плохого масштабирования найма хороших программистов.

б) Из-за пункта а) и больших штрафов при более позднем выпуске продуктов, компаниям выгодно распараллеливать работу нанимая средних и плохих программистов.

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

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

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