Saturday, September 5, 2009

Выходные в Сиэттле или Labor Day weekend

Для справки, 7 сентября - это День Труда в этом году. Вообще-то это вроде бы вычисляется как первый понедельник сентября, в этом году это 7 сентября. По этому поводу у нас длинный выходной - с субботы до понедельника. Ну, и разумеется, как называются два дождливых дня один за другим в Сиэттле? Выходные! В данном случае, три дня:

Выходные в Сиэттле

Как всегда с персонального блога...

Sunday, August 30, 2009

Может ли Гугл помочь в борьбе с коррупцией?

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

Как обычно, кросс-пост с моего основного русского блога...

Дайте обьясню. Для Гугла очень важно разобраться, какие страницы несут полезную информацию, а какие нет. Ядром технологии Гугла являются линки. Логика простая – если на страницу ссылаются, то она хорошая. Проблема как всегда с тем, что рынок (в частности Интернет) – это эволюционная среда, а в эволюционной среде всегда есть паразиты. Нужны линки? В чем вопрос? Для дорого гостя сделаем линки!

Какой самый простой способ сделать линк? Обменяться с другим бедолагой. Ты мне – я тебе. Рука руку моет, обе чистые живут. Ну, и прочая народная мудрость...

"Почесал бедный черт свое темя..." Ну, или там Гугл, и решил выявлять взаимные линки как очевидный способ Его, Самого, обмануть. Каков следующий шаг паразитов? Ага, "ты ссылаешься со страницы А на мою страницу Б, а я ссылаюсь со страницы В на твою страницу Г". Это правда сложнее. Сейчас появились более эффективные схемы. Например, link wheel, когда шесть страниц – все твои, но в разных местах, ссылаются колесом друг на друга.

Почему это работает? А просто. Такие страницы, ссылающиеся друг на друга – это кластер. Выявлять кластер – это вроде бы экспоненциальная по сложности задача. То есть, если кластер из N элементов таков, что ни одно из его подмножеств из N-1 элемента кластером не является, то тебя поймают только если Гугл может вычислить кластеры из N элементов. А простейший граф таким свойстом обладающий – это кольцо. Собственно, только кольцо этим свойством и обладает.

Значит каждый раз, когда Гугл ставит у себя в два раза больше компьютеров и оказывается способен вычислить кластеры размером в N элементов, вам достаточно добавить одну новую страничку (благо, халявных блогов хватает), чтобы опять выйти из зоны видимости. А в какой-то момент вычисление становится для Гугла уже просто экономически невыгодным, после чего можно вообще спать спокойно. Сейчас, кстти, магическое число вроде бы шесть, но врать не буду – не проверял.

Так, а при чем тут коррупция?

Как устроена взятка? Чиновник (будь то госчиновник или крупный менеджер в крумной фирме) имеет контракт, за который будут платить чужие деньги. Заказчик дает ему часть этих денег и получает контракт. Заметили? Типичный обмен линками!

Некоторые государства относятся к этому куда серьезнее чем Росссия или США. В Китае и расстрелять запросто могут, а то и вообще, на запасные органы разобрать, на экспорт. Да и в СССР с этим не все просто было. Может не как в Китае, но все равно ловили... Что происходит в этом случае? Обмениваться линками уже нельзя. А создавать "кольца" еще можно. Нужно только чтобы размер кольца превышал вычислительную мощность правоохранительных органов.

Ну, хорошо, а что такое "кольцо" в случае взяток? А это доброе старое "свои люди – сочтемся". Это когда не "баш на баш", а когда "все для своих". Ты помогаешь Васе, Вася помогает Пете, Петя помогает Степе, Степа готов на все для Лены, а уж Лена для вас тоже готова постараться... Никаких взяток. Как сказано в одном фильме времен начала перестрйоки: "А умные люди не обвешивают и взяток не берут! Умные люди помогают друг другу!" Воистину так...

Эх...  Гугла на них нет. Хотя может и не надо? Вот у китайцев правоохранительные оргаы довели кольца уже до таких размеров, что они помогают друг другу даже в эмиграции. Работает отлично... для китайцев, само собой. Как бы хорошо жилось если бы русские люди помогали друг другу... А то говорят тебе "How are you doing?" и все что приходит в голову - "Не дождетесь!"

