
вторник, 21 декабря 2010 г.
Эффект Приближения к Цели

суббота, 18 декабря 2010 г.
Моя Шизофрения

Сегодня пора рассказать миру о том, что твориться в моей голове...равно как и в голове тысяч других менеджеров по всему миру. Да! Сегодня, друзья, речь пойдет о наиболее распространенном заболевании PM-ов, а именно - шизофрении. Надеюсь, что коллеги не станут меня ругать за то, что я решил открыть эту нашу маленькую тайну...
Итак, давайте взглянем чем таким интересным мы с вами занимаемся, что доводит нас до такого диагноза. В небольшой компании менеджер часто выполняет следующие роли:
- Собственно, Менеджер проекта (планирование, отчетность)
- Бизнес Аналитик
- Системный Аналитик
- Лидер (визионер)
- Владелец проекта (если у нас scrum-scrum)
- People Manager (карьера членов команды, развитие, обучение, зарплаты...)
Довольно много разных ролей, не правда-ли? И, что характерно, активности, а самое главное интересы в этих ролях далеко не идеально совмещаются. Одно из наиболее явных противоречий, которое сильнее всего проявляется - это совмещение двух следующих зон ответственности:
1. Отстаивание интересов заказчика
2. Отстаивание интересов команды
Если у вас еще есть сомнения, что эти интересы надо отстаивать, то просто приведу "на-гора" несколько тривиальных примеров:
- "...заказчику нужно успеть сделать продукт за 2 месяца, а команда утверждает, что только на дизайн необходимо 7 недель..."
- "...заказчик хочет иметь полный доступ к исходникам проекта, а так же сам вносить изменения в них в любой момент..."
- "...заказчик регулярно устраивает неожиданные визиты в ваш офис и каждый раз требует от каждого программиста отчета о том, чем он занимается..."
- "...программистам ужасно интересно использовать .Net 4.0 и они бы не прочь изучить его за счет заказчика, раздувая сроки....а заказчику вполне достаточно и тех технологий, которыми уже владеет команда..."
- ну и так далее...
В худшем случае количество участников проекта с различными интересами может быть и больше, например можно вспомнить о руководстве компании, которое может или иметь стратегические планы на данного заказчика, или, например, хочет сэкономить на всем, включая оборудование.
Еще раз хочу прояснить ситуацию: Вы - менеджер этого проекта и менеджер этой команды, именно Вы - представитель вашей компании для заказчика и именно Вы отвечаете за успех этого проекта перед своим руководством...поняли, к чему я веду?
Вы, Project Manager, находитесь на этой позиции, что бы отстаивать интересы каждого из участников проекта, так как сами они не хотят или не могут этим заниматься. И, естественно, если кто-то почувствует свои интересы ущемленными, то мучительно больно будет именно Вам!
Вот и получается, что менеджерам проектов постоянно приходится вести незримый бой по отстаиванию интересов всех участников проекта прямо в своей голове. Да на таком уровне, что мистер Фикс из старого мультфильма "За 80 дней вокруг света", ведущий диалоги сам с собой выглядит абсолютно здоровым человеком.
Что с этим делать? Хмм...думаю, что об этом будет рассказ во второй части этой статьи. И я лучше это обдумаю и интрига будет напряженнее :)
вторник, 14 декабря 2010 г.
Думай о хорошем
«Муха, как и пчела, очень любит мед. Но она не может удержаться и пролететь мимо какашек. Пожалуйста, думайте о хорошем...»
четверг, 2 декабря 2010 г.
Анонс следующей встречи Agile-Питер!

Итак, определена дата проведения следующей встречи Agile-сообщества Санкт-Петербурга.
Тема новой встречи — «Работа с заказчиком и управление требованиями».
Обсудим, как быть с изменениями и жёсткими ТЗ, как строить отношения с заказчиком, что делать, а также попробуем вместе найти ответы на ваши вопросы.
Модерирует дискуссию консультант ScrumTrek — Алексей Корсун.
Участие бесплатное; количество мест ограничено.
Более подробный анонс и регистрация на Хабре: http://habrahabr.ru/blogs/agile/109210/
вторник, 30 ноября 2010 г.
Где живут менеджеры

Но вот одна фраза (не знаю, кому принадлежит авторство, самому Александру или, напротив, он сам цитировал) в свою очередь взорвала мне мозг:
"Менеджеры живут на информационных потоках..."
вторник, 23 ноября 2010 г.
Встречи AgileRussia.SPB

