Записи с метками инженерные практики
Второй шанс попасть на XP Days Ukraine
23 Декабрь
Мы определились с расписанием мероприятий на зимние месяцы. Конец февраля конечно же пройдет под флагом Selenium Camp. А вот остальное время мы решили посвятить инженерным практикам. Это отличный шанс для тех, кто не успел или не смог принять участие в конференции XP Days Ukraine.
Мы получили много благодарственных отзывов от участников тренингов, которые проходили в преддверие конференции. Количество мест было ограничено и не все смогли попасть на них. Поэтому мы решили повторить практически такой же набор тренингов в феврале.
Сначала хочу анонсировать тренинги по TDD. Не буду расписывать зачем и почему стоит работать по TDD и какие преимущества дает эта практика. Я уже писал на эту тему раньше и не хочу повторяться. Я считаю TDD самой полезной инженерной практикой. Мы снова проведем тренинги в разрезе разных языков программирования. Это будут PHP, .NET и Java.
Последний раз тренинг «TDD в Java» вел один из докладчиков XP Days Ukraine – поляк Paweł Lipiński. Он отличный тренер и его стиль проведения тренинга очень классный. Много практики, работа в паре с тренером и небольшие сфокусированные примеры. Все это позволяет легко воспринимать материал и при этом пробовать применять полученные знания на практике. 2 дня оказалось недостаточно, чтобы Павел раскрыл все темы, которые запланировал изначально. Программа тренинга очень насыщенная. Обычно он ведет подобные тренинги от 3 до 5 дней. Почему бы и не попробовать? Мы решили впервые провести столь продолжительный тренинг, хотя за рубежом это распространенная практика. Кроме того, мы будем вести этот тренинг в паре с Павлом. Участники смогут получить больше персонального внимания и увидеть стиль работы двух тренеров. Итак, тренинг пройдет 9-11 февраля и будет длиться 3 дня. Основной язык тренинга – английский. Стоимость участия составляет 2500 гривен (обед включен во все дни). Размер группы ограничен 12 участниками. Торопитесь зарегистрироваться и забронировать себе место в группе.
Тренинг «TDD в .NET» проведут Александр Белецкий, который на этой неделе стал нашим официальным тренером, и Сергей Калинец. Ребята сделали очень неплохой тренинг, в котором делятся своим многолетним опытом использования TDD в реальных проектах. А им есть чем поделиться! Тренинг пройдет 3-4 февраля. Стоимость участия составляет 1700 гривен (обед включен в оба дня). Размер группы ограничен 12 участниками. Регистрация уже открыта.
Тренинг «TDD в PHP» проведет наш опытный тренер Иван Мосев. Ваня каждый раз улучшает программу тренинга, учитывая пожелания предыдущей группы. Очередным толчком к подобному улучшению стало наше совместное посещение мастер-класса «TDD Coding Dojo». Я думаю в этот раз тренинг будет содержать еще больше интересных практических заданий. Пройдет он 17-18 февраля. Стоимость участия составляет 1700 гривен (обед включен в оба дня). Размер группы ограничен 12 участниками. Спешите зарегистрироваться.
И замыкает группу тренингов «Инженерные практики в Agile». Это наверное самый полезный наш тренинг, потому что он агрегирует весь наш многолетний опыт внедрения и применения различных инженерных практик и подходов. За 2 дня участники смогут услышать и увидеть на примерах 8 различных инженерных практик. Мы больше не будем пытаться проводить этот тренинг в один день. Слишком много материала и донести его за такой короткий срок очень тяжело, причем скорее для участников. Тренинг состоится 17-18 февраля. Мы работаем вдвоем и поэтому готовы собрать группу до 20 человек. Стоимость участия составляет 1700 гривен (обед включен в оба дня). Регистрируйтесь и мы будем рады видеть вас на нашем тренинге!
Если вы пропустили XP Days Ukraine и жалеете об этом, то это шанс для вас наверстать упущенное. Присоединяйтесь!
XP Days Ukraine глазами организаторов. Часть 2
21 Декабрь

