Archive for the ‘Менеджмент’ Category

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Еще раз о менеджерах среднего звена.

Воскресенье, Июль 13th, 2008

В самом-самом начале своего блога написал статью о менеджерах среднего звена.

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

То есть основная функция быть шестеренкой посредине. В общем-то я до сих пор так и считаю. Единственное, что хотелось добавить, что очень важна «передаточная функция» шестеренки.

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

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

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

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

Программистский синхрофазотрон (часть 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 с знакомыми. И это на самом деле выходит за рамки — передохуть подумать.

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

Стандартная ошибка начинающих программистов-бизнесменов.

Пятница, Июнь 27th, 2008

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

— Я могу сделать это лучше других.

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

— Я толком не могу контролировать, что они сделают это качественно.

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

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

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

— Я же трачу на это деньги.

Частично, я об этом писал в статье «Умение оценить нерабочее время«. Подумайте, вы можете делать дело (чинить стул), которые не принесет денег фирме и стратегическое планирование, которое в удачном случае может принести серьезную прибыль. Соответственно, нужно оценить стоимость своего часа и все задачи которые лежат ниже этой стоимость должен делать кто-то другой.

Дополнение от Станислава Малкина:

— Программисты не любят переходить к следующей задаче

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