Итак, в четверг, 18го ноября, в 19.00 по Ленинградскому времени Алексей Корсун, Михаил Карпов и Татьяна Васильева (пардон, лично знаком только с Алексеем :( ) собрали довольно значительную компанию людей (около 15 человек), которым интересен Agile. На повестке дня стояло два вопроса:
- "Распределенный Agile"
- "Автоматизация сборки и тестирования!"
Встреча проходила в формате свободной дискуссии, которую стимулировал и поддерживал Арексей Корсун. Сразу накидали достаточно много вопросов как на одну так и на другую тему - причем весьма разнообразных и интересных. Все это оставило у меня массу положительных эмоций, ведь это просто суперски, когда ты обсуждаешь интересную тебе тему в компании интересных, конструктивно настроенных людей. Приятным сюрпризом было встретить знакомого, которого не видел много (по-настоящему много) лет и законнектиться с ним через мойкруг. Увы, дела призвали меня и я вынужден был свалить по-английски не дождавшись даже пиццы, так что часть информации пришлось затем доставать из организаторов :)
Так вот! Засекреченный источник из узкого круга посвященных сообщил, что следующая встреча состоится через месяц (ориентировочно 18-го декабря) и на ней мы будем говорить о работе с требованиями! И это не может не радовать меня, как человека, 50% времени занимающегося именно этим!
суббота, 6 ноября 2010 г.
Оценки в Fixed-Price контрактах

Суперцитата от Александра Орлова
"Я лучше нанял бы человека с энтузиазмом, чем человека, который все знает."
Человеки с энтузиазмом - приходите к мне на собеседование. Вы мне сейчас так нужны!
Коммуникации с заказчиком. О сборе требований.

1. Правила хорошего слушания
- Перестаньте говорить
- Помогите говорящему раскрепоститься
- Покажите, что вы готовы слушать
- Устраните раздражающие моменты
- Сопереживайте говорящему
- Будьте терпеливы
- Сдерживайте свой характер
- Не допускайте споров и критики
- Задавайте вопросы
- Улыбайтесь
- Проявляйте искренний интерес
- На слух - 15%
- На глаз - 25%
- Аудио + Видео + Кинестетика - до 65%
понедельник, 4 октября 2010 г.
AD закончился...AD впереди
По этой же причине мой собственный доклад "Scrum-Master - кто ты?", задуманный как интересный, провокационный и яркий получился, на мой взгляд, скомканным и недостаточно выразительным... Сделаем зарубку на будущее - обратная акклиматизация исключает публичные выступления и эффективное общение :)
Зато у меня придумалась тема для выступления на московском AD'10. Думаю, что я ее обкатаю сначала в виде статьи в этом блоге (как и было с докладом про Scrum-Мастера)...тема интересная, как всегда провокациями :)
среда, 18 августа 2010 г.
Нужна помощь!
четверг, 12 августа 2010 г.
Manager 2.0

Это мысль меня задела во многом потому, что я сам страдал (и продолжаю иногда этим грешить) тем, что излишне опекаю команду, помогая ребятам делать их работу в ситуациях, когда нужно просто подтолкнуть их к самостоятельной работе, дав какой-нибудь крошечный хинт в виде наводящего вопроса. Почему я так поступал? Да просто на первый взгляд так быстрее: увидел ошибку, ткнул в нее пальцем, предложил решение...и все! Проблема решена, побежали дальше...правда есть одна проблема - так мы получаем команду дохлых сусликов, которые, конечно, боготворят своего менеджера, но абсолютно не растут и не могут работать самостоятельно.
Так что статься по-любому идет в must read для старых и новых менеджеров, из подчиненных и начальников :)
Сама статья: http://www.infoq.com/articles/scrum-management-deemer
вторник, 10 августа 2010 г.
Еще цитаты из Паркера

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