Это вторая часть моего отчета о прошедшей конференции XP Days Ukraine. В первой части я рассказал о подготовке и первых двух днях, насыщенных тренингами и мастер-классами. Теперь речь пойдет об основном дне конференции.
Проснуться 17 декабря пришлось достаточно рано, поэтому невыспанность после вчерашнего написания кода до позднего вечера давала о себе знать. Срочно нужен был кофе. В «Парусе» уже все было практически готово, оставались мелочи. Мы расставили указатели (вход в здание найти было не так просто), проинструктировали в последний раз команду волонтеров, определили расположение кофе-пауз и стали ждать первых участников. Я очень рад, что у нас уже сложился костяк команды волонтеров, которые с радостью соглашаются работать с нами. Вы молодцы, ребята!
Благо опыт проведения регистраций у нас есть. Поэтому в этот раз регистрация проходила гладко и плавно. Не было ни очередей ни паники. Каждый участник получил пакет с программой и прочими материалами, а также яркий красочный бейдж. За это особое спасибо нашим печатным подрядчикам и Леше Солнцеву за дизайн.
У меня даже получилось пообщаться перед открытием со старыми знакомыми, а знакомых на этой конференции было очень много. Кто-то был у нас на тренингах, кто-то посещал другие наши конференции, а кто-то знает меня уже давно. Кофе было вдоволь, как заварного, так и из кофе-машин, которые привезли с собой наши спонсоры.
На открытие все собрались в главном зале. Я рассказал о важных деталях конференции, поблагодарил нашу славную команду, волонтеров и докладчиков, благодаря которым конференция состоялась. На закрытии мы собирались разыграть множество призов от организаторов и спонсоров, причем некоторые из которых были очень даже ценными. На этой конференции мы решили ввести новинку – карточки обратной связи докладчикам. Каждый участник получил по две таких карточки и мог отдать их тем докладчикам, которые понравились ему больше всего, написав на карточке свое мнение о докладе. Такая обратная связь очень сильно поддерживает и мотивирует докладчика – ведь он видит, что его труды приносят пользу.
Я не люблю длительные и пафосные открытия, поэтому не стал утомлять участников и закончил достаточно быстро, передав слово первому докладчику в главном зале – Mark Seemann. По традиции на первые доклады я не попадаю. Хочется убедиться, что с организацией все идет нормально. А еще было интересно, что думают участники о мероприятии. Интернет утром работал исправно и народ начал писать в Twitter ленту.
Об интернете хочется рассказать отдельно. В этот раз мы решили попробовать новую технологию, потому что местный интернет был очень нестабильный. Были заказаны четыре 4G точки, которые Wifi роутерами объединялись в единое кольцо. Вдобавок в это же кольцо были подключены 2 Wifi роутера местного интернета. Эта схема должна была обеспечить надежное подключение большому количеству участников и при этом переключать их в зависимости от местоположения на менее загруженную точку. Звучит красиво, стоит немало, но не сработало.
Все работало классно, пока местный интернет не начал пропадать. Роутеры набирали себе клиентов, но не давали интернета. Хорошо, что у нас был сотрудник для поддержки 4G точек, который постоянно мониторил состояние сети и перестроил во время обеда сеть, отключив местный интернет. Стало работать медленнее, но работать. В целом, жить с таким интернетом было можно, но назвать его стабильным и быстрым не поднимается язык. Будем экспериментировать дальше…
После первого доклада произошла мини-проблема. Докладчики затянули с вопросами и отпустили участников на перерыв слишком поздно. Поэтому вторые доклады начались с задержкой в несколько минут. Надеемся, что этого никто не заметил.
В дальнейшем, волонтеры заканчивали доклады четко в установленное программой время.
Следующей неожиданностью стала популярность сцены В. Мы сделали ее из части холла и задумывалась она как сцена «для гиков». Такого ажиотажа на архитектуру и дизайн в Agile мы никак не ожидали. Во время второго доклада пришлось в экстренном порядке расширять сцену В и она заняла в полтора раза больше места, чем планировалось изначально. Появилась даже мысль поменять местами сцены С и В, но решили оставить как есть. Возможно это было неправильным решением. Иногда на сцене В было душновато. Это связано с работой проектора и узким пространством, которое изначально не являлось самостоятельным залом. Но эти неудобства не останавливали участников и сцена В была чуть ли не самой посещаемой.
Я выступал перед самым обедом с докладом «Жизнь без тестировщиков: миф или реальность?». Пересказывать доклад не буду, вот презентация:
Незаметно подошло время обеда. На него в программе было отведено полтора часа. В самом «Парусе» возможности нормально пообедать за адекватную цену нет, поэтому мы предоставили участникам карту ближайших мест общественного питания. Заодно можно было прогуляться и подышать свежим воздухом. Но все торопились отправиться на обед, тем самым создав «пробку» в гардеробе. Мы заведомо предполагали проблемы с гардеробом и отправили на помощь нескольких волонтеров. Но сама структура гардероба не помогала ускориться. В течении 15 минут все получили свою верхнюю одежду и разошлись обедать. Мне кажется, что спешка была совершенно ни к чему и можно было спокойно пообщаться в холле вместо стояния в очереди.
После обеда самое тяжелое время – клонит в сон и информация воспринимается тяжело. Поэтому на главной сцене в программе были 2 секции коротких докладов. Докладчики жгли! У большинства были классные слайды и интересные темы. Лично мне было совершенно не до сна.
На предпоследний доклад я отправился послушать Диму Коваленко, который прилетел к нам в гости из США. Он в детстве жил в России, поэтому еще помнит русский язык. Но гораздо приятнее его слушать на английском. Дима рассказал о том, как в компании Groupon относятся к сборкам, тестам, деплоям. Доклад получился достаточно живой и интересный. В самом конце заглянул на доклад по Code Review к Алексею Резчикову.
Мне «выпала честь» закрывать конференцию. Я выбрал для этого тему «Continuous Delivery», потому что она логически объединяла все обсуждаемые практики и подходы. Я собрал немало карточек обратной связи и слов благодарности от участников, что подтвердило правильный выбор темы. Презентация с этого выступления:
Практически все участники собрались на торжественное закрытие конференции. И правильно – ведь каждый хотел уйти не с пустыми руками. Призов было достаточно много. Мы разыграли сувенирные майку и кружку, а также 3 книги «Dependency Injection in .NET» с автографом автора. Наш бриллиантовый спонсор, компания «ДатаАрт», разыграла 5 читалок Amazon Kindle (2 больших и 3 маленьких). А второй наш бриллиантовый спонсор, компания SysIQ, разыграла сертификат на прохождение курса «Certified Product Owner». Он, по воле судьбы, достался одному из сотрудников SysIQ.
Закрытие было очень живым и веселым, с шутками из зала и общим позитивным настроем. Было очень приятно видеть радостные лица обладателей призов. Мы еще раз поблагодарили всех-всех-всех и попрощались до следующего года.
В целом, осталось очень приятное ощущение. Мы провели что-то новое и интересное, а не «очередную Agile конференцию». А ваши отзывы и слова благодарности помогают нам работать дальше и сильно мотивируют. Будем рады видеть вас снова!
XP Days Ukraine глазами организаторов. Часть 1
20 Декабрь