Sunday, August 23, 2009

То, что Король не может у меня отобрать

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

Миша хотел уехать. Не спрашивайте зачем, не знаю. Может быть ему не нравились сказки. Но он хотел уехать. "Какой мне смысл зарабатывать деньги или иметь квартиру, если я не смогу их забрать с собой уезжая из страны?" Спрашивал он. "Знания и профессия – это единственная собственность, которую они не могут отобрать на таможне."

Нам с вами повезло, мы теперь живем в Свободном Мире, мы можем иметь собственность. А можем ли?

Два дня назад я отьезжал от дома и заметил невдалеке табличку "Estate Sale" Обычно это означает, что кто-то умер и оставил всякий хлам, который не нужен его наследникам. В Древнем Египте этот хлам свалили бы в гробницу усопшего, но теперь мы знаем, что тому это все равно не нужно, так что мы обычно просто распродаем оставшиеся ненужные вещи. Именно это и означает слово "estate": ваши земные богатства, ваши вещи, ваша собственность.

Мы привыкли думать о собственности как о чем-то, что безраздельно наше; что-то, на наличие чего мы можем положиться, когда оно нужно; что-то, чем мы можем распоряжаться как хотим, поскольку имеем право на это. А имеем ли?

Подумайте об американской святыне, воплощении американской мечты – доме, недвижимости. По-английски это называется "real estate". А знаете почему оно называется "real"? Многие думают это потому, что недвижимость – это единственная "настоящая" собствненость, в противоположность всякой преходящей, портящейся, нестабильной...

Увы, они неправы. Выражение это происходит из испанского, так что "real" - это не "реальная" собственность, это "royal" – "королевская" собственность. Это то, что принадлежит Короне, а вы лишь пользуетесь им.

Да, конечно, у нас больше нет Короля, не правда ли? Однако, подумайте, что случится, если вы перестанете платить налог на недвижимость? Вам по-прежнему кажется, что недвижимость – это "реальная" собственность, или она начинает выглядеть больше похожей на аренду?

Увы, собственность по-прежнему принадлежит Короне. У нас просто теперь другие названия для этого – государство, штат, графство, город, но суть все та же самая. Ваша "собственность" вам по сути не принадлежит, у вас просто есть право на ее использование. Кстати, очень дорогое право. В Штатах это сотни тысяч долларов. И после того как вы влезли в долги и купили это право у другого такого же бедолаги, вы обязаны платить арендную плату именуемую налогом на недвижимость. Попробуйте ее не платить, и настоящий владелец – государство, графство, город выставит вас на улицу. В Свободном Мире мы по-прежнему не можем владеть собственностью.

Позвольте рассказать еще одну историю для иллюстрации темы. Примерно год или два назад один из более чем успешных Интернет-бизнесменов Перри Белчер сделал ошибку. Он взялся рекламировать и продавать один из бесчисленных продуктов для похудания. Уж не знаю, что там случилось, может продукт и правда не мог выполнить того, что обещал – большиство продуктов для похудания страдают этой проблемой, а может Перри просто был слишком успешным и привлек внимание больших компаний, работающих в данной нише, не знаю. Но одним утром к нему заявился шериф местного графства – это что-то вроде области, и опечатал все его владения. Это было даже не FDA (агенство следящее за продуктами и лекарствами) или FTC (комиссия по соблюдению правил торговли), это было местное правительство. Ну, как мэрия или там, губернатор области, которые получили сначала несколько жалоб от покупателей, а потом несколько миллионов от Перри – все, чем он в тот момент владел. Я даже не утверждаю, что возможность пополнить бюджет была причиной – я лишь констатирую факт, деньги принадлежали Перри и ушли в бюджет. Собственно, для истории это неважно. А что важно, это то, что Перри потерял все – недвижимость, счета в банках, бизнес... Все было конфисковано. Король пришел и забрал все себе как в средневековой Европе или, там, Риме времен солдатских императоров или Нерона.