1. Они готовы работать сообща
2. Не отказываются от помощи
3. Двигаются небольшими шажками и ориентируются на обратную связь(feedback)
4. Делают то, что нужно именно сейчас
5. Адаптируются к различным (не всегда привычным) условиям
Знаете, что интересно? Взглянув на этот список я вижу, что чем больше у разработчика опыт работы (в условиях традиционного менеджмента и процесса), тем хуже у него с этими навыками. Фактически, опыт в этой ситуации является главным врагом! Потому что наиболее профессиональные и опытные разработчики с которыми я сталкивался обычно обладают следующими чертами:
2. Они с сомнением относятся к возможности помощи со стороны коллег, так как прекрасно осознают, насколько они сам круты. Причем это распространяется и на ситуации, когда им нужна помощь в чем-то ином(например, отладка, поиск ошибки, выбор алгоритма и т.д.)
3. Они действительно рады уйти "в забой" на недельку и полировать свои торпеды до блеска, утверждая, что пока все не будет готово - показывать нечего. Просто у них есть собственные высокие критерии качества и они не готовы показать "недоделанный" код никому.
4. Они склонны к подходу BUFD (Big UpFront Design). То есть еще на этапе прототипирования они уже стараются ввести в архитектуру массу прикольных паттернов и решений, которые должны (в будущем) спасти систему от переделок.
5. Они по-хорошему избалованы. Ведь их ценность очевидна для работодателя и у них, зачастую, есть условия труда, которые их устраивают. Поэтому, попадая в зону дискомфорта(даже минимального, например, низкий уровень влажности в помещении) они весьма болезненно реагируют.
6. Им настолько "в кайф" заниматься своими любимыми технологиями или предметной областью, что они с огромным неудовольствием воспринимают любые идеи о кроссфункциональности. Не то, чтобы они не любят помогать коллегам. Но за ними водится привычка "отсылать к специалистам". Например, они лучше будут попинывать админов, чтобы те настроили выделенный домен и развернули там SQL-кластер чем сами займутся этим. Один из разработчиков объяснял мне это так: "Эта проблема не лежит в сфере моих профессиональных интересов и изучая администрирование WinNT домена я получу опыт и знания, бесполезные для меня в будущем"
Вот такая петрушка получается. Имея возможность поработать с менее амбициозными и "продвинутыми" разработчиками я с удивлением обнаружил, что идеи Agile ими принимаются гораздо более заинтересованно и с большим энтузиазмом. У них часто более острый и жадный ум. Им, черт побери, интересно все!(Или почти все :)) В то же время при наличии ума и правильной мотивации они со временем осваивают и рефакторинг и "правильные" архитектурные решения.
Вторая категория людей, которые воспринимают Agile дружественно находится в другой части шкалы - это уже состоявшиеся люди, которые со спокойным интересом смотрят на этот мир во всем его многообразии, принимая тот факт, что все вертится не вокруг их профессиональных навыков и карьеры. Иметь такого человека в команде по-настоящему здорово, так как он, без навязчивого скепсиса сможет слегка сдеарживать команду от слишком резких движений (например, влезать в рефакторинг без достаточного покрытия автоматизированными тестами).
Так что, соглашаясь с тем, что предложенные критерии действительно крайне желательны для члена Agile-команды, я хочу добавить еще предложение присмотреться к молодым энергичным разработчикам, а так же к их спокойным коллегам за 30, исповедующим (явно или лучше неявно) принципы дзен :)
пятница, 30 июля 2010 г.
Agile-team - 6 качеств, которые ее отличают

Вопрос, который поможет нам выявить таких людей: "Вспомните, когда вы не знали многого о проекте с самого начала. Как вы справлялись с этим?"
5. Адаптирующиеся люди
6. Люди, готовые работать вне своих ключевых навыков
Итак, вот мистические шесть свойств настоящего agile team memeber. Естественно, что это не исчерпывающий список, но как это традиционно принято в agile, автор дает пару советов, и дополняет вечным "use common sense" :)
вторник, 27 июля 2010 г.
5 опасных вещей
Я решил откопипастить интересное видео с it4business.ru о "Пяти опасных вещах, с которыми вы должны позволить своим детям играть"... Во много спорный, но так же и во многом правильный спич о том, насколько мы ограничиваем своих детей и свое будущее в стремлении к безопасности. Не уверен, что завтра буквально разрешу своим детям играть с огнем и водить машину, но кое о чем задумался...
понедельник, 19 июля 2010 г.
Agile приходит в Питер!

Ура! Вот и в наше северное болото приходит свежий ветер с материка :)
В сентябре состоится потрясающая(я надеюсь :)) конференция AgileDays'10. Я искренне надеюсь, что в нашем городе мы сможем собрать не только докладчиков, не уступающих по уровню московским коллегам, но и посетители конференции тоже не подкачают и мы соберем действительно яркую, интересную компанию увлеченных профессионалов, с которыми будет интересно пообщаться, познакомиться и послушать. Со своей стороны я постараюсь подготовить достойный доклад. Пока я планирую рассказать о роли Scrum-Мастера в современных процессах. По сути это будет хорошо и связно оформленная версия моих мыслей в этом блоге о миграции SM. Есть еще запасная идея - рассказ о Manageability - все-таки тема не очень известная и она может быть интересна многим.
Миграция Scrum-Мастера. Часть 2.