Вырвал время на написание отчета о конференции XP Days Ukraine. Отчет будет состоять из двух частей. В первой части речь пойдет о подготовке и первых двух днях, наполненных тренингами и разнообразными встречами. В этот раз я не буду делать слишком детальный обзор или пересказывать содержание докладов. Расскажу о нашем взгляде на данное мероприятие и моих личных впечатлениях.
Эта конференция получилась самой сложной из того, что мы делали за все время существования тренинг-центра XP Injection. Все складывалось не самым удачным образом с самого начала. Чтобы не пересекаться с другими крупными событиями, мы выбрали середину декабря в качестве времени проведения. И это был не самый удачный выбор. У многих компаний не осталось бюджета, некоторые участники уже начинали планировать новогодние праздники или были загружены работой перед завершением года. Поэтому мы очень скоро осознали, что собрать 500 человек, как изначально планировалось, попросту нереально.
Как обычно были сложности и с помещением. Я уже писал о плачевной ситуации с конференц-сервисом в Киеве. В этот раз она усугубилась проведением крупных новогодних корпоративов. А они гораздо важнее и выгоднее для владельцев площадок, чем наша конференция. Поэтому мы приняли решение ограничить количество участников в любом случае и провести конференцию в бизнес-центре «Парус». Про преимущества и недостатки этого места поговорим позже.
Не самая лучшая ситуация складывалась с докладчиками. По дороге мы потеряли некоторых очень интересных и важных зарубежных гуру. В основном это было связано с новогодними и рождественскими праздниками, а также с закрытием рабочего года. Тем не менее, нам удалось собрать очень сильный состав докладчиков с представителями из Украины, России, Беларуси, Польши, Дании, Норвегии, Англии и США.
Программа получилась на редкость сильная. Лично для меня было только несколько неосвещенных тем: инструменты для Continuous Integration (хотелось бы послушать про Jenkins, TeamCity, Cruise и прочие инструменты от их авторов), BDD (хотелось бы услышать о пользе и реальном опыте применения) и Technical Dept (о методиках сбора и анализа, а также инструментах для борьбы с ним). В остальном меня лично программа устраивала на все 100%. Я бы хотел лично еще раз поблагодарить всех докладчиков, которые приняли наше приглашение или же сами проявили инициативу. Именно благодаря им конференция удалась!
Основная задумка XP Days заключалась в том, чтобы сделать не просто конференцию, а насыщенное событие с возможностью прокачать навыки на тренингах и мастер-классах. Сам конференционный день должен был завершить мероприятие, дав возможность пообщаться и послушать множество интересных докладов. Поэтому мы запланировали на 15-16 декабря проведение 5 тренингов и 3 встреч/мастер-классов. Тренинги покрывали темы TDD в разных языках программирования (Java, PHP, .NET), Agile инженерные практики и Continuous Integration. Встречи проходили на темы автоматизации тестирования, Dependency Injection в .NET и совершенно нового для Украины направления TDD Coding Dojo.
Эти первые два дня получились такими насыщенными, что переплюнули все мои ожидания. Я принимал участие в качестве тренера только в первый день. Мы с Лешей Солнцевым рассказывали про большую часть инженерных практик и их внедрение. В очередной раз я осознал, что этот тренинг стоит делать только в формате двух дней. За один день мы даем такую нагрузку, с которой справляются далеко не все участники. Тем не менее, надеюсь было интересно. Мы постарались как можно больше рассказывать о примерах из нашего реального опыта и показывать живые демонстрации. Спасибо участникам за интересные и жизненные вопросы.
На второй день я отправился во время организаторской миссии посмотреть на другие тренинги. Все тренеры работали на очень высоком уровне. Я увидел очень много общения среди участников. На каждом перерыве были обсуждения, обмен опытом, впечатлениями, инструментами и техниками. И это здорово, потому что благодаря подобному общению мы приобретаем много нового опыта. Мне удалось частично принять участие в тренинге «TDD в Java», который проводил Paweł Lipiński. Paweł оказался очень опытным тренером и позитивным, энергичным докладчиком. Мне очень понравился его стиль ведения тренингов – как можно больше практики. Буквально каждая тема была подкреплена практическим заданием. Задания были на первый взгляд простыми, но реально приходилось поработать, чтобы получилось нормальное решение. При этом каждый участник по очереди выполнял задание вместе с тренером с демонстрацией на экране проектора. Это делало тренинг действительно увлекательным и я с радостью помогал моему коллеге из Zoral Labs успешно справляться с трудностями.
Вечер 16 декабря получился неожиданным благодаря огромным пробкам в городе. Мы должны были подготовить залы к завтрашней конференции, а добраться до центра города вовремя получалось не у всех подрядчиков. А еще и отвратительная погода. В итоге подготовка затянулась до позднего вечера, а я оставил Аню и Лешу, отправившись обратно на нашу площадку тренингов для организации упомянутых выше встреч. К нашему стыду, пришлось прокатить одного из зарубежных докладчиков Mark Seemann на метро в час пик. Это был для него единственный шанс добраться вовремя от отеля до места проведения его мастер-класса по Dependency Injection. Но он справился с задачей отлично и прибыл в назначенное время.
В .NET я не сильно разбираюсь и поэтому выбрал для себя TDD Coding Dojo. Я с опаской относился к этому формату. По собственному опыту знаю, что нужно продумать все до самых мелочей, чтобы живое программирование было интересным и увлекательным. Johannes Brodwall оказался как раз таким человеком, который относится к своему любимому делу с огромной ответственностью и готовится очень скрупулезно. Видно было, что ему очень нравится проводить подобные мероприятия, общаться с коллегами, программировать с ними и наблюдать за тем, как они программируют. Этот человек всегда стремится узнать что-то новое, в то же время с радостью делясь своим опытом и навыками.
Сначала Johannes познакомил нас с форматом и познакомился со всеми участниками, собрав с них ожидания. Потом в паре с одним из нас продемонстрировал принцип работы TDD Coding Dojo. И сразу после этого мы начали делать практические задания. Первое было достаточно простым, но отлично демонстрировало принципы работы в паре и TDD. Я работал в паре с Вовой Цукур и это было реально интересно. С первым упражнением мы справились быстро и без сложностей.
Потом началось самое интересное. Следующее практическое задание было с соревновательным подтекстом. Мы могли использовать любой язык программирования, любые трюки и уловки. Побеждал тот, кто набрал больше всех баллов. Причем как их набирать предстояло выяснить нам самим в процессе работы над заданием. Это было очень интересно.
Мы писали говнокод, поняли что без тестов даже два «сеньера» ничего путного не напишут, делились на лету знаниями IDE и Java, убедились что IDEA круче Eclipse, рефакторили говнокод, проявляли смекалку в написании регулярных выражений, да и просто получали кучу удовольствия от соревнования. А соревновались с нами ребята на PHP и C#. Команды были сильные и борьба накалялась. Мы вырвали победу с достаточно большим отрывом и это принесло еще больше удовольствия. В итоге разошлись мы только ближе к 11 часам вечера, а некоторые, как потом выяснилось, продолжали кодить еще и ночью дома. Огромнейшее спасибо Йоханнесу (ему приятно будет прочитать свое имя на русском языке) за эту сессию и в целом за приезд на нашу конференцию! Мы обязательно будем организовывать подобные встречи в формате «Клуба анонимных разработчиков».
Продолжение следует…
TDD – самая важная инженерная практика!
24 Ноябрь
Я часто задумываюсь о том, какая инженерная практика для меня самая важная и приносит больше всего пользы. В разное время я думал по-разному. Сейчас однозначно считаю, что это TDD (Test Driven Development). Этот подход к дизайну и разработке приложения дает возможность разрабатывать готовую функциональность гораздо быстрее. Меньше времени уходит на запуск самого приложения, отладку, поиск проблем, написание ненужного кода, построение решений на будущее и т.д.
Но еще важнее то, что TDD способствует внедрению других инженерных практик. Даже не способствует, а требует. Модульное тестирование применяется по умолчанию. Так как вы пишете много тестов, то вам нужно их регулярно запускать. И вы просто обязаны установить инструмент для CI (Continuous Integration) и начать им пользоваться. Небольшие законченные кусочки кода дают вам уверенность в коммите и вы начинаете следовать практике CI, интегрируя свой код как можно чаще. Вы натыкаетесь на участки кода, которые тяжело тестировать. И, чтобы написать тест, вам приходится рефакторить эти участки кода. Рефакторинг также является неотъемлемой частью самой практики TDD. Не все умеют хорошо работать по TDD. Поэтому вы обращаетесь к помощи коллег. Они помогают вам написать тесты и код (парное программирование), а потом просто просматривают ваш код (Code Review), чтобы убедиться в правильности применения TDD. Долго поработав по TDD, вы начинаете чувствовать себя некомфортно без тестов. Это толкает вас к переносу TDD на уровень выше и вы приходите к ATDD (Acceptance Test Driven Development) или BDD (Behavior Driven Development).
Вот и получается, что, следуя TDD, вы автоматически начинаете внедрять все остальные практики. Это своего рода ядро, которое со временем обрастает и превращается в целую инфраструктуру инженерных практик. Поэтому при подготовке программы тренингов для конференции XP Days Ukraine мы уделили большое внимание именно TDD. Мы пригласили опытных тренеров по нескольким наиболее популярным языкам программирования (Java, .NET, PHP), чтобы провести тренинги, затрагивая специфику языка и применяемых в нем инструментов. Это даст возможность участникам получить практический опыт применения TDD и начать внедрение этой полезной практики в своем проекте. Выбирайте наиболее подходящий тренинг, регистрируйтесь и повышайте свой уровень!
Отчет о моем выступлении на онлайн конференции IT Brunch
15 Ноябрь
В субботу 12 ноября мы проводили первую онлайн конференцию на платформе IT Brunch. Называлась она «В гостях у Agile практиков» и собрала докладчиков, практикующих Agile подходы из России и Украины. Отчет о самой конференции можно прочитать на сайте, а больше понять как оно происходило – в ленте Twitter.
Я помимо организации был одним из докладчиков. Тема моего доклада была «Небольшие гипер-продуктивные команды». Я уже выступал с этим докладом в формате PechaKucha, но там было достаточно мало времени рассмотреть детальнее эту интересную тему. Пересказывать содержание доклада нет смысла. Вы можете сами его послушать, если не пожалеете 30 минут своего времени:
От участников поступило множество вопросов и я хотел бы еще раз ответить на них в этом обзоре. Если вы не успели задать свой вопрос или он у вас появился после прослушивания доклада, то поделитесь им в комментариях и я постараюсь ответить.
Вопрос: Один разработчик в проекте, даже если лид, это серьезно по вашему мнению?
Ответ: Я думаю, что очень важен контекст проекта. Если на проекте нет больше работы, чем на одного человека, то раздувать команду искусственно не стоит. С другой стороны, один разработчик на проекте – это очень большой риск. Все знания хранятся в одной голове, может проявляться однобокий взгляд на архитектуру и дизайн приложения, некому посоветовать и сделать code review, тяжело решать проблемы и т.д. Поэтому я бы не назвал это «серьезным проектом», так как риски слишком высоки.
Вопрос: Как построить идеальную команду, учитывая дефицит кадров? Не проще инвестировать в рост кадров в случае долгосрочного проекта?
Ответ: Да, дефицит кадров очень сильно влияет на возможность построить классную команду. Но не стоит забывать о правильной мотивации, которая может во многих случаях играть немаловажную конкурентную роль при выборе потенциальным сотрудником места работы. При прочих равных условиях вы при сборе небольшой эффективной команды имеете преимущества перед большими бюрократическими командами. Для «правильных» людей конечно. Инвестировать в рост при долгосрочном проекте можно и нужно. Вот только делать это нужно с умом и без спешки. Не стоит брать толпу джуниоров и тратить кучу времени команды на их воспитание. Тем более учитывая какой «неблагодарный» у нас рынок. Лучше растить по одному или же использовать отдельный центр повышения квалификации, если есть на это средства.
Вопрос: Если джуниоры никому не нужны в командах, то как они вырастут?
Ответ: Этот вопрос перекликается с предыдущим. Они нужны, с этим никто не спорит. Но у разных компаний могут и должны быть разные стратегии развития. Небольшая команда для эффективной работы должна фокусироваться на разработке, а не на обучении персонала. И далеко не каждый опытный разработчик может быть хорошим тренером. А это означает, что и он будет тратить много времени и джуниор расти будет медленно. Если команда хочет и может взять «на попечение» джуниора, видит в себе силы и не потеряет значительно в скорости, то в этом есть смысл. В противном случае лучше инвестировать в развитие через специализированные тренинг-центры или внутренний центр повышения квалификации. Это будет дешевле и эффективнее.
Вопрос: Скажите, пожалуйста, не приведет ли такая команда к незаменимости ее членов? Особенно в условиях нынешнего кадрового голода, а, по Вашим словам, разменивать время дорогих специалистов на подготовку джуниоров неэффективно.
Ответ: Как раз наоборот. Благодаря небольшому размеру команды и постоянному тесному взаимодействию с использованием правильных практик, вы получите более-менее взаимозаменяемых членов команды. Но ничего не вечно и кто-то когда-то решит ее покинуть. В действительно хорошей небольшой команде каждый осознает ответственность за свой уход и он решается гораздо менее безболезненно. Человек помогает отобрать для себя замену и идет на уступки по поводу условий ухода. Понятное дело, что это не в 100% случаев, но шансы гораздо выше, чем в большой команде.
Вопрос: По Вашему опыту возомжно ли в будущем в нашей стране построение таких команд в высоко бюрократических компаниях, например банках?
Ответ: В сильно бюрократических компаниях не думаю, что такое станет возможно в ближайшее время. В них достаточно жестко прописываются роли, должности и правила. Я даже в некотором роде вижу противоречие слова «команда» и «штат сотрудников». Настоящая команда – это не просто люди, которые работают вместе. И добиться построения эффективной команды, не позволяя изменять жесткие должностные рамки, врядли получится.
Вопрос: Команде из 3-х человек не нужен менеджер. А нужен ли менеджер (владелец) продукта? Тот, кто будет отвечать за успех продукта в целом?
Ответ: Обязательно нужен. Он будет как раз той недостающей частью, которая позволяет команде показать свою эффективность. Сама команда не может отвечать за продукт (его функциональность, важность и прибыльность). А без этой информации команде тяжело сделать то, что будет названо «классным продуктом».
Вопрос: Может ли владелец продукта быть членом команды и скрам-мастером?
Ответ: Я некоторое время назад писал на тему кто может быть ScrumMaster-ом на проекте. ScrumMaster и Product Owner – это роли, которые налагают определенные зоны ответственности и правила работы. Определить кто удачнее подходит для какой роли можно в каждом конкретном случае. Если новая роль не конфликтует с уже существующими для этого человека ролями, то он является хорошим кандидатом.
Вопрос: Как выявить ключевые мотивационные факторы в команде? Можете ли посоветовать распространенные практики?
Ответ: Я уже писал о своем взгляде на мотивацию сотрудников. По поводу конкретных советов – я бы дал только один, не смотря на то, что он похож на совет КО. Поставьте себе задачу по-настоящему докопаться до истинных мотивирующих факторов для каждого члена вашей команды. А дальше можно применять множество техник. Говорите с ними, задавайте правильные вопросы, пытайтесь узнать такие факторы в чужой для вас команде и перенести на свою, делайте изменения и смотрите на реакцию и т.д. Но не отступайте от своей цели. Иначе можно легко придумать правильный ответ, который на самом деле очень далек от реалий.
Новости конференции XP Days Ukraine
8 Ноябрь
До начала конференции XP Days Ukraine еще больше месяца, а уже зарегистрировались около 200 участников из 54 компаний и 15 городов Беларуси, Украины и России. Инженерные практики и подходы интересны как разработчикам, так и другим членам команды: тестировщикам, техническим лидерам, менеджерам. Ведь практически любой проект непосредственно связан с написанием кода, его тестированием и поддержкой. И от правильности выполнения данных активностей непосредственно зависит успех проекта.
Программа конференции выглядит многообещающе. Организаторы собрали более 25 докладчиков из Украины, Беларуси, России, Англии, Дании, Польши, Норвегии и США. В основной день конференции, 17 декабря, участники смогут услышать 19 докладов, а также 8 мини-выступлений в секциях Tools Talks и Lighting Talks. В секции Tools Talks каждый выступающий будет иметь 15 минут для освещения темы использования какого-то инструмента, непосредственно связанного с Agile инженерными практиками. Секция Lighting Talks даст каждому из докладчиков шанс в течении 15 минут поделиться своими советами, практиками и решениями.
Mark Seemann, опытный разработчик и автор книги «Dependency Injection in .NET» поделится с участниками опытом разработки договоренностей и стандартов, благодаря которым код выглядит более стройным, легким в поддержке и сопровождении.
Joseph Wilk, один из ключевых разработчиков Cucumber, покажет, как этот инструмент помогает в создании «живых» требований и используется в популярной практике BDD.
Paweł Lipiński расскажет о принципах и подходах к дизайну в Agile. Нужно ли принимать долгосрочные решения? Помогают ли в дизайне UML диаграммы и TDD? Эти и многие другие вопросы будут рассмотрены в деталях.
Johannes Brodwall проведет практический мастер-класс по применению TDD и парного программирования. Программируя в паре с другим разработчиком, Johannes будет демонстрировать различные практики и тонкости TDD. Желающие поучаствовать в качестве партнера для Johannes могут написать ему в Twitter (@jhannes).
Дмитрий Коваленко расскажет о своем опыте построения процесса постоянного автоматизированного тестирования с использованием различных популярных инструментов: RSpec, Cucumber, Selenium. Дмитрий имеет большой опыт работы в тестировании, включая такие компании как ThoughtWorks и Groupon.
Это лишь малая часть интересных докладчиков и тем, освещаемых на конференции. Также будут рассмотрены вопросы архитектуры и дизайна в Agile, автоматизации всех уровней тестирования, применения практик Code Review, TDD, рефакторинга, Continuous Integration, работы со старыми проектами и legacy code, построения процесса непрерывной поставки продукта, управления качеством кода.
Но XP Days Ukraine – это больше чем просто конференция. 15-16 декабря будут организованы разнообразные тренинги и мастер-классы для повышения мастерства и навыков участников:
- Серия двухдневных тренингов по TDD в различных языках программирования (Java, .NET, PHP) от опытных практиков.
- Вводный тренинг «Инженерные практики в Agile», который поможет ответить на многие вопросы и заложить правильное понимание Agile инженерных практик и подходов.
- Тренинг «Continuous Integration на практике» на тему применения одной из обязательных практик в современном мире разработки.
- Встреча «Клуба анонимных разработчиков» на тему «Dependency Injection» с приглашенным докладчиком Mark Seemann
- Мастер-класс «TDD Coding Dojo» от Johannes Brodwall, на котором популярный подход к разработке через тестирование будет демонстрироваться в популярном стиле coding dojo.
Программа еще окончательно не сформирована и есть несколько зарезервированных мест для докладчиков на ключевые темы. С ними до сих пор ведутся переговоры. До 15 ноября возможны небольшие изменения в программе, но все они будут приятными и лишь добавят интересных событий. Еще есть несколько свободных мест в секциях Tools Talks и Lighting Talks. Зарегистрировавшись докладчиком в одну из секций, вы получаете скидку 50% на посещение конференции, а также все почести и преимущества докладчиков.
Таким образом, XP Days Ukraine станет крупным и интересным событием в области разработки. На данный момент действует основной этап регистрации, который продлится до 15 ноября. Стоимость участия на этом этапе составляет 700 гривен и будет расти по мере приближения даты проведения конференции. Зарегистрировавшись заранее, вы имеете возможность попасть на конференцию по меньшей цене. Также вы можете получить скидку 10% при групповой регистрации (группа от 5 человек). Поэтому собирайте своих товарищей и коллег и мы будем рады видеть вас на конференции!
Должен ли заказчик платить за модульные тесты?
28 Сентябрь
Вопрос о том, а должны ли заказчики платить за модульные тесты и как им их продать, я слышу очень часто. Последний раз мы обсуждали его на тренинге «QA в Agile» в Днепропетровске. Вопрос очень интересный и существует немало мнений на этот счет. Я попытаюсь изложить свое в этой статье.

