Archive for the ‘Деньги’ Category

Бизнес — это вам не хиханьки-хаханьки.

Вторник, Июль 15th, 2008

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

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

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

А еще, что компания будет очень успешная, что все решения будут продуманы, стратегически выверены и т.п.

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

В общем»надежды юношей питают». Вот длинный список того,что пошло не по идеальному плану. Причем, как я теперь понимаю, пошло не из-за того, что я такой глупый, а потому, что мои теории разбились о практику.

Итак, разбор полетов. Будут повторения, особенно важных пунктов.

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

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

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

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

5.  По поводу мягкого и чуткого метода управления, который я (да и многие программисты) хотят применить. Увы, в жизни он работает плохо. Везде нужен баланс. Людей нельзя кормить сиропом… Нужен баланс пряника и кнута. Кнут необходим. Бросьте мечты о одном прянике и вдумчивом обучении послушных учеников. Во первых люди не мечтают стать вашими учениками, во вторых есть люди которые воспринимаю только «доброе слово + пистолет».

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

7. Так же будет в какой-нибудь момент ситуация «торговали, торговали, аж сдача закончилась». Вероятнее всего вы вначале будете достаточно бестолково вести бухгалтерию (так как вы и я программист, а не бухгалтер) и не заметите, когда ваши расходы станут больше чем доходы. Кстати, когда вы стартовали бизнес, вы могли даже дать себе зарок (я дал 😉 ) , что вы никогда не допустите такой ситуации.

8. Да, насчет всего вашего планирования. Когда вы лежали на кушетки и мечтали о бизнесе, вы ведь представляли/представляете себя гениальным стратегом, предсказывающим каждый пук рынка. Так вот, реальный рынок даст сто очков каждому форы и все равно нас переиграет. Плюс обнаруживается, что собственно говоря, представлять ваши победы и делать реальное планирование — это разные вещи.

Хех… На сегодня хватит…. Оставайтесь на нашей волне. Продолжение следует.

Ну и как обычно, комментарии/пинки и восторженные возгласы приветствуются.

Программистский синхрофазотрон (часть 3, о estimat’ах и качестве).

Понедельник, Июнь 30th, 2008

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

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

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

Итак начну из далека.

Пусть есть электрик Вася, сидящий на зарплате, и пьющий водку в рабочее время. И вдруг к этому Васе приходит белочка и он  думает , а чего это я водку все пью, лучше бабла подзашибу. Но блин, даже если я начну вкалывать, то дай бог мне подымут зарплату на 20%, лучше я пойду к своему начальнику и скажу, мол давай работать сдельно. Так Вася и делает. Приходит к начальнику и говорит, так мол и так, с водкой завяжу, сдельно работать будем и тебе лучше (я в пять раз больше сделаю и качественней делать буду) и мне лишняя денюжка в кармане. Начальник чешет голову и говорит, ладно Вася — починка розетки — 5 рублей, починка короткого замыкания — 10 рублей, полная проводка квартиры — 100 рублей. Если у заказчика все после этого через неделю сгорело — то с тебя вычет в двойном объеме. Проходит год, Вася шустрит, иногда правда клиенты ругаются, но суммарно все довольны — Вася при деньгам, начальник троих других электриков уволил, так как Вася за троих справляется, клиенты — счастливы не нюхать перегар Васи.

История вторая — есть Петя строитель. Так же самая картина маслом, но пьет он не водку, а пиво. И договаривается за 1000 положенных кирпичей. Начальнику тоже по душе, чтобы Петя работал и компания на нем деньги делала. Да, и теперь кладет кирпич в три раза быстрее, и при этом теперь больше его построек соответствует ГОСТу 1274-32-12б по укладке кирпича.
История номер три — есть Коля, модный массажист, делающий все виды массажа начиная от Боливийского и заканчивая массажем под названием «Рессора Белаза». Коля, правда пьет уже не водку и пиво, а коньяк (не меньше 3 звездочек), но это мало что меняет. И вот он приходит к начальнику и говорит, а давайте я буду работать сдельно и буду делать все массажи в 5 лучше и в 5 раз быстрее. И вот тут начальник, выпучив глаза, говорит Коле…. Коля, а с коньячком-то видно пора таки завязывать, ты что с дуба упал в 5 раз быстрее массаж делать? Да и как мы будет проверять, что ты в 5 раз качественнее массаж сделал? У тебя что же есть массажеметр? Так, что пойди ка ты Коля, отдохни немножко и с свежими мозгами назад на зарплате работать возвращайся.
Ну, теперь более серьезно. Какова разница между вариантом Васей, Петей и Колей? А разница то, что в первых двух вариантах есть достаточно простое количественное измерение (связанной с доходом) сделанной работы и определенный (разумно измеримый) качественный уровень. В третьем же варианте, хотя количественное измерение есть, но оно не связанно с доходом и качественного измерения нету.