Правда, идея провести аналогию между таким SM и XP-Коучем, по прошествии пары дней уже не кажется мне столь удачной. Несмотря на то, что формально XP-Коуч помогает команде следовать процессу, процесс этот - технологический! Ведь надо помнить, что XP в основном покрывает технические стороны разработки ПО, в то время как Scrum делает больший акцент на процессе как таковом. Т.е. XP-Коуч помогает команде делать правильно Continuous Integration, TDD и Pair Programimng в то время, как SM проводит митинги, учит команду общаться друг с другом конструктивно и создает атмосферу доверия... Так что давайте-ка не будем путать теплое с мягким и будем называть "нового" SM просто Scrum-Коуч...Вот черт - вездесущий Scrum Alliance уже ввел этот термин :) . Да..."коуч" становится действительно модной приставкой, которую не только я пытаюсь приклеить куда-попало :)
А теперь давайте вспомним, как внедряется Scrum во многих компаниях. Важным моментом является то, что на первых этапах разумные руководители стараются пригласить консультантов по Scrum со стороны (например, Асхата-и-компанию). И в этом случае консалт выполняет именно роль коуча или тренера, помогая и пока еще неопытному Scrum-Мастеру и команде, PO и заказчику освоить новый процесс и избежать хотя бы тривиальных ошибок, которые допускают многие на первых шагах.
понедельник, 12 июля 2010 г.
Супер-книга "Поступай Правильно" Джеймса Паркера!

Очень хочется чиркнуть на память несколько цитат из этой книги. Так сказать, для бодрости духа. Вот и первая:
"Когда сомневаешься - поступай правильно!"
Вперед и только вперед