Тем не менее, через год с половиной, Перри опять на ногах и опять зарабатывает миллионы. Именно. Через полтора года. Миллионы. Осталось совсем немного того, что Король не смог забрать – его друзей и умение Перри продавать.

В современной Америке все по-прежнему ушло недалеко от СССР. Король по-прежнему может забрать всю вашу собственность по прихоти адвокатов, судов или просто госчиновника. Да, повод нужен поосновательней, но только повод. Разбираться особенно все равно никто не будет. Пришла жалоба от покупателя (вполне, возможно, оплаченная конкурентами) – и это ваша проблема доказывать, что вы – не верблюд. "Лес рубят – щепки летят." Или там, в английском варианте, "shit happens." Однако, так же как и в СССР, остается то, что Король забрать не может: ваши знания и то, что в СССР называли пренебрежительным словом "связи" – ваших друзей.

В этом суть экономики знаний. Впервые за всю человеческую историю у нас есть нечто, что Король не может у нас отобрать. Впервые, мы не взаимозаменяемые рабы, у нас есть что-то, что нельзя отобрать – знания, навыки, друзья.

Не поймите меня неправильно, деньги – важны. Я много работаю, чтобы их зарабатывать, если честно, иногда кажется, что слишком много. Ну, что сказать? Я учусь. В частности у людей, которые со временем пополнят ряды моих друзей. И это-то и есть самое важное, потому что учась мы получаем знания, навыки и друзей.

Потому что знания, навыки и друзья – это то, что Король не может у меня отобрать.

Как всегда с персонального сайта, но на этот раз еще и перевод с английского.

Wednesday, August 19, 2009

Устройство для свежего воздуха...

Сегодня в почте пришла вот такая вот открытка от адвоката, помогавшего нам с оформлением патентов. Человек он с чувством юмора, так что на открытке изображена реальная картинка из реального патента "Устройство для свежего воздуха". Мелкий текст внизу обьясняет, что в связи с пожарами в калифорнийских гостинницах, когда люди задыхались, устройство позволяет получить свежий воздух из... канализационной трубы! Как говорил Арнольд Шварцнегер (кстати, губернатор Калифорнии) в фильме "Total Recall": "No shit!"

Устройство для свежего воздуха

С персонального блога, разумеется...

Friday, August 14, 2009

Корпорация, которая нанимает лучших

Многие фирмы очень гордятся тем, что нанимают только "лучших". Звучит разумно, правда? Зачем нанимать кого-то, как не лучших, если можешь себе это позволить?

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

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

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

  1. Разбросайте девелоперов по чистому кампусу
  2. Посыпьте газиллионом компьютеров
  3. Намажьте акциями, бонусами и хорошими зарплатами
  4. Периодически по необходиомсти засовывайте в них еду
  5. Повторяйте 20 лет

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

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

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

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

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

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

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

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

С персонального блога, само собой...

Tuesday, July 28, 2009

WYMIWYG – хотели? Получите! Ничего не знаю, оплачено!

Все в курсе, что такое WYSIWYG? Наверняка все. А я вот хочу поговорить про WYMIWYG – What You Measure Is What You Get, и почему в большинстве случаев метрики – это совсем не то, что вы хотите в менджменте программными проектами.

Ну, да, кросс-пост с персонального как обычно...

Метрики при разработке софта

Нет, правда, а как иначе? Инженеры мы или не не инженеры? Усё должно меряться. И вот приходит новый менеджер в команду и начинает писать спаслания: «Чего-то я сегодня не заметил, чтобы каждый девелопер, пришедший на работу, исправил бы баг. Нам надо исправлять по крайней мере по два бага на девелопера в день!» Метрика? Еще какая метрика. Осмысленная? Ну, если у вас 300 багов, 10 девелоперов, и две недели, то куда деться? И правда надо чинить по два бага в день. Однако... отгадайте, к чему такая метрика приведет?

Во-первых, люди – не дураки. Им зарплата нужна, а выпендриваться большинству (кроме законченных идиотов вроде меня) – лень. Так что, «командир сказал хорек, и никаких сусликов!» Сказано баги чинить, будем баги чинить. План по валу, вал по плану.