И теперь мы наконец возвращаемся к нашим горе-программистам.

С одной стороны, программисты (включая меня) очень хотят чисто сдельную оплату. Причем не просто сдельную оплату (такую как имеют freelancer’ы), а сдельную оплату внутри фирмы, когда дополнительной работы по поиску клиентов, ведению бухгалтерии у них нет, а вот денег можно зашибить дофига, если ты достаточно эффективен.
Кстати, коротенькое замечание сдельная = fixed cost за задачу, а не почасовка. Почасовка — это фактическа зарплата, просто в зависимости от того, сколько отсидишь на работе. Концептуально почасовка не меняет отношения к тому на сколько быстро хочется решить задачу. Я бы даже сказал, почасовка наоборот двигает человека в направлении растягивания задач.
Так вот, возвращаясь к тому, что программисты хотят сдельную оплату. Есть исследования, которые показывают, что отличный программист может быть эффективнее среднего в 10 раз. Соответственно, перед глазами мелькают цифры с 5-6 нулями за год 😉
И вроде все было бы хорошо, если бы не
— Отсутсвие типовых задач
Фактически сама по себе — это не проблема, но я покажу, во что оно выливается ниже.
Тот же электрик или строитель, да и даже массажист имеет вполне ограниченный набор типовых задач. Их может быть скажем сотня, но все таки сотня разных задач — это вполне разумное число. И эти задачи можно записать.
— Отсутсвие количественной оценки задачи
Вот это проблема, которая вытекает из первой. Так как типовых задач нет, то все задачи не типовые. Для типовых задач, даже если их нельзя оценить впрямую, то можно оценить чисто статистически, сколько они занимают и какую прибыль они приносят. В случае, если же задачи не типовые, то начинается проблемы с их оценкой. И дай бог, если задачу можно оценить каким-то разумным методом. В программировании же, оценка чаще всего очень эмпирическая и +/- 30% даже на небольших задачах считается вполне неплохой точностью.  В добавление к этим проблемам, еще зачастую единственный человек который может дать оценку — является тот самым программист, работающий на проекте. И начальник никак не может проверить, дал ли он настоящую оценку или завысил ее в три раза.

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

— Отсутствие измеряемого качества

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

И поэтому в ушах начальника это звучит так «Давайте я увеличу мое субъективное вложение в 5 раз, а вы мне увеличите объективную зарплату в 5 раз». Так в жизни не бывает, что субъективное оценивается равным объективному. И кстати, именно поэтому хорошие программисты получают зарплату в 2-3 раза больше средних, а не в 10. Так как они только субъективно в 10 раз эффективнее, и то непонятно по чьим измерениям, когда же субъективное конвертируется, то на выходе получает большая в 2-3 объективных раза зарплата.
Фух… Что-то я начал запутываться, но думаю вы меня поняли. Вся проблема именно в отсутствии объективных оценок. Поэтому думаю к такому виду сотрудничества как я писал в первых частях — IT бизнес таки не придет.

Воооот… Ну и очень хотелось бы услышать ваши мнения, комментарии и идеи.

Дополнение N1: Итак, давайте, оценку = estimate из понятия абстрактного (а-ля сферический конь в вакууме) переведем на понятие реальное. Есть конечный человек которые делает оценку задачи.

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

Ситуация 2. Оценку делает каждый для себя. В таком случае, люди могут завышать оценку, тем самым выбивая деньги из фирмы.

Ситуация 3. Оценку делает team lead или другой опытный разработчик имеющий большой опыт на проекте. Это достаточно разумная практика, но в ней есть две проблемы. Даже team lead не дает точную оценку и очень обидно будет программистам, которые недополучат денег из-за ошибки team lead’а. Вторая проблема, что ситуация 3 вырождается в ситуацию 2 для самого team lead’а. То есть самый опытный человек делает оценку для самого себя и может ее завышать.

Учитывая, что весь этот сыр бор с программистским синхрофазотроном обсуждается именно для самых толковых программистов, то Ситуация 2+3, крайне важна. Непонятно, кто будет оценивать оценку team lead’а.