четверг, 8 июля 2010 г.
"Защита от темных искусств" Владислава Балина
А я пошел искать рекомендованную «Практику гештальт-терапии» Фрица Перлза...
Миграция Scrum-Мастера
Участвуя в различных дискуссиях, посвященных процессам разработки ПО можно заметить, что Scrum постоянно находится в центре внимания, вызывая множество споров и обсуждений.
Интересно, что поле для дискуссии все еще огромно, несмотря на уже весьма солидный возраст процесса Scrum. Для меня это значит, что Scrum растет, развивается и совершенствуется, что бы помогать нам решать новые проблемы и находить более эффективные решения к старым.
Вместе с процессом развивается трактовка ролей и инструментов Scrum, мы по новому смотрим на взаимодействие членов команды, появляются новые практики для успешного разрешения возникающих вопросов.
Один из наиболее интересных вопросов, обсуждающийся IT-сообществом - кем становится сегодня самая одиозная личность в Scrum – Scrum-Мастер! Должен ли он обладать выраженными техническими скилами или, напротив, они ему не нужны, в то время как без коуч-скилов ему никак не обойтись? Какие метаморфозы претерпевает эта роль, когда мы используем наиболее успешный «тендем» - Scrum+XP?
Давайте обратимся к каноническому определению Scrum-Мастера. Итак, вот его обязанности:
- Устранять любые (внешние и внутренние) препятствия на пути команды к достижению цели спринта и релиза
- Контролировать следование процессу
- Проводить фасалитацию (ну и слово...) митингов
- Поддерживать командный дух и фокус на общих целях
И при этом, что важно, Scrum-Мастер должен быть "свиньей" а не "цыпленком", то есть, проще говоря, членом команды! И естественно, принимать деятельное участие в разработке. Поэтому им обычно является один изразработчиков. Вот тут то и начинается самое интересное. Давайте взглянем на зоны ответственности SM и попытаемся определить, какими чертами должен обладать человек для того, что бы успешно с этим справлятсья:
- Целеустремленность
- Организованность и, в некоторой степени, педантичность
- Коммуникативность
- Неконфликтность
- Незаинтересованность в предмете - для проведения митингов
- Желание помогать
Сразу становится ясной некоторая уязвимость такого определения SM - ведь далеко не все программисты обладают хорошими коммуникативными навыками (чаще наоборот). Незаинтересованность в предмете обсуждения тоже представляет собой проблему, так как SM-программист тоже иногда участвует в митингах как активный участник и тогда нужно передавать фасилитацию кому-нибудь другому "на время". Ну и неконфликтных людей, к сожалению, не так много в этом мире, как этого бы хотелось. А уж "поддержание командного духа и фокус на общей цели", то бишь team-building - это вообще довольно сложный предмет, которым обычно занимаются менеджеры и лиды...
В общем, идея SM от первоисточников имеет право на существование, но при этом может быть применена в весьма ограниченном количестве случаев - обычно когда команда уже сложившаяся, все в ней такие конструктивные и процесс устаканился. А вот так, что бы создать команду из сложных талантливых индивидуальностей в условиях кризиса на проекте - тут уж увольте! Я знаю множество классных программистов и очень их ценю, но выполнить миссию SM в таких условиях для программиста почти нереально!
Насколько я понимаю, к подобной же мысли пришел не один я. Поэтому, чем дальше в лес, тем более сложной становится роль скрам-мастера. Тем больше ему надо знать и уметь вещей, которые не имеют отношения к программированию. А раз навыки и способности SM все дальше уходят от технических к административное-социальным, значит и требования к SM меняются. До сих пор некоторые продолжают обсуждать варианты совмещения роли технического лидера (которая явно или неявно обычно проявляется в любой команде), но эта дискуссия осмысленна только когда SM особо ничего не надо делать по своим главным обязанностям (когда команда хорошо работает, PO не бузит и унитаз в туалете не засорился, работа SM становится простой и приятной, да и занимает не менее 20% времени). В реальном мире, где исключительные ситуации, требующие вмешательства SM происходят каждый день, а рискам (особенно, невыявленным) свойственно сбываться, трудозатраты SM на Scrum и команду становятся очень существенными и ему все труднее становится выполнять при этом еще и программистские задачи.
Еще одна проблема - это саморазвитие. Когда я был программистом, я старался тусоваться на технических конфах, читал Кнута, Страуструпа и Банду Четырех. Когда я стал заниматься управлением проектами, я переключил свой фокус на Project Management, Коучинг, командообразование, Requirements Engeneering и планирование. Развиваться одновременно по нескольким векторам и делать это эффективно способны единицы! Именно поэтому так тяжело совместить в одном человеке хорошего программиста и хорошего скрам-мастера. Вот классный программист и средненький SM-вполне реально. Или плохонькой програмер и божественный SM - тоже можно.
Но тогда внимание, вопрос - зачем хорошей команде плохонький программист? Его "выход" все равно ничтожен по сравнению с общим "выходом" остальной команды. Он не развивается как порграммист и не знает новые технологии. Он не умеет делать Dependency Injection и пишет кривые Unit-тесты. Как вы думаете, это будет способствовать установлению дружесткой и конструктивной обстановки в команде?
Выходит, что за исключеним нескольких гуру, реализовать каноническое определение SM в реальности почти никто не способен. И именно поэтому некоторые команды пришли к идее выделенного Scrum-Мастера. Человека, который не занимается программированием и по-сути, уже не является "свиньей". Человека, который как раз и занимается все время только тем, что помогает команде, защищая ее права перед PO и кастомером, проводя для нее митинги, выявляя конфликты и помогая их решать с использованием таких практик как, например, коучинг. Человека, который даже занимаясь контролем следования процессу будет максимально деликатен и не будет "строить" команду за опоздание на Daily Standup. Никого вам не напоминает?
Это же XP-шный коуч! Вот они - плоды многолетнего совмещения XP и Scrum - правильные и полезные вещи начинают проникать из одного процесса в другой, принося каждому из них новые ценности!
продолжение следует...
П.С. Кстати, навеяно вот этим обсуждением: http://www.infoq.com/news/2010/06/technical-scrummaster
AgileDays'10 в Питере
Инфа о AD'10 пока нормально не опубликована, но какие-то крупицы уже стали появляться, например на сайте ScrumTrek: http://scrumtrek.ru/trainings-timetable/register/75
Я планирую не ударить в грязь лицом и выдать на AD'10 что-нибудь не хуже своего доклада на AD'09. Столько идей, столько идей..... :)
среда, 30 июня 2010 г.
Вот и отпуск закончился

среда, 9 июня 2010 г.
Работа над образом компании. Очередной шаг

