четверг, 23 сентября 2010 г. - www.msmirnov.ru

Application Developer Days 2010. Ярославль, 23 Сент. День1.

Сегодня прошел первый день конференции Application Developer Days 2010 в Ярославле.

Доклады. которые мне показались наиболее интересными:

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

Наиболее интересными мне показались следующие тезисы:
- С 2000-го года в компании Individ полностью открыта финансовая информация по зарплатам сотрудников. Т.е. зарплаты всех сотрудников стали известны всем. После этого часть сотрудников уволилась. Оставшиеся сотрудники повысили эффективность работы компании. Вновь приходящие сотрудники уже поддерживали высокую эффективность.

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

- Формула E = IQ x EQ^2 - эффективность сотрудника равна произведению его IQ на эмоциональный коэффициент в квадрате. IQ человека формируется к 13-14 годам и больше не развивается, а EQ можно развивать всю жизнь.


- Людей при найме на работу оценивают не по знаниям, а по их жизненным позициям.

- Среднее время работы программиста в компании - 3 года.

2. Дополненная реальность через web-камеру. Доклад читал Михаил Кокорев.
Доклад был посвящен методам и библиотекам распознавания видео-изображений и выполнения с ними различных операций.

Какие методы заполнились больше всего:
- Распознавание маркеров. На камеру показываются маркеры - специальные заранее известные символы - например, человек может налепить себе такой символ на лоб. Библиотека-обработчик определяет его и производит обработку. Например, рисует вместо него шлем. Получается человек в шлеме. Примеры библиотек - NyARToolkit, SLARToolkit (для SilverLight), FLARToolkit (для Flash).

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

Пример приложения, использующего алгоритм SURF (написан кстати на .NET):
Программа находит книжку из, которую ей показали на камеру:


- Распознавание лиц. Бесплатная библиотека FaceLight для SilverLight и платная Luxand Face SDK, которая может определять лица и части лиц - глаза, брови, следить за поворотом головы и т.п.

Хотелось также посетить доклад Искуственный интеллект в играх, но к сожалению не успел. Надеюсь посмотреть его на видео.

Завтра ждет второй день.

P.S. Несколько фотографий:
Мой сайт - www.msmirnov.ru