Дополнение 2. У многих возникает удивление. Типа, если программисты станут в 3 раза быстрее работать, какого фига они сейчас так не работают. Так что, эти заразы, работают не на полную мощность.

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

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

Директор, дай рублик на ремонт.

Среда, Март 12th, 2008

Представьте себе, идет серьезные переговоры в кабинете директора. Приехали большие потенциальные заказчики. Без стука, заходит завхоз в грязных сапожищах, ничего не спрашивая, подходит к директору и заявляет: “Э… тут ручка поломалась, нужна десятка, чтобы купить новую”, директор извиняется перед заказчиками, начинает рыться в портмоне, находит десятку, отдает завхозу. Через десять минут тоже самое повторяет с фразами «Закончилась туалетная бумага» или еще чего-нибудь. Ну, как вы догадываетесь переговоры проходят, ну очень успешно и больше о этих заказчиках никто ничего не слышал.

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

Как вы считаете, должен ли директор:

Тратить свое время на выдачу такой суммы лично

Контролировать траты таких размером

Прерываться, на решение вопросов данного уровня

Я искренне надеюсь, что вы ответили «нет».

Теперь другой вопрос, почему, собственно, он не должен этого делать? Да потом, что час работы директора, скажем условно стоит $60/ч (это не его ЗП, а скорее стоимость его воздействия на фирму). Так, вот для того, чтобы решить даже такую мелочь, он отвлечется скажем на 5 минут (это еще хороший случай, так как, если мысля думается и ее сбить, то она долго может не возвращаться). Как результат, он потратит $60/ч*5/60 = $5, для того, чтобы даже не сэкономить, а просто выдать $2. В результате туалетная бумага, купленная завхозом, по цене будет ближе к золотой парче 🙂

Соответственно напрашивается несколько выводов:

— Обычно у завхоза на руках должны быть какие-то деньги, чтобы он не бегал за каждым рублем.

— У него есть предел до который он имеет тратить не спрашивая (например, $30 в месяц).

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

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

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

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

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

Идем дальше, добираемся до менеджеров. И вот тут мысль спориться окончательно, почему-то, если программист имеет право тратить $5/месяц без запросов вперед, то менеджеру могут выделить ну дай бог $7/месяц, ну в самом крайнем случае $10.

Опять же, менеджер уже способен запороть не просто один проект на пару тысяч, а штучки три проекта, которые на нем висят, включая работу еще штук 5 программистов, которые ему подчинены. Но опять же выделить ему лимит в $50/месяц…. у… не, страшно и низзя.

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

Как мне кажется, примерная формула предела для большинства IT работников, что человек имеет тратить в месяц до 1% * количество людей в иерархии подчиненных ему (включая самого человека) * на свою ЗП. Для программиста — это 1% от его зарплаты, для менеджера младшего менеджера с 5 подчиненными получается 6% от его ЗП, для старшего менеджера – 5 прямых подчиненных у каждого из которых 5 своих – 26% от ЗП.

Замечу, это не ограничения сколько он вообще может потратить, это ограничения сколько он может тратить и оповещать об этом пост-фактум.

Завхоз в этом смысле исключение, так как заранее известно, что ему понадобиться больше, чем 1% от ЗП.По этому поводу ему можно/нужно выставить сумму прямым образом (без учета формулы). Кстати, он и не IT работник, так что формула к нему пожалуй еще и поэтому поводу не применима.

P.S. Пост основан на реальных событиях. Это просто меня убила сегодня ситуация, когда менеджер у которого суммарно в иерархии порядка 30 человек (с зарплатами от $4k до $8k в месяц) пошел к своему начальнику, чтобы тот одобрил трату в $1.2k.

P.P.S. Прошла неделя с тех пор как начала обсуждаться это покупка. Она уже прошла через менеджера, фин. директора, админа и пока еще не куплена. Магазин где ее можно купить находится в 5 минутах от офиса.

P.P.P.S. После полторы недели, меня достало ожидание, пошел к фин. директору и вопрос был решен в течении 5 минут. Замечу, что на разные разговоры и обсуждения уже было потрачено часа полтора.

Умение оценить нерабочее время.

Воскресенье, Март 9th, 2008

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

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

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

Тем не менее, нужно иметь какую-то внутреннюю оценку стоимости своего нерабочего времени. Тогда получается, если вы имеете оценку нерабочего часа условного говоря $2/ч, то вы не станете тратить 4 часа, на поиск скидки в $2 доллара.

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

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

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