Запуск программы "AVIcode - Школа Профессионалов"
Ура! Сегодня состоялась первая лекция в рамках программы по внутреннему обучению, которую мы запустили в нашей компании. Для меня это приятно вдвойне, так как, во-первых, я являюсь одним из организваторов этой программы, а во-вторых, это была моя лекция "Введение в Agile Development". Мне кажется, что в жесткий формат одно-часовой лекции удалось вложить действительно много материала и при этом не "высушить" лекцию, доведя ее до состояния справочника.
Вся лекция прошла на отличном драйве и хорошем контакте с аудиторией (хотя уровень знаний как об IT так и об agile у всех был достаточно разный). Но я столкнулся с интересным эффектом. Если выступление на AgileDays перед аудиторией в 100 человек зарядило меня энергией на 10000 вольт, то эта лекция для 8 человек наоборот выжала меня до полуобморочного состояния...потом 3 часа каматозил и отпаивался сладким чаем с лимоном...
Интересно, чем объясняется подобная разница в энергетике? Является ли подобное поглощение энергии свойством маленькой группы, или это особенность данной конкретной группы? Ну, или наконец, может я просто не выспался, репетируя лекцию вчера до 3-х часов ночи? :) Думаю, что ситуация прояснится чуточку позже: 17-го июня будет повторная лекция для второй группы - вот там и посмотрим...
четверг, 3 июня 2010 г.
Лучший Task-Board
- Whiteboard - есть почти у всех, но по-факту, самый неудобный вариант, т.к. прикреплять к нему задачи неудобно (post-it листочки все время отлепляются, а магнитиков не хватает), да и доска для записей тоже иногда нужна. Так что этот способ уже почти не используется.
- Пробковая доска - недорого и довольно удобно. Разделяется на зоны ленточками(да хоть изолентой), задачи крепятся кнопками. Основной минус - это именно кнопки: все время падают, теряются и т.д. Но в целом, вариант весьма неплохой.
- Askhat-style Taskboard- знаменитые taskboard-ы от Асхата Уразбаева из всего, что под руку подвернется: пенопластовые потолочные модули, листы ватмана и прочее. Основной их плюс - это уникальное авторское исполнение, а так же исключительна дешевизна и простота в изготовлении.
Для своих проектов я использовал решение, которе до этого не встречал ни у кого - это доски с клейкой поверхностью 3M. Стоит такая доска 40х60 см около 600 рублей, так что я не могу назвать этот способ дешевым (для одного таксборда нужно от 3-х такиз досок), зато удобство исключительное! Задачи, burndown chart, заголовки секций и все остальное прекрасно прилипает к поверхности доски, а когда нужно снять или передвинуть что-то, то это делается элементарно!
Купить такие доски можно много где (e-shops, канцелярские сети или, например, гипермаркет METRO Cash&Carry)
Удачи!
Второе правилу коуча

понедельник, 24 мая 2010 г.
"Встречают по одежке" или Артефакты Первого Контакта