Начну с того, что уже некоторое время прослеживается очень положительная тенденция. Большинство разработчиков в Украине пишет модульные тесты или хотя бы хочет их писать. Я говорю об Украине, потому что в России дела обстоят на порядок хуже. Это действительно очень классная тенденция, которая говорит о заботе о качестве кода со стороны самих разработчиков. Разработчики начинают осознавать пользу от модульных тестов и использовать их в своей работе добровольно. Таким образом, тесты становятся неотъемлемой частью работы разработчика, без которой ему работается не так комфортно и не так быстро (по крайней мере в долгосрочной перспективе).
Теперь давайте разберемся кто за что должен платить. Выполнение задачи раскладывается на множество составляющих: обсуждение требований, дизайн сессия, модульные тесты (надеюсь, что с использованием TDD), реализация функциональности, рефакторинг решения, интеграция в общий код, прогон всех тестов, проверка задачи вручную, обновление документации (если она есть в каком-либо виде), закрытие задачи в task tracking системе (или на доске задач). Это далеко не полный список для некоторых команд и проектов. Заметьте как много тут активностей. И теперь давайте выкатим этот список заказчику (возможно с оценками по времени для каждого пункта), чтобы выяснить за что он должен платить. Если у него будет выбор, то он выберет один пункт – реализация функциональности. Остальное ему неважно, поэтому он и не хочет за это платить. Ведь вы сами дали ему выбор.
Нужно изменить подход. Не выкатывайте заказчику детали вашей работы (по крайней мере в контексте разговоров об оплате). Вы делаете задачи по устоявшемуся для вас процессу, который позволяет делать их быстро и качественно. И редактировать данный процесс вам нет смысла. Заказчик может его принять либо отказаться, но частичный прием может сделать только хуже, причем всем участникам. Почему? Все дело в мотивации. Я уже писал о том, что нас на самом деле мотивирует. В данном случае работа по устоявшейся и «правильной» схеме дает нам возможность делать работу на приемлемом для нас уровне качества. Это доставляет нам удовлетворение проделанной работой и радость за ее результаты. Что нас и мотивирует. Никто не любит работать с бешеной спешке, пытаться выковырять причину бага и исправить ее в коде без тестов, часами пытаться понять кусок кода без малейшей возможности его изменить (потому что неизвестно, к чему это приведет). Поэтому цикл работы над задачей определяется командой и ее членами. И он не должен приводить к демотивации.
Что же делать, если заказчик или остальная команда противостоит внедрению модульных тестов? Такие случаи тоже бывают. Для вас это отличный шанс поднять свой уровень. Ведь вам нужно преодолеть серьезную преграду. А открытый конфликт и правильная борьба (не руганью и силой) заставляют вас делать очень серьезный анализ, преподносить результаты с выгодных сторон, искать правильные аргументы, разобраться в проблематике досконально. Это здорово и дает очень хороший опыт.
Если же по истечение какого-то времени у вас не осталось сил и вы все перепробовали, то просто проверьте свой мотивационный список. Выпишите все факторы, которые мотивируют вас для дальнейшей работы в команде или компании. Добавьте туда демотивирующие факторы. Каждому из них проставьте вес. Посчитайте сумму. Если сумма получилась отрицательная, то задумайтесь о разговоре с менеджером или смене работы. Жизнь одна и не стоит тратить ее на ту работу, которая делает вас несчастным!
Анонсы ближайших событий осени и начала зимы
12 Сентябрь
Эта осень будет очень насыщена событиями мира IT. Сезон отпусков подходит к концу и начинают активно проводиться образовательные мероприятия. Я не претендую на полноту картины и расскажу о наших планах, а также о планах наших близких коллег. Список будет достаточно длинный, но он стоит того, чтобы дочитать до конца. Подробное расписание наших мероприятий всегда содержит наиболее свежую информацию о наших тренингах, выступлениях и прочих планах.
Завтра, 13 сентября, в Киеве пройдет пятая встреча «Клуба анонимных разработчиков». Темой встречи выбрана «ORM. Добро или зло?». Мы поговорим о том, когда стоит и не стоит использовать ORM, какие преимущества дает ORM для разного типа проектов. Естественно затронем тему о многочисленных минусах и недоработках в популярных ORM, таких как Hibernate. Также будет сделан обзор рынка ORM решений с характеристикой каждого из них. Встречи клуба становятся регулярными и проходят в среднем по 2 раза в месяц.
15 сентября в Киеве в 18-30 состоится очередная встреча PechaKuchaNight. Как обычно участники смогут услышать много интересных коротких докладов и хорошо провести время в приятной компании. Темы докладов совершенно разные. Тем не менее, некоторые доклады затрагивают тематику IT.
16 сентября в Киеве в бизнес-центре «Парус» пройдет конференция SEMCamp по интернет-продвижению продуктов и услуг на зарубежные рынки. Конференция будет полезна тем, кто интересуется продвижением сайтов зарубеж, или уже работает с зарубежными клиентами и хочет увеличить продажи, или планирует выход на новые рынки. Особое внимание на конференции будет уделено продвижению услуг по разработке программного обеспечения, а также веб-продуктов и стартапов, ориентированных на зарубежную аудиторию.
В эту субботу, 17 сентября, в Днепропетровске пройдет тренинг «Управление рисками в IT проектах» Сергея Поволяшко. На тренинге вы получите концентрированный сгусток знаний и навыков об управлении рисками. И не только о них – о смежных областях, о координации с заказчиком и руководством, о правильной реакции на риски, об инструментарии. Минуя месяцы, а то и годы попыток и набивания шишек. Сергей является опытным руководителем и менеджером, которому есть чем поделиться. Регистрация еще открыта и есть несколько свободных мест.
23-24 сентября в Киеве пройдет третий сезон конференции AgileEE. Программа конференции готова на 100% – вы можете ознакомиться с ней и организовать свой график. Также опубликован список участников Lightening Talks – к вашему вниманию тезисы докладов, выбирайте самое интересное! Вы можете успеть зарегистрироваться на конференцию до 15 сентября по старой цене. Участники имеют возможность не только посетить конференцию, но и получить сертификаты CSM+ICA и CSPO. Также в программе несколько тренингов от лидеров Agile движения. Чтобы сэкономить у вас есть несколько способов: поучаствовать в еженедельной викторине и выиграть 30% скидку, поехать на конференцию с коллегами и получить групповую скидку или запустить цепочку регистраций, которая будет давать возрастающую скидку каждому следующему участнику в цепочке.
1 октября в Киеве мы организуем первый шахматный турнир среди работников IT. Это будет очень увлекательное мероприятие, потому что оно объединит совершенно разных людей: CEO, тестировщиков, разработчиков, HR, сисадминов и т.д. Определит победителя опыт и умение в этой замечательной игре. Турнир будет проводиться по всем правилам, в 7 туров на 15 досках. Победители получат грамоты, кубок и ценные призы. Приходите не только поучаствовать, но и поболеть за своих сотрудников.
15 октября в Киеве пройдет наш тренинг «Тестирование веб приложений с WebDriver/Selenium». Этот тренинг пользуется большой популярностью, потому что Selenium – ведущий инструмент на рынке автоматизации тестирования веб-приложений. В этом году вышла версия 2.0 и теперь проект имеет название WebDriver. В связи с этим событием программа тренинга была существенно переделана, чтобы включить наиболее свежую информацию и практические примеры. Тренинг будет полезен как начинающим, так и опытным автоматизаторам. Регистрация уже открыта, размер группы ограничен 15 участниками.
22 октября в Киеве состоится наш тренинг «Kanban для управления проектами». Данный тренинг объединяет в себе очень много полезной информации о практическом применении Kanban на проектах по разработке ПО. Он насыщен множеством практических упражнений, которые заставят участников задуматься об эффективности своих процессов и улучшить их после прохождения тренинга. Участники смогут понять когда стоит и не стоит применять Kanban, какие принципы и правила лежат в его основе, а также как применить все эти знания в реальной жизни. Регистрация уже открыта, размер группы ограничен 15 участниками.
29 октября Днепропетровск соберет тестировщиков на конференцию «QADnepr Mini Conference». QA Dnepr Mini Conference – это попытка объединить тестировщиков, которые интересуются определенной областью тестирования ПО и дать одним из них рассказать о своем профессиональном опыте в этой области, а другим – впитать эти знания. 1 день, 8 докладов от киевлян, харьковчан и днепропетровцев на тему живого опыта в автоматизированном тестировании – функциональном и нефункциональном. А также общение, новые знакомства и масса полезной информации из мира тестирования!
2-3 декабря в Москве пройдет юбилейная 10-ая международная конференция в области обеспечения качества ПО «Software Quality Assurance Days». SQA Days является конференцией №1 на пространстве СНГ и одним из главных мероприятий в Восточной Европе, посвященных тематике тестирования и обеспечению качества программного обеспечения. В качестве ключевых докладчиков приглашаются признанные эксперты международного класса. SQA Days – это замечательная платформа общения и обмена опытом для людей, вовлеченных в сферу тестирования ПО. Ведущие профессионалы смогут рассказать о своих достижениях, показать, как эффективно использовать инструменты, методики и методологии. Для начинающих – это отличный шанс приобрести новые полезные знакомства в профессиональной среде. За все годы конференция собрала более 2300 участников из стран СНГ, ЕС и др. С каждым годом ряды участников пополняются представителями все новых компаний из разных городов.
15 декабря в Киеве в рамках конференции XP Days Ukraine пройдет наш тренинг «Инженерные практики в Agile». Цель тренинга – рассказать о семействе основных инженерных практик, применяемых в Agile, дать изначальный толчок к их внедрению в команде. За 8 часов будут рассмотрены 8 инженерных практик и подходов: Code Review, парное программирование, модульное тестирование, рефакторинг, автоматизация сборки приложения, Continuous Integration, автоматизация функционального тестирования, TDD. Все они взаимосвязаны между собой и дают максимальное преимущество, если применяются вместе. Каждая из них поддерживает остальные, дополняя и расширяя. Тренеры поделятся с участниками многолетним успешным практическим опытом применения рассматриваемых практик.
15-16 декабря в Киеве в рамках конференции XP Days Ukraine пройдет наш тренинг «TDD в PHP». Test Driven Development (TDD) без сомнения является одной из наиболее полезных, но в то же время трудных для внедрения, инженерных практик. Многие ошибочно считают, что TDD существенно замедляет разработку. Но на практике происходит обратное – когда команда имеет достаточный опыт в TDD, то скорость разработки увеличивается. Данный тренинг поможет вам понять преимущества внедрения TDD на вашем проекте, сложности и пути их преодоления. Будут расcмотрены инструменты, которые применяются для тестирования в PHP, и весь технологический процесс разработки, непрерывной интеграции и поставки web-приложения на PHP, которое будет разрабатываться в процессе тренинга.
17 декабря в Киеве пройдет конференция XP Days Ukraine. Это мероприятие будет целиком посвящено Agile инженерным практикам. XP Days Ukraine – это больше чем просто конференция. Мы планируем организовать масштабное мероприятие длительностью несколько дней, которое будет насыщено разнообразными тренингами, мастер-классами, встречами и докладами. Программа конференции еще формируется и мы планируем пригласить многих известных зарубежных докладчиков. Будут освещены основные инженерные практики: Unit Testing, TDD, Continuous Integration, BDD, Code Review, Refactoring, Acceptance Testing и другие. Также будут обсуждаться вопросы архитектуры в Agile проектах, борьбы с технической задолженностью (Technical Debt), взаимоотношений разработчиков и тестировщиков, а также многие другие проблемы современной разработки.
Приглашаем всех в декабре в Киев на XP Days Ukraine
29 Август
Мы долго вынашивали идею этого мероприятия и рады сообщить, что официально начали подготовку конференции XP Days Ukraine. Конференция XP Days Ukraine будет целиком посвящена Agile инженерным практикам. Это больше чем просто конференция. Планируется масштабное мероприятие длительностью в несколько дней, которое будет насыщено разнообразными тренингами, мастер-классами, встречами и докладами. Дата конференции еще точно не определена, но это будет точно первая половина декабря. Состоится мероприятие в Киеве.
В последнее время многие жалуются на Agile конференции за наличие докладов только по командным и управленческим практикам, лидерству, Scrum и отсутствию серьезных докладов, непосредственно касающихся разработки. Мы решили исправить эту несправедливость и сделать конференцию практической направленности. Тематика инженерных практик и подходов выбрана не случайно, ведь большую часть процесса разработки составляет именно написание кода. Методология XP (eXtreme Programming) предлагает набор инженерных практик, которые помогают делать качественные продукты быстро и с меньшими рисками.
Мы приложим максимум усилий для того, чтобы привезти на конференцию известных докладчиков и тренеров, которые стояли у истоков современных инженерных подходов. Это даст участникам возможность получить информацию из первых уст. Будут освещены основные инженерные практики: Unit Testing, TDD, Continuous Integration, BDD, Code Review, Refactoring, Acceptance Testing и другие. Также будут обсуждаться вопросы архитектуры в Agile проектах, борьбы с технической задолженностью (Technical Debt), взаимоотношений разработчиков и тестировщиков, а также многие другие проблемы современной разработки.
Регистрация еще не открыта, так как конференция находится на этапе подготовки. В ближайшее время откроется этап ранней регистрации. Количество участников конференции будет ограничено. Мы планируем собрать не более 500 человек. Это будут разработчики, тестировщики, лидеры команд, менеджеры и все остальные непосредственные участники процесса разработки. Каждый найдет для себя что-то интересное. Присоединяйтесь к нашей группе в LinkedIn, Facebook или Google Groups, где вы сможете получать последнюю информацию о конференции и принимать участие в обсуждениях по ее подготовке. Чтобы получать последние новости о конференции вы можете подписаться на RSS, email рассылку или следить за нами в Twitter.
Мы приглашаем докладчиков, имеющих большой практический опыт в применении Agile инженерных практик, принять участие в конференции. Если вы чувствуете в себе силы и желание поделиться опытом с другими, то присылайте нам свое предложение о выступлении. Предложения принимаются до 1 ноября. Мы также будем рады любым рекомендациям с вашей стороны по поводу докладчиков, которых вы бы хотели увидеть на конференции.
Мы приглашаем спонсоров помочь провести конференцию на высоком качественном уровне и сделать участие в конференции доступным для широкой аудитории. Также спонсорская помощь поможет пригласить известных докладчиков и сделать программу конференции более насыщенной. Если у вас есть желание стать спонсором конференции, то мы с радостью рассмотрим ваше предложение. Предусмотрены различные спонсорские пакеты.
Видео со встреч «Клуба анонимных разработчиков»
17 Август
Многие спрашивают о том, как проходят встречи «Клуба анонимных разработчиков». Мы ведем видеозапись на каждой встрече и решили выложить несколько роликов в открытый доступ. Первый ролик является вступлением на встрече, посвященной распределенным системам контроля версий.
Второй ролик – это вступление к встрече на тему применения статического анализа кода.
Напоминаем вам, что очередная встреча клуба состоится 25 августа и будет посвящена рефакторингу. Это будет уже четвертая встреча клуба и мы рады пригласить всех присоединиться к составу наших участников.