Теперь, о том, что метрика не мерит. Первым результатом в любой команде будет всплеск регрессий. Это когда каждый починенный баг вносит 1-2 новых. Это то, что вы хотели? Вряд ли, правда?

Впрочем, социалистического менеджера такие мелочи не остановят. Он и регрессии может померять. И после того, как он начал мерить все индикаторы, до которых он мог додуматься и увидеть, а люди научатся их имитировать, отгадайте, что происходит следующим?

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

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

Исторические корни метрик

Сейчас я скажу одну «мыслю», с которой многие не согласятся. Но я ее все-таки скажу. Исторические корни метрик – в социалистическом обществе. Помните, Владимира Ильича? «Социализм – это учет и контроль!» И правда. В социалистическом (индустриальном) общесте метрики работали отлично. Скажем, есть рабочий на заводе, заворачивает винты в правые передние дверцы машин на конвейере. Темп у него задан, так что завинтить он должен одно и то же количество винтов в смену. Зато количество винтов, которые не прошли контроль качества – это отличная метрика, чтобы мерить его производительность. Чем меньше винтов плохо закручено – тем лучше рабоник. Все просто, правда?

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

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

Это – принцип экономики знаний: менеджер не знает, как действительно его подчиненные достигают результата. Именно это и делает экономику знаний экономикой знаний. Если бы это было не так, ваша фирма была бы обычной социалистической (индустриальной) фабрикой. А теперь сами подумайте, если менеджер реально не знает, как его подчиненные добиваются успеха, как он может мерять это?

Баги? Строки кода? См. выше.

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

Подумайте, Билл Гейтс и Стив Джобс ни использовали формальные метрики при управлении командами, когда они еще занимались этим. Что вам дает основания думать, что вы умнее их?

А чего это я все говорю?

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

Ну, эволюционный марксизм вы и сами увидели – то, что метрики – это тяжелое наследие уходящего социалистического общественного строя. Однако самое интересное не это, а то что... отгадайте, кто любит метрики в экономике знаний? Ага. Они, родимые. Корпоративные паразиты.

Сами посудите. Как только вас начинают мерять линейкой, вы знаете что симулировать. Вы знаете, как утилизовать ваши социальные связи. Вы знаете как использовать свое влияние в группе. Если вы – паразит-подчиненный, вы можете хватать легие баги и подсовывать трудные коллегам. Вы можете использовать свои связи с тест командой, чтобы разбивать баги в облако мелких. А уж если вам все-таки достанется трудный баг, вы знаете, как превратить его в проблему для всей группы, застопорить всю работу, чтобы никто не мог ничего чинить, и довести дело до того, что когда вы его все-таки почините, все вздохнут с облегчением и менеджмент еще долго будет восхищаться вашим подвигом. Если вы – паразит-мендежер, вы знаете как использовать баги, чтобы продвигать тех, кого хотите, и задвигать тех, кого хотите; как презентовать успехи высшему менеджменту который в разработке вообще ни в зуб ногой, поскольку пришел из маркетинга; вы знаете как держать людей в напряжении – не спрашивайте, зачем это нужно менеджерам-паразитам, никогда не мог этого понять, но подозреваю, что это «старый добрый принцип» держиморд «щоб боялись!»

Так что ради чего я пишу это статью – это чтобы напомнить, что корпоративная среда – это эволюционная среда. В эволюционной среде выживает наиболее приспособленный. Наиболее приспособленный – это вовсе необязательно наиболее полезный, в большинстве случаев это отнюдь не более полезный. Каждый раз когда вы меряете что-то, кроме сколько денег заработала фирма в результате усилий работника, вы меряете совсем не то, что вы на самом деле хотите. Измерить сколько денег заработала фирма на усилиях конкретного программиста, пи-эма, тестера, спеца по маркетингу обычно просто физически невозможно. Так что если вы их меряете, вы меряете не то, что хотите. А когда вы меряете не то, что хотите, вы получаете не то, что хотите. WYMIWYG, однако…