А вот если в вашей компании есть практика интервью в несколько этапов, когда сначала кандидат пишет тестовое задание(кодит), общается с HR, заполняет анкету и лишь на следующем этапе сталкивается со своими будущими товарищами по оружию, то что для него (кроме затертых тапочек) важно? Что дле него - лицо компании-работодателя?
- Имидж компании - то, что он знал до прихода на интервью. Он либо есть, либо его нет. Для многих софтверных компаний со штатом менее 200 человек его почти что нет. За исключением ярких продуктовых компаний для которых узнаваемость бренда для кандидатов - это побочный эффект от работы отдела маркетинга и рекламы, направленной на совсем другую целевую аудиторию.
- HR-отдел - саааамое первое, что кандидат узнает о компании, это то как ее рекрутинг пишет письма и разговаривает по телефону. HR бывают девочки и мальчики. Девочки привычнее, так что когда с тобой связывается HR-мальчик, то сразу как-то становится интересно, что это за контора такая? :) Но в целом, в меру профессиональный HR который способен общаться на удовлетворительном деловом уровне и представляет себе область в которой он работает имеет скорее нейтральный pH. То есть воодушевить кандидата ему вряд-ли удастся, поэтому основная задача рекрутера в компании - найти кандидата и бережно передать дальше.
- Артефакты первого контакта - сайт компании, документы о компании, которые высылает HR для кандидатов, анкета, тестовое задание, офис компании, точнее несколько его ключевых (для первого контакта) мест:
- бизнес-центр, где размещается компания, точнее его фасад и холл
- коридоры компании
- кабинет, в котором проводится собеседование с HR
- кабинет, в котором проводится выполнение тестового задания и заполнение анкеты
- кабинет, в который тоже захочется сходить, особенно если интервью затянется
Ужас! До чего я договорился - "Сортир - лицо компании!" :) Шутки-шутками, но для меня, например имидж Microsoft был несколько подпорчен тем, что в их офисах в Редмонде перегородки между кабинками едва достигают подбородка.
Впрочем, думаю, что это суровые американские принципы секьюрити направленные на защиту мирных граждан от угрозы мирового терроризма. Иначе что заставило уважаемую компанию превратить свои "места отдохновения" в прототип игры "Убей Крота!" (по крайней мере это очень похоже на нее когда ты моешь руки в умывальнике и вдруг видишь в зеркало как у тебя за спиной из-за перегородки появляется чья-то голова...а потом еще одна - по соседству :)
Теперь давайте взглянем на то, что мы в состоянии изменить в нашей компании (кроме сортиров) для того, что бы классные програмеры после первого контакта даже и не думали о другой компании или, по крайней мере, не посылали бы нас на фиг после первого интервью, а напротив, были готовы продолжать этот процесс дальше!
- Бизнес-центр (или Ваше здание) - серьезный замах. Думаю, что эту тему мы сейчас не будем даже затрагивать, так как для многих компаний это данность, изменить которую в контексте работы с кандидатами несколько нерентабельно
Коридоры _вашего_ офиса - ага! Уже ближе! Это уже территория компании и бюджет для интерьерных изысков выглядит более адекватно, чем переезд в бизнес-центр класса А+. Тем более, что в этом аспекте гораздо важнее творческий подход и свежесть идей нежели кисти с бахромой и золотые канделябры. Достаточно вспомнить впечатления господина А. Орлова увековеченные в его статье. Тут главное - отодвинуть подальше бубнил и зануд, призывающих к серьезности и умеренности - большая часть штата IT-компании - молодые ребята, которым эта серьезность в печенках сидит.
Помещение для собеседования с HR. Итак, это первое помещение, в которое попадает кандидат. Если мы говорим о разработчике (программист, тестер, дизайнер...), то он понимает, что это помещение - не его рабочее место, но по тому, как оно организовано, можно сделать первые выводы о компании. Например (если это - комната для совещаний):
- Наличие этой самой комнаты. Ведь когда в компании нет комнаты для совещаний, то это первый признак экономии на сотрудниках. К счастью, в большинстве компаний сейчас таковая имеется.
- Обстановка (мебель) в комнате. Ага, смотрите - в переговорную притащили поломанные стулья со всей конторы, разваливающийся стол и сгнивший фикус, а на стене висит грязная доска метр на полтора! Как вы думаете, кто-нибудь в этой компании думает о том, что бы сотрудникам было комфортно работать здесь?
- Мелочи (канцелярия). Воистину прекрасны компании и совершенен офис-менеджмент если Вы видите в комнате для совещаний вдоволь маркеров для доски, стопки бумаги для записей, карандаши и ручки. Сразу предупрежу. Это - колоссальная редкость, признак серьезных компаний обычно западного капитала.
- Оборудование. Стационарный проектор, оборудование громкой связи или теле/видео-конференции, powered-table (стол с разводкой всяких кабелей и прочее). Это - признак супер-крутости компании в части заботы о рабочем месте сотрудника...или просто стремление руководства к пафосу "как в микрософте".- Помещение для выполнения тестового задания.
Здесь кандидат, скорее всего, столкнется уже с чем-то, что возможно, позволит ему представить свое будущее рабочее место. Рабочий стол, кресло, компьютер - то, что окружаем разработчика 8 и более часов в день. Поэтому, когда его приводят в комнату площадью 2 квадратных метра и сажают за замызганный комп на шаткий стульчик, то темная сторона начинает одолевать даже самых продвинутых джедаев. Вот несколько советов, как заставить медихлорианы в мозгу кандидата крутиться в нужном направлении:- Выделите нормальное помещение для работы кандидатов. Как вариант - установите нормальный комп (или выделите лэптоп) в комнате для переговоров. В идеале это помещение должно говорить кандидату у том, какое у него будет рабочее место
- Поставьте туда классную мебель (может даже получше чем на рабочих местах) - стеклянный стол, удобное дорогое кресло на колесиках
- Компьютер должен быть адекватной производительности и конечно же с хорошим TFT-монитором не менее 21". Клавиатура и мышь должны быть новыми и чистыми. Всегда.
- Подсказки. Возможно, у кандидата во время выполнения задания появятся какие-то бытовые вопросы или он закончит раньше времени. Составьте яркий короткий мини-хелп (с контактами HR, расположением туалета, кофе-машины и т.д.) на ламинированной бумаге и оставьте его на кандидатском рабочем месте.
- Мелочи(канцелярия). Все то же самое, что и о помещении для собеседования с HR.
- Выделите нормальное помещение для работы кандидатов. Как вариант - установите нормальный комп (или выделите лэптоп) в комнате для переговоров. В идеале это помещение должно говорить кандидату у том, какое у него будет рабочее место

Ну и все же обратите внимание, есть ли в туалете туалетная бумага...а то ведь неловко будет...
четверг, 20 мая 2010 г.
Наша работа
И это в который раз напомнило мне о том, насколько важен ФАН в нашей работе. Спасибо судьбе, что сейчас то, чем я занимаюсь дает мне столько энергии и энтузиазма. Все, что мне остается - просто передать его дальше - своим ребятам, всем остальным коллегам в нашей компании... жизнь слишком коротка, что бы тратить время на скучные вещи!
пятница, 14 мая 2010 г.
О "троллях" в команде