62 комментария:

  1. Доклад про искусственный интеллект в играх был чоткий. Жаль, что вы не остались на него.

    ОтветитьУдалить
  2. Ну вот так вот получилось....
    Завтра расскажешь, ну или на видео потом посмотрим.

    ОтветитьУдалить
  3. >> что в каждый момент времени работает не более 13-ти человек.



    Интересно, когда я хожу по офису, или сижу на кухне на большом мешке набитом какими-то мягкими шариками, или вяло бреду за водой... Это что, перестало считаться тем, что я работаю?!

    Если мы с коллегой, обсуждая проблему, говорим: "пошли чаю попьём" - мы тут же перестали работать?!

    В сад такие "замеры", проводимые фанатами некого "контроля".

    ОтветитьУдалить
  4. дык, я вот в офисе допустим официально работаю на час меньше, но зато компенсирую это время работой в трейне по утрам и вечером. и как такие замеры считать :)

    ОтветитьУдалить
  5. Michael Nemtsev Да не до всех доходит, что контроль - это фикция. Контрол-фрики везде.

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



    На счет того, что идешь или треплешься - ну да, они считают типа не работаешь.

    ОтветитьУдалить
  7. Michael Smirnov ну так это не правильно же, интелектуальная работа не может измеряться методами пригодными для измерения результаты работы допустим на конвеере. Это если ты ящики разгружаешь или на конвееры конфеты упаковываешь, то да, если идешь и трепешься то не работаешь.



    А с интелектуальной работой наоборот, думается именно тогда когда НЕ сидишь за рабочим местом

    ОтветитьУдалить
  8. Только что минут 20 провёл в митинг руме, один сидел в удобном кресле, смотрел в потолок. Не работал ни фига, конечно :) Потом пришёл и сделал за 2 минуты задачу.



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

    Допустим, я 5 часов работал в сумме и 3-4 часа сидел, шёл, ел, пил, писАл, пИсал и т.д.

    О чём это говорит? Я не знаю. О чём это точно НЕ говорит, так это о том, что моя продуктивность была бы выше, если бы я все 8-9 часов "работал".

    Странные метрики странных фриков.

    ОтветитьУдалить
  9. По поводу зарплат, всё очень сильно зависит от фирмы и политики найма персонала. Т.е. скорее всего есть такие компании, которые от открытия зарплат очень сильно пострадают.



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



    У нас, кстати, открытые з/п, и я от этого тащусь)

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

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

    Может, конечно, российская специфика.. где себя не продают, а надо, чтобы было "как у всех".

    @Andrey Markeev, а можно узнать, почему вот такое "тащусь"?

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



    Сложно, короче, тут что-то контролировать. А если начать заставлять всех более точно оценивать и попадать в эту оценку - пострадает производительность/качество, ну и сама оценка просто безосновательно увеличится.

    ОтветитьУдалить
  12. @Elena Raga, наверное, я просто не любитель слухов и перешептываний "за спиной" на работе, люблю чтобы все было честно и ясно.



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

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



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



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

    ОтветитьУдалить
  13. @Andrey Markeev, такая система начисто лишает "вилок", получается.. как госконтора. Имхо, гибкости не хватает такой системе. Тут либо контора небольшая или же HR отдела достойного нет, который рулит данной гибкостью :)

    ОтветитьУдалить
  14. а в чем гибкость-то? может быть, в том, чтобы платить скромному парню который делает 90% работы 20 килоденег, а балаболу, который нихера не делает, 40килоденег? это подлость, а не гибкость. а подлость, как известно, рано или поздно вылезает наружу.

    ОтветитьУдалить
  15. А как определяются эти 90%? Ну чисто из академического интереса. Мне, к примеру, даже сложно два куска чуть чуть разной работы оценить относительно друг друга.

    ОтветитьУдалить
  16. А что, сложно проверить? Не, ну кто сказал, что куски работы должны быть разными? Дай два одинаковых куска, и посмотри на результат.

    ОтветитьУдалить
  17. Зачем двоим людям делать одно и то же? Зачем вообще одно и тоже делать два раза?

    ОтветитьУдалить
  18. А зачем вообще нужно кого-то проверять? Зачем контролировать сотрудников? Зачем им объяснять что они должны работать? Зачем их потом увольнять? Я тоже не понимаю :) Живут себе и живут программисты, никого не трогают, а эти манагеры проклятущие лезут, жизню портят. гады, одно слово :))

    ОтветитьУдалить
  19. Не передергивай, ты сказал, что умеешь определять, что скромняга делает 90% работы. Ты им даешь эталонные задачи каждый месяц? Или это один раз в жизни делается?



    Или ещё интересней вопрос - как сравнить объём работ двух менеджеров. Какой процент они выполняют относительно друг друга?

    ОтветитьУдалить
  20. @Andrey Markeev ну так это проблема менеджмента что ктото перегружен, а другой недогружен

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

    ОтветитьУдалить
  21. Чаще всего это прекрасно видно. Особенно, со стороны. Я, к слову, не прожект менеджер. В большинстве случаев, кодю, точно также, как и все.

    ОтветитьУдалить
  22. @Andrey Markeev ну так если все кодят то ЗП у всех должна быть одинакова (в рамках уровня человека) просто бонус может полагаться тому кто сделал больше чем другие и все

    а ЗП не должна отличаться

    ОтветитьУдалить
  23. @Michael Nemtsev на практике чаще всего отличается. по крайней мере, в России. по идее, продуктивность очень сильно зависит от опыта работы и вообще от человека, от его способностей к самоорганизации, от его желания работать и некоторых, наверное, других факторов.

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

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



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

    ОтветитьУдалить
  25. @Andrey Markeev ну так вот если у когото продуктивность выше так он и будет получать больше на бонусах именно. т.е. если сделал за месяц то что запланировали за 1.5 то и дать человеку 1.5 ЗП.



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



    допустим как я выше писал я прихожу на работу к 9ти и ухожу в 4, причем еще хожу обедаю с час. несколько людей в команде всегда приходят раньше меня и уходят позже и едят на рабочих местах чтобы съекономить время, для них я могу казаться что я мало работаю, но начальник прекрастно знает мою продуктивность, что она в 1.5 раза выше чем у остальных в команде и мне не надо сидеть в офисе чтобы показывать хорошие результаты. для когото будет казаться что я мало работаю, и увидя мои бонусы они могут удивиться :)

    ОтветитьУдалить
  26. Pavel Hritonenko ну смотрите по burndown chart - выдавайте премию двоим кто вверху графика

    ОтветитьУдалить
  27. А что делать, если человек в отпуске? ;-) Или заболел. Или оценена задача неправильно была, а реально работы пришлось в два раза больше сделать?



    У нас не получается отмечать реальное время затраченное на выполнение задачи :-( Только приблизительно. И ещё, я не особо понимаю, как в Burndown chart разделять разработчиков. И вообще от анархического менеджмента мы только отходим, у нас довольно хитрые отношения с клиентами. Пока вопросов больше чем ответов.

    ОтветитьУдалить
  28. Pavel Hritonenko а какая разница, будет видна velocity человека и объем работы.

    неважно как оно было оценено, главное outcome произведенный

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

    кастом репорт сделай, кто сколько тасков сделал за месяц/итерацию

    ОтветитьУдалить
  29. Таск может быть "поправить текст в блоке", а может быть "переписать функционал виджета". Смотреть по ним бесполезно. "Outcome" его тоже не очень понятно как определять. Одинаковых задач почти нет.

    ОтветитьУдалить
  30. @Michael Nemtsev



    > т.е. если сделал за месяц то что запланировали за 1.5 то и дать человеку 1.5 ЗП

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



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

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



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

    ОтветитьУдалить
  31. ну собственно то же что и павел, в итоге, написал:)

    ОтветитьУдалить
  32. Трудозатраты и производительность - это вообще разные вещи. Если человек тупил целый день над получасовой задачей, или не получилось выяснить что он занимается не тем на стендапе утреннем, сколько он сделал?

    ОтветитьУдалить
  33. тут может иметь место тока чонить типа "сведение к среднему"

    ОтветитьУдалить
  34. Pavel Hritonenko ну так если задача оценена на полчаса а делал ее 2 то надо разобраться почему - если не правильно оценена то это другое => создаем новые задачи.

    а если просто тупит то это просто минус ему идет. и по графику будет видно - оценено в 0.5 а сделано за 2

    надо находить где наоборот просто

    ОтветитьУдалить
  35. ок, расскажу как сделано у нас. в SalesForce системе у нас есть пул клиентов и проектов что надо сделать. каждый месяц мы выбираем оттуда что кому больше нравится и приступаем к работе.

    задачи планируются, оцениваются и разбиваются в MS Project, потом ревьювятся 3мя людьми и приступаем к работе.

    Вся не техническая активность записывается в таски по определенным категориям, допустим "анализ", "написание statement of work", "планирование" и прочее. все эти задачи примерно имеют одинаковую длительность и по ним видно сколько стейтментов за сегодня я сделал, один или 3

    так же потом и по MS Project трекается клиентская активность - сколько какая задача в реальности заняла и сколько планировали. и если мы оценили проект в 30 дней а я сделал его за 20 то вот за это поощеряют

    ОтветитьУдалить
  36. Да, вот это обсуждение....... Я прямо как-то даже не ожидал.

    Думал, что тема распознавания образов будет более интересна. :)



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



    1. У них действительно есть ставки, которые всем известны. Чтобы повысить ставку надо пройти аттестацию. Аттестацию можно проходить через определенное время (не помню через полгода или год). Если проходишь аттестацию - получаешь следующий "разряд" и следующую ставку в тарифной сетке.



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

    ОтветитьУдалить
  37. А про 24е пост будет?



    Кстати, вы на вот етом не были случайно:

    >xorets На МК по DDD начался веселый конкурс: двое тихо рисуют UML,

    >а третий должен будет догадаться, что там нарисовано. #ADD2010

    :)

    ОтветитьУдалить
  38. Пост уже написал.

    Этот мастер-класс по DDD я уже на видео видел, поэтому на него не ходил.

    ОтветитьУдалить
  39. А у нас зарплаты закрытые + в контракте явное запрещение их разглашать.

    Позиция менеджмента проста: каждый работник должен чувствовать, что его оценивают высоко и быть удовлетворённым. И если Джон не удовлетворён зарплатой, то он может просто пойти и поговорить с менеджером на эту тему. Если удовлетворён - то вопросов нет, все довольны.

    В случае открытых зарплат возникают нежелательные побочные эффекты, когда Попкин (mid-developer) считает, что "вон Пупкину (senior) платят больше, пусть у Пупкина голова и болит".



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

    ОтветитьУдалить
  40. @Michael Smirnov, ссылку уже нашел, так что уже не надо



    @Alexey Raga, я ж не спорю. Для директоров есть преимущества, и немалые. На самом деле большинство фирм имеют закрытые з/п и соответствующую запись в контракте. Это всё понятно и логично и даже вполне нормально. Я работал так, но некоторые вещи меня действительно задевали.



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



    Вы скажете: сами дураки, надо ж пойти к директору и пробить себе з/п. Но психологически это не всегда просто, особенно означенным в предыдущих комментах "скромнягам". И тем более, всё очень зависит от директора/манагера, если он нормальный критик и немного шарит, то как правило ему ничего не стоит создать ощущение что фирма в дерьме и какое уж там повышение з/п.



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



    Что хорошо в обществе с открытой з/п: я знаю, что у скромняги Васи малая з/п, но он реально молодец. Я вижу это со стороны, и вижу не один раз, а несколько месяцев подряд. И я знаю, что Вася не подойдет к боссу, потому что он просто скромный парень. Поэтому я лично иду к боссу и говорю: слушай, вот Вася реально молодец, он сделал то-то и то-то, ты подумай, может повысить ему з/п. Через две недели Вася приходит к боссу и тот ему говорит (реальная ситуация, она на самом деле была): Вася, я знаю ты реально молодец, я это очень ценю, и возможно, мы тебе скоро выправим з/п. А наш босс вроде как все обещания свои пока держит, поэтому я реально за Васю очень рад, и все ж видят что он вкалывает, т.е. народ понимает, что контора реально поощряет людей, которые делают, а не балаболят.



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



    Да, конечно, есть и не сознательные личности, и откровенные вруны, и те которые любят ездить на других, и те которые вообще делать ничего не хотят. Но общественное мнение коллег в конце концов складывается не в их пользу, и дальше уже народ начинается банально жаловаться боссу, а босс уже имеет беседу на ковре, ну или там лишает чего-нибудь, потому что с некоторыми иначе никак. Пряники ж ведь вот они. А не нада? Будет кнут)



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



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

    ОтветитьУдалить
  41. @Andrey Markeev Я не скажу "сами дураки" ибо сама сумма ничего не значит в конечном итоге. Значение имеет именно удовлетворение суммой.

    Иными словами, если я, как, скажем, менеджер, заинтересован и в Васе и в Пете, но Вася счастлив делать свою работу за X, а Петя - за X+20%, то я могу захотеть поднапрячься и платить Пете больше. А могу и не захотеть. В любом случае, что я хочу точно - так это иметь возможность иметь свободу такого желания :)

    ОтветитьУдалить
  42. @Andrey Markeev, я ещё раз говорю. Что "вкалывали" из "чувства ответственности" - это всё очень субъективно. Оценивать кто сколько делает для компании чрезвычайно сложно. Я много раз встречался с ситуацией, когда "скромняга" хуярит кучу кучу кода, по вечерам и выходным, а потом это говно приходится разгребать. Извините за мат. И ладно, если просто разгребать, выкидывать, переписывать, хуже, когда этот код приносит прямые убытки, а этот скромняга выглядит молодцом, потому что много написал. А менеджменту часто наплевать, как это сделано, главное, что это работает. И методов для оценки работы каждого конкретного сотрудника - я не представляю. Поэтому у нас оклады не разглашаются (хотя многие знают кто сколько получает), а вот премя даётся менеджером в абсолютной величине в рублях на всю команду. Ну и команда уже сама её делит между участниками.

    ОтветитьУдалить
  43. Меня вот смешит ситуация - "оклады не разглашаются (хотя многие знают кто сколько получает)". Так и есть ведь.

    ОтветитьУдалить
  44. Pavel Hritonenko я описанную ситуацию очень часто встречал в SCRUM проектах, когда все хреначат код только чтобы закрыть таски, а как оно там в реалиях работает никого не волнует

    ОтветитьУдалить
  45. Миш, а это всё от того, что не правильно определено (или не опеределено), что такое - "готово" (What does "done" mean?)

    ОтветитьУдалить
  46. Pavel Hritonenko ну команды не хотели интеграционные тесты прогонять, ибо они не входили в спринт

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



    1. Код написан

    2. Код оттестирован разработчиком

    3. Проведено дымовое тестирование разработчиком в демонстрационном окружении (то есть там, где всё вместе будет показываться, куда выкладывается система автоматически из dev-ветки SVN)

    4. Результаты тестирования соответствуют заданию.

    ОтветитьУдалить
  48. в большинстве команда практикующих SCRUM где я работал номер 3 невходил в done criteria

    ОтветитьУдалить
  49. @Pavel Hritonenko

    > скромняга" хуярит кучу кучу кода, по вечерам и выходным,

    > а потом это говно приходится разгребать.

    согласен, бывает и так, ну в общем-то на то и нужны codereview и тестирование, в т.ч. юнит-тестирование



    > Ну и команда уже сама её делит между участниками.

    И чо, неужели эта демократия с премиями работает? Неужели вы там из-за таких премий не ругаетесь/ссоритесь?:)



    > What does "done" mean?

    ну собсна, есть "готово", а есть "протестировано", есть "протестировано на продакшн", и еще есть "закрыто" :) соответственно первые два статуса из баг-трекинга, вторые два статуса это уже из хелпдеска/срм или где там у вас клиентские задачи.

    ну мне кажется, по "готово" отмечать время в бэклоге это ваще преступление. Кстати, диаграмма сгорания с двумя ветками - по "готово" и по "протестировано", выглядит весьма показательно:)))

    ОтветитьУдалить
  50. Michael Nemtsev SCRUM - довольно гибкая штука. К сожалению, многие понимают SCRUM как наличие standup-митингов и на этом останавливаются. Часто пытаются использовать SCRUM как инструмент контроля, что вообще бред.

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



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

    ОтветитьУдалить
  51. > согласен, бывает и так



    Так бывает в 80-90% случаев. Количество не всегда переходит в качество, хотя чаще всего на первом этапе менеджмент устраивает именно количество и скорость.



    > И чо, неужели эта демократия с премиями работает?



    Работает, почему нет? И занимает последнее время обсуждения распределения не более 10-15 минут. Самое главное, что нет внешнего по отношению к команде человека, который считает, что тот, кто больше пишет кода - делает больше работы. Или тот, кто дольше сидит в офисе - лучше работает.



    > ну собсна, есть "готово", а есть "протестировано", есть "протестировано на продакшн", и еще есть "закрыто"



    Эти все промежуточные статусы внутри команды лишь путают. Готово, это значит, что работы командой больше проводится не будут, и всё. Если нужен таск для deploy - повесь его, или запланируй его отдельно. У задачи три статуса - not started, in progress, done. Всё, незачем придумывать что-то ещё. Незачем вообще говорить, что задача готова, если она не протестирована, или не отрефакторена, или не проведено code-review, если это подразумевается done criteria.



    > номер 3 невходил в done criteria



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

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

    P.S. Последней из метрик, которые у нас пытались применить была "количество reopened багов на человека". Типа, если сново возникло то, что ты фиксил, то ты крайне хреново фиксил и, скорее всего, костыли ставил, вместо нормальных решений.

    ОтветитьУдалить
  53. вопрос вообще-то в открытой/закрытой зарплате



    насчет оценки, никто не говорит что это легко, и всё же выявить общие закономерности на протяжении нескольких месяцев работы - мне кажется, вполне реально. ну видно же говнокод, видно же.. даже если у меня будет срок "вчера", я и то не напишу так, как иные люди. так что техника видна из code review однозначно. да и старательность и продуктивность - со временем видно. как часто обращается за помощью, как часто ему удается быстро решить возникающие проблемы, как часто ему возвращают баги, как часто он задерживается на работе если не успевает, как часто он судорожно жмет Alt-tab когда к нему подходишь... ни один из этих факторов в отдельности может ничего и не значить. но вместе, да еще если выделить на наблюдение достаточно времени - ну скажем, порядка полугода - на мой взгляд, картина создастся очень даже реалистичная.



    > количество reopened багов на человека

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

    ОтветитьУдалить
  54. > ну видно же говнокод



    Это очень субъективно. Кого-то этот код вполне устраивает, что ещё хуже, он работает.



    > как часто он судорожно жмет Alt-tab когда к нему подходишь...



    Вообще отличная метрика!



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



    Нет, объем работы оценить практически невозможно.

    ОтветитьУдалить
  55. Извечный вопрос - как измерить программиста. Лично я - за полную открытость всех доходов. При этом приветствую схему субъективного распределения бонусов лидером команды. Лидер как никак должен вариться во всем этом и выступать в качестве координатора, поэтому он знает, кто больше сделал, кто меньше, кто говнокодит, а кто нет.

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

    ОтветитьУдалить
  56. > как часто он судорожно жмет Alt-tab когда к нему подходишь...



    Это вообще полный бред. Ещё запретите мне в интернет смотреть, ага. Если в принципе возникает ситуация, кто кто-то что-то судорожно жмёт - то это уже показатель того, что команда "ведётся" неверно.



    Пример из жизни:

    Один человек выходит по выходным, бывает. Он часто остаётся after hours. Делает не идеальный, но вполне приемлемый код, иной раз переписывает что-то после код ревью. Свою работу делает.



    Второй человек работает с 9 и в 5 вечера уже стоит возле двери и рюкзаком за плечами и фразой "See you!". На экране монитора частенько висит Youtube.

    Делает, в общем-то, примерно тот же объём работ (насколько вообще можно сравнивать объёмы, скажем так, делает то, что ему положено сделать). Код пишет малость почище, правда, хотя иной раз "промахивается". По выходным чтобы он работал - на грани невозможного.



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



    Это ерундень. Убейте контрол фрика в команде - и жизнь станет легче, приятнее, а, главное, эффективнее :)

    ОтветитьУдалить
  57. Sergey Konyshev А я вообще не понимаю, откуда возникает вопрос об открытых и закрытых зарплатах. В том смысле, что если они закрыты, то хуже от этого быть просто не может :)



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

    ОтветитьУдалить
  58. Alexey Raga Это закон эволюции - выживают сильнейшие.

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

    Видео: http://www.ustream.tv/recorded/9767140

    Слайды: http://www.slideshare.net/alenacpp/ss-5305295

    ОтветитьУдалить
  60. Нашел ссылки на видео доклада "Искусственный интеллект в играх" - профессионального видео пока нет, есть только любительское, но в принципе его достаточно для ознакомления с докладом, особенно если совмещать просмотр видео с просмотром слайдов.
    Видео: http://www.ustream.tv/recorded/9767140
    Слайды: http://www.slideshare.net/alenacpp/ss-5305295

    ОтветитьУдалить