И в этом они, на мой взгляд, неправы! Такой подход ведь противоречит всему, что нам рассказывают о правильном agile-менеджменте. Ведь когда кто-то тупит и говорит "я не знаю как делать эту задачу" мы же не орем на него типа "ты идиот, Тауб! Это же аутоимунное!"...неееет! Мы начинаем его коучить, и коучим его пока он сам не придумает как таки сделать задачу. Для чего - что бы люди росли и развивались и были self-managed и мир вокруг был полон весны...

четверг, 13 мая 2010 г.
Многие знания - многие беды. О собеседованиях
В чем сила XP-2

- Onsite Customer
- Pair Programing
- Collective Code Ownership
- Planing Games
- Coding Standards & Conventions
- Рафакторинг
Рефакторинг с одной стороны поддерживает TDD (который без него просто не работает), с другой стороны(как уже было сказано в первой части этого поста) позволяет привести в порядок код, написанный в концепции KISS, YAGNY и прочий "simple design". То есть, не дай бог у вас в проекте по XP вы начинаете экономить на рефакторинге - иначе готовьтесь получить отсутствие TDD и абсолютно не сопровождаемый код.
- Pair Programing
Без него говорить о совместном владении кодом будет очень тяжело, ведь именно Pair Programing с ротацией пар позволяет знаниям о коде распространяться по команде без дополнительных затрат на документирование.
Эта статья (обе ее части) - это, по сути, обобщенное упражнение по анализу процесса. Здесь я постарался показать, как могут быть связаны элементы вашего процесса и о чем стоит помнить, добавляя или удаляя элементы из него.
Спасибо!
среда, 12 мая 2010 г.
Лучшая презентация


В чем сила XP

- Onsite Customer
- Small Iterations
- Simple Design
- Continuous Integration
- Refactoring
- TDD
- Coding Standards & Conventions
- Pair Programing
- Collective Code Ownership
- Planing Games
А теперь давайте посмотрим, какую функцию выполняет тот или иной компонент XP в процессе. Итак:
1. Onsite Customer + Small Iterations + Simple Design
Распишем, что это значит: команда имеет возможность взаимодействия с заказчиком "на-лету" для получения новых/измененных требований и предоставления результатов работы на ревью. При этом за счет коротких итераций ставятся близкие задачи, результат работы над которыми обсуждается с заказчиком и принимаются меры по корректировке курса. А за счет простых технологических решений команда может выдавать конкурентоспособный темп.
Итого:
Onsite Customer + Small Iterations + Simple Design = Maximum Agility
то есть мы получаем действительно настоящую гибкость разработки и отсутствие "лишней" работы.
2. Continuous Integration + Refactoring + TDD + Coding Standards
Максимальная гибкость, которую мы реализовали с помощью практик из пункта 1, к сожалению, чревата проблемами с качеством. Да и в принципе в любом технологическом процессе должны быть инструменты для контроля и обеспечения качества. И вот за счет чего мы гарантируем качество в XP:
Непрерывная Интеграция позволяет быстро выявлять и исправлять ошибки кодирования. Рефакторинг приводит в порядок тот код, который появляется под флагом "Simple Design", да и для TDD он необходим как воздух. Сам TDD позволяет поддерживать принцип "SimpleDesign". Стандарты кодирования помимо положительного влияния на качество, так же необходимы для другого принципа XP, который будет упомянут ниже - Совместное Владение Кодом.
Итого:
Continuous Integration + Refactoring + TDD + Coding Standard = Quality Assurance
3. Pair Programing + Collective Code Ownership + Planing Games
Это значит, что вся команда вместе планирует задачи, по ходу уточняя и разъясняя для каждого суть задачи и особенности ее реализации (да-да-да...и убивая часа по 2-4 на Planing Session в каждой итерации). А потом вся команда дружно программирует, меняясь парами и осуществляя перекрестное Code Review. За счет этого нам становятся не страшны такие вещи как неожиданная болезнь ключевого разработчика, отпуск, перемещение на другой проект, увольнение ( :) ) и прочая фигня, которая иногда так некстати сливает все планирование в унитаз. Так же мы снижаем затраты на ввод новых разработчиков в команду.
Таким образом:
Pair Programing + Collective Code Ownership + Planing games = Reliable Process
Итак, мы определили, что заявленные компоненты XP дают нам следующие ценности:
- Высокая Гибкость
- Высокое Качество
- Высокая Надежность Процесса
В следующем посте мы рассмотрим, какие еще существуют взаимосвязи между элементами XP, например, за счет каких практик мы можем минимизировать объем документации.