Записи с метками управление рисками
Ответы на вопросы: приоритизация задач
20 Ноябрь
Продолжаем начатое. Случился командный митинг, который напомнил один вопрос, ответ на который долго лежал в черновиках, но вот сегодня следует неторопливый, но неизбежный ответ. Как обычно – вопрос безжалостно свернут для экономии места с потерей стиля автора вопроса. Итак:
У нас проблемы с расстановкой приоритетов задач. Эволюция проекта и команды привела к тому, что product owner вырос из команды, а не на стороне заказчика. В итоге, связь с заказчиком не такая хорошая, как хотелось бы и часто случаются проблемы с определением приоритетов задач и ценности итераций для заказчика. Как уменьшить ошибки при планировании состава итераций и приоритизации фич внутри итерации?
Ситуация весьма знакома. Но, у вас несколько неверных предпосылок, имхо:
1) Проблемы с приоритизацией весьма слабо связаны с тем, что PO вырос из команды и у него не та интеграция. Вспомните про «Бритву Хэнлона«, из которой следует, что не надо искать заговор там, где возможна некомпетентность или ошибка исполнителей
2) Определять ценность итерации «для заказчика» верно только в том случае, если вы меняете строки кода на количество денег. Вы работаете не для заказчика, а для пользователей, учитывая бизнес-цели заказчика. Поэтому, лучше сразу оперировать ценностью итерации для пользователя.
3) У вас планирование идет от задач или все-таки от фич? Если от задач (отдельных активностей проектирования/кодирования/тестирования/администрирования/доставки и т.д.), то тогда вы сами загоняете себя в угол, потому что фича (функциональность, которую видит пользователь и которая может быть протестирована) – более удобный вариант. Хотя бы тем, что вы можете её ценность для пользователя измерить удобным для вас образом, что кардинально облегчает приоритизацию.
Иными словами, проблемы с приоритизацией как правило (если не брать случаи клинической неадекватности команды и/или заказчика) в практиках самой приоритизации.
О них и поговорим.
Старт проекта. «Продажа» Управления Рисками?
11 Апрель
Продолжаю серию статей «Старт проекта». Первая статья здесь – Старт проекта. Как это делать?, а вторая здесь Старт проекта. Что такое Управление Конфигурациями?
В этой, третьей статье, приведу некоторые мысли о том, как при старте проекта снизить его рискованность, и при этом не напугать заказчика или менеджмент.
Управление рисками – это та дисциплина, которая должна обязательно применяться при старте проекта, т.к. общеизвестный факт, что решение проблем на ранних стадиях всегда дешевле, и собственно есть гораздо больше возможностей эти решения применить.
Из-за чего возникают проектные риски?
- Заказчик не может обеспечить ожидаемый уровень коммуникаций, взаимодействия
- Сложная предметная или технологическая область
- Нехватка персонала или его квалификации
- Несоответствие типов контрактов, методологий и условий проекта
- Заказчик, а зачастую и менеджмент слабо (или не) знакомы как работает управление проектами
Управление рисками зачастую предполагает некоторые инвестиции в реакции на риски, то ли в виде некоторых дополнительных работ, например – прототип, то ли в виде некоторого резерва времени или средств. Естественно, что у заказчика возникает вопрос – «зачем платить за лишнее», или –«я плачу за работу, а не за риски». После того, как упомянуто слово риск, заказчик может перестать воспринимать вас всерьез, а то и просто «съехать».
Вот здесь ключевая идея – объяснить, а точнее замаскировать реакции на риски с помощью понятного для заказчика языка. Даже может быть категорически противопоказано употреблять термины и жаргон из мира разработки ПО.
Скажу по себе, хотя и был много лет назад разработчиком, но когда сейчас мне нужно узнать на концептуальном уровне о каком-то техническом решении, и я слышу в ответ слова: ADO, MVC, Hibernate, XML и т.п. у меня отключаются чувства восприятия
. Т.е. объясняющий совершенно профессионально объясняет техническое решение, но в силу разрыва понимания технологии получается недопонимание. Такие же разрывы случаются между парами тестировщик – разработчик, разработчик – менеджер проекта и т.д. И это между людьми, работающими в одном бизнесе! А что же говорить о заказчике, который хочет, чтобы мы поняли его бизнес потребности, а мы тут к нему с рисками?
Давайте посмотрим на неудачный и приемлемый варианты общения с заказчиком на этапе инициирования проекта. Беру условие практического задания «Маскировка» из тренинга «Управление рисками: классика, agile, бизнес, заказчик».
Условие:
Новый проект, примерно на год на команду 10 человек. Срок сдачи фиксирован. Требования слабо определены. Сложная предметная область. Заказчик примерно понимает приоритеты функционала, находится в США. Нужно как можно раньше четко осознать что успеется за год, т.к. нужно делать анонс продукта, продвигать и т.п. Не хватает 4 разработчика в команде, срок найма 1-2 месяца. Архитектура неясна, ориентировочно 2 подхода с разными ожиданиями по производительности, расширяемости и срокам разработки. Заказчик хочет 1-2 раза в месяц демо и прогнозы успеваемости по срокам. Прямо сейчас заказчик выбирает между 3-я поставщиками, понятно хочется выиграть заказ. Заказчик не очень техничен и от слова «риск» может «съехать».
Неудачные фразы:
- «Мы будем работать по СКРАМу и наши разработчики вам на демо все будут рассказывать» – вы можете представить каким языком разработчики расскажут? Да и хочет ли не техничный заказчик так общаться?
- «Мы по ходу разработки будем брать задачи из бэклога и по берндауну будем понимать наше велосити, а если не будем что-то успевать, то низкоприоритетные функции делать не будем» – несмотря на развитие гибких подходов у заказчика может случиться «вынос мозга» от такого заявления. К тому же от хочет «как можно раньше четко осознать что успеется за год».
- «У нас есть риск недобора команды, поэтому мы нагоним потом либо овертаймами, либо сокращением бэклога» – во-первых, состав команды это не есть проблема заказчика, ему по существу все равно как вы будете делать проект. Во-вторых, от такого «подхода» сразу же веет непрофессионализмом.
- «У нас есть риск неправильного выбора технического решения, поэтому мы заложим 20% времени на рефакторинг или имплементацию другого решения» – в понимании заказчика вы не знаете как правильно спроектировать его продукт, да еще и будете переделывать за его же деньги. И что это за мифический резерв в 20% времени?
Приемлемые варианты:
- «Для того, чтобы лучше понять вашу предметную область мы пошлем в командировку наших ведущих специалистов, которые обсудят с вами те задачи вашего бизнеса, которые вы хотите решить с помощью этого продукта, а также в подробностях самые первоочередные из них»
- «Так как вам нужно как можно раньше знать что войдет в продукт, то мы рекомендуем, чтобы вы выделили ваше время и-или время ваших специалистов для обсуждения требований»
- «Так как важно выбрать оптимальное техническое решение, а также оценить наши возможности как компании-исполнителя, мы предлагаем по-фазный подход. На первой фазе мы сделаем прототип, в котором постараемся отразить на концептуальном уровне первоочередные функции вашего продукта. Помимо этого вы также сможете оценить наши возможности»
Как-то так, на самом деле ваши действия скорее всего не будут зависеть от варианта формулировки вашего подхода. Но применяя нечто похожее на «Приемлемые варианты» и вы добьетесь того, что хотели, т.е. сможете включить реакции на риски в план проекта, и заказчик будет чувствовать себя более уверенным.
Серия статей «Старт проекта» выходит в поддержку тренинга «Успешный старт проекта», в котором темы статей рассматриваются подробнее и с практическими заданиями.
Ошибки проектирования – о подмене постановки задачи решением
4 Апрель
Мне в почту радикально скромный камрад, не захотевший комментить пост в блоге, прислал неожиданный вопрос о том, как практически выглядит управление риском потери фокуса на цели или подмены постановки задачи решением и зачем оно нужно, упомянутым в Ошибки проектирования.
Ну я как бы и не спорю, что описание дано весьма скудное и упоминание о Auftragstaktik и цели как единице планирования, плюс рекомендация постоянно задавать себе вопрос «зачем мы это делаем» – просто не может быть практикой и руководством к действию – только порогом, от которого разум в поиске оттолкнется. Признаю, каюсь и готов детально описать практики. Итак…
Нужно управлять этим риском хотя бы потому, что задавая вопросы «что вы хотите получить?», «что вам нужно сделать?» вы просто срезаете у своего бизнеса возможность заработать на бизнес-анализе и консалтинге. Потому что вы получаете весьма субъективное мнение владельца идеи или свое собственное. Потом приходит Его Величество Конечный Пользователь на реальном, а не воображаемом рынке и все ставит с ног на голову. Поэтому, гигиена идеи проекта должна заключаться в том, что вопрос «что делать?» должен быть уничтожен во взаимоотношениях заказчик исполнитель – как вне команды, так и внутри её.
Как это выглядит практически:
1. С заказчиком определите главные цели проекта. Выясните, чего он хочет добиться этим проектом и определите критерии достижения цели.
2. Определите (с заказчиком) в общих чертах путь достижения каждой из главных целей.
3. Проанализируйте путь достижения главной цели – из него появляются дочерние цели.
4. Определите (с заказчиком или уже без него) в общих чертах путь достижения каждой дочерней цели.
5. Проанализируйте …
Повторяйте самостоятельно выделение целей и анализ путей их достижения до тех пор, пока цель перестает отвечать на вопрос «чего мы хотим добиться» и начинает отвечать на вопрос «как добиться». Иными словами – вы приходите к финальным сценариям поведения/кейсам/стори – называйте как хотите. Главное, чтобы ваш сценарий позволил ответить на вопросы «кто?», «когда?», «где?», «как?», «для чего?», «что получает?». Если сценарий отвечает на эти вопросы, то он готов к переводу в предметную область разработки – на язык фреймоворка и тестового окружения.
Сразу возникает вопрос – как выделять дочерние цели? С главными-то все понятно – заказчик вам поможет, это его бизнес. Как быть с дочерними целями? Привлекать заказчика – перекладывать на него свою работу. Предлагаю обратиться к мудрости покойного ныне Элияху Голдратта, который много писал о вытягивающих принципах в системном и бизнес-анализе. В приложении к нашей задаче, вытягивающие принципы можно сформулировать так: ответьте себе на вопрос, что мешает вам добиться этой цели прямо сейчас, что мешает вот сейчас прямо взять – и отдать конечному пользователю? Такие подходы полезны не только в управлении требованиями и проектировании, но и в планировании, разработке, внедрении.
Итак, у вас в итоге образовалась некое дерево целей, которых вам нужно добиться. Причем, листьями этого дерева могут быть не только конечные сценарии, пригодные для проектирования и дальнейшей разработки, но и большие жирные знаки вопроса – исследования вариантов решения.
Какие вы получаете выгоды от такого подхода управления требованиями и дальнейшего проектирования:
1. Резкое сокращение объема работы для заказчика и увеличение объема творческой и высокооплачиваемой работы для себя.
2. Переходя от вопросов «чего надо сделать?» к «чего вы хотите добиться?» вы резко сокращаете влияние субъективного мнения о решении проблемы как вашего, так и заказчика – тот самый риск подмены постановки задачи решением.
3. Вы получаете приоритизированный список фич (сценариев). Если, вместо фич у вас жирные вопросы – тогда выделяете их в отдельный этап, приоритизируете их с помощью квадрата «риск-приоритет» и либо получаете конечные фичи, либо получаете дальнейшее разбиение на цели, которое рано или поздно приведет к фичам.
4. Вы не оставите места такой вредной штуке, как «спящие кейсы» – нет бизнес-целей, нет и фичи.
5. Язык бизнес-целей – это родной язык заказчика, до определенного уровня глубины ни формулировка целей, ни критерии их достижения (путь) не вызовут проблем во взаимопонимании. Верификация перестает быть болью.
6. Изменения требований становятся в большинстве случаев безболезненными. Как правило, меняются не цели – меняются пути их достижения. Если заказчик меняет цели – это уже другой проект. И вам это будет легче доказать на языке бизнес-целей и ассоциируя с его стилем бизнеса. Владение целями, кроме всего прочего, позволяет лучше понимать причину изменения требований и позволяет снизить психологический эффект «синдрома ребенка».
7. Если команда владеет целями, связанными с реальной бизнес-моделью и приоритетами этих целей – проще бороться с прокрастинацией и смещением фокуса с целей на заклепочничество в команде.
8. У вас есть черновик функциональной карты проекта, связанный с бизнес-целями как пруф вашего понимания бизнес-модели и способности решать бизнес-задачи. Хороший продажник вам так на этой теме денег накосит – мама не горюй
Такое и инвестору не стыдно показать, и архитектор потом спасибо скажет.
Такие вот практики продуктовой разработки по управлению риском подмены постановки задачи решением
Сразу отвечаю на не заданный вопрос: как это относится к продуктовой разработке, если применяются термины «лишаете свой бизнес возможности заработать», «отношения заказчик-исполнитель» и т.д. Хорошо относится. Потому что отношения заказчик – исполнитель вполне себе постоянно возникают внутри любой команды между её участниками и внутри любой компании между командами. Ну а ваша работа в любой компании – это разве не бизнес-модель получения материальной и моральной компенсации за возможности самостоятельно решать проблемы разной степени сложности в различных предметных областях? В это отношении заказная разработка и продуктовая разработка ничем не отличаются – я постоянно это говорю
Поэтому, вышеприведенные практики смело рекомендую как для продуктовых, так и для команд заказной разработки – проверено и там, там
Ошибки проектирования – об абстрактных моделях
3 Апрель
В первой части мы рассмотрели риски подмены цели решением, культа процессов и смещения фокуса ролей. Сразу отвечаю на вопрос: «а причем тут проектирование?». А при том, что проектирование в большинстве случаев охватывает весь процесс превращения чьей-то идеи в работающий код. Проектирование как процесс ответа на вопросы «зачем мы это делаем?», «для кого мы это делаем?», «как мы это делаем?» и «как мы проверяем, что мы сделали правильно?» сам по себе непрерывен, хоть и может быть неявным.
И одна из ключевых ошибок проектирования, настолько ключевых, что я решил сделать отдельный пост – потеря фокуса на взаимопонимании, причем не на осознании и восприятии самой ценности взаимопонимания, а на системности подходов поддержания взаимопонимания.
Одним из обязательных атрибутов системного процесса поддержания взаимопонимания является описание предметной области проекта, иногда называемое также аналитической моделью или абстрактной моделью.
Что такое описание предметной области? В умных книжках дается много определений, но мне больше нравится следующее:
предметная область проекта – это совокупность всех ролей, объектов и их состояний, возможных действий, возможностей и ограничений, связанных сценариями использования
Про методы описания предметных областей мы все много учили в ВУЗе или жизнь заставила, про методы превращения описания предметной области в код – тоже немало написано и известно, а в рамки статьи даже скупой обзор практик анализа и получения моделей предметной области не поместить. Поэтому, я хочу пока остановиться на использовании этих моделей в управлении рисками проектирования – тема, которая часто звучит или рефреном, или размазана по умным книгам в неявном виде. Почему я уделяю столько внимания именно абстрактному моделированию софта? А потому что в пароксизме увлечения легковесными методологиями все чуть забыли, что кроме генерирования качества есть такое понятие как воспроизводство качества. А вот тут без сбалансированной многоуровневой документации, которая не отвечает на вопрос «как сделано», а отвечает на вопрос «почему так сделано», «какие критерии» и «какие рамки и ограничения» – совсем никуда. А вот именно на эту документацию и не хватает времени в большом количестве «динамичных и быстрорастущих» проектов
Итак, какими основными рисками позволяет управлять описание предметной области:
0. Риск потери понимания бизнес-модели
Штука, которая страшна для любого проекта, независимо от его величины и сложности. Как только разработчик теряет понимание/ощущение/осязание первоисточника решения, т.е. бизнес-модели использования программного продукта и в проектировании оперирует не терминами предметной области проекта (бизнес-терминами, иными словами), а только классами, методами и интерфейсами – все, приехали. Начинается »клейка танчиков» и «заклепочничество» в чистом виде. Лучше иметь ответы на вопросы «зачем мы это делаем» в максимально простой, компактной и понятной форме. Кто-то может сказать, что он замечательно и без всяких моделей предметной области переводит user-story/use cases/scenarios в программный код. Отлично, а вы спросите его о том, как ответить на вопрос о том, как определить сложность тестирования или определить степень влияния фич друг на друга?
1. Риск потери ценности системы знаний
В любой системе знаний, кроме накопления, систематизации, транзитивности и пр. – есть ещё такая вещь, как обмен знаниями. Чем меньше объем и чем на более высоком абстрактном уровне находится вводная для проекта – тем проще вводить новичка, да и старикам навигацию это упрощает. Такая модель, представленная, как правило, в виде «кружочки + стрелочки + поясняющие надписи» – это очень полезная для команды вещь. Намного полезнее, чем диаграмма классов во всю стену, которая висит в большей степени «для понтов» и «меряний»
2. Риск определения момента, когда заказчика можно отпустить
Извечный вопрос: «когда отпускать заказчика?» в управлении требованиями и сценариями поведения. Сторонники гибких методологий скажут «никогда», но реалисты будут искать ответ на этот вопрос
Имхо, совокупность требований и сценариев поведения/приемки (в каждой методологии они называются по-своему, но их сути это не меняет) для мало-мальски сложного проекта не позволит ни заказчику убедиться в том, что понимание требуемого результата поселилось в голове у исполнителя, ни исполнителю не позволит страховать риски срыва ожиданий заказчика. Нужен промежуточный слой, который бы позволил уже наглядно представить результаты проекта, но ещё не оперировал терминами технических решений – просто заказчик не поймет. Даже технически грамотному заказчику проще общаться в терминах предметной области бизнеса, а не решения.
3. Риск потери управления техническим долгом
Очень часто бизнес требует сразу писать legacy код
Все часто сталкивались в своей практике со случаями, когда бизнесмен принимает решение quick win vs. long way в пользу быстрой поставки решения, которое с точки зрения разработчиков не более чем технический долг чуть более, чем полностью. Даже если этот технический долг измерим, осязаем и вполне себе в будущем начинает возвращаться, то без абстрактной модели будет очень трудно. В этом часто и состоит конфликт между бизнес-стороной проекта и его разработчиками: бизнесмен ожидает, что уж после не самого дешевого «продакшен-прототипа» с наработанным опытом и пониманием реализованной бизнес-модели возврат технического долга произойдет быстро. А получается, что уже через полгода требуется функциональный реверс-анализ проекта
4. Риск качества перевода с языка бизнеса на язык кода
Имеется ввиду перевод требований и сценариев в рабочий код. Модель предметной области в данном случае – отличная точка входа для управления рисками перевода идеи в реализацию. Хотите – используйте её как трамплин для погружения в DSL и DDD, хотите – просто как артефакт, задающий на высоком абстрактном уровне структуру, иерархию, потоки данных и действий, разделяющий зоны воздействия ролей для удешевления верификации, разработки, планирования и т.д.
5. Риск определения достаточности регрессии функциональных тестов
Вот кто от абстрактных моделей всегда в восторге – это тестировщики. Как ручные, так и автоматизаторы. Вопрос достаточности регрессии при внесении изменений всегда актуален. И определять его можно или путем глубокого анализа сценариев поведения/тестирования, или путем взаимодействия с разработчиком, или самостоятельно. Третий вариант при наличии модели самый экономный по времени и самый безопасный по влиянию решения на тесты. Если вы спросите тестировщика, что ему нужно для входа в проект – в большинстве случаев он ответит «сам проект и что-то вроде карты». Ну и не стоит забывать о мечте любого тестировщика (если вы его ещё не вовлекли в процесс анализа и проектирования) – обратная связь на функциональность проекта. Тут модель приложения в терминах бизнеса – самое то, чтобы начать предлагать изменения.
6. Риск смены решения
Разговоры про эволюцию кода и гибкие архитектуры – вещь классная. Но в бизнесе, как на войне – пушистый зверь может подкрасться незаметно. Например – сменятся аппаратные требования. В разгар кризиса и при развитии Atom платформы они менялись в сторону уменьшения
Вот и представьте, что вы отрезали от вашей связки «требования – сценарии – реализация» слой реализации. Что при этом произойдет? Правильно – кроме проектирования решения, опять реверс-анализ ввиду непрозрачности связей в сценариях.
7. Риск удорожания внесения изменений
С помощью абстрактной модели изменения в проекте легче продавать, анализировать, реализовывать, оценивать тестирования, вводить на задачу новых людей, страховаться от «замыливания» восприятия и многого другого. Очевидные, казалось бы вещи, но если бы все системно работали над снижением себестоимости реализации процесса – вряд ли было бы столько проектов, у которых деньги кончились или из-за невоспроизводимости качества или просто «вдруг», не так ли? Все-таки один из ключевых рисков разработки – потерю понимания потребностей заказчика никто не отменял.
8. Риск удорожания стратегического планирования
Выражается как в стоимости процесса манипулирования списками фич, так и цены ошибки при невозможности взглянуть «с птичьего полета» на проект. Также, абстрактная модель отлично работает как инструмент прямой и обратной связи между бизнес-аналитиком и командой.
Вот основные, на мой взгляд, достоинства абстрактных моделей с точки зрения управления рисками проектирования. Как видите, все они так или иначе связаны с системностью во взаимопонимании между различными участниками. И абстрактные модели – очень хороший этому помощник. Поверьте, не так много времени они требуют на свою актуализацию – ведь именно это останавливает, в основном
С другой стороны, затраты, понесенные на абстрактное моделирование – с лихвой окупаются удешевлением манипулирования проектом.
Самое трудное в абстрактном моделировании, как с любой документацией – его продажа процесса и артефакта заказчику и/или руководству компании. Рекомендую эту продажу делать от перечисленных выше рисков – очень помогает
Более детально о рисках проектирования и о управлении ими, мы поговорим с вами на мастер-классе «Практики эффективного, но экономного проектирования».
Продолжение следует.
Ошибки проектирования
18 Март

Предварительное проектирование и планирование работ – отличный инструмент, применяемый в большом количестве отраслей человеческой деятельности, но часто неработающий в разработке софта. Пусть простят меня сторонники Наполеоновского подхода «ввяжемся в драку, а потом посмотрим», но практика показывает, что команда, уделившая немало времени предварительной подготовке – при прочих равных выдает лучший результат. Если, конечно, не совершает типичных ошибок, о которых я хочу рассказать в течение нескольких статей.
Ошибка первая – потеря фокуса на цели. Одно из главных наших препятствий кроется психологической ловушке – мы пытаемся запланировать действия и это не работает в условиях большого количества рисков. В результате, стремление спроектировать и спланировать движение вперед приводит к пустой трате сил и времени и быстрому устареванию результатов проектирования. Вроде бы разработчики научились «замораживать» время на короткие итерации, но все равно, как говорил классик: «включаешь – не работает». А ученым и военным давно известно, что лучшей единицей планирования в условиях дорого проекта, находящегося в неопределённости – служит цель, которую надо добиться (проблема, которую надо решить). Как только команда перестает отвечать на вопрос «зачем мы это делаем» и «какую мы проблему решаем» – крушение не за горами. Да и с заказчиком проще общаться на языке целей, проблем, ценности, чем на языке реализации.
Поэтому, вопрос «зачем мы это делаем» нужно задавать себе постоянно – это очень здорово влияет на конечный результат. Войдя во вкус, вы начнете задавать себе и другие вопросы – «как доказать, что мы сделали правильно», «что делать, если цель меняется» – и многие другие очень полезные вопросы, которые выведут управление вашими (и заказчика) рисками на совершенно другой уровень.
Вторая ошибка – культ Карго касательно процессов проектной деятельности и инженерных практик. Процесс безусловно важен, но он не должен руководить. Фокус должен быть на результате, поэтому, люди, которые отвечают за процессы – не должны руководить разработкой. Тогда вы перестанете «делать процесс» и начнете делать продукт. Исключение – когда разработкой руководят люди, которые в том числе внедряют процессы как один из инструментов. Но это плохая работа. Она рано или поздно приводит к всплескам в мышлении так называемой производственной ментальности: ресурсы слишком ценны, чтобы простаивать, если ресурсы начали гнать некачественный продукт, то мы поменяем прошивку, заменим износившиеся детали на новые и более модные, изменим набор действий, запланируем его другим инструментом и все станет хорошо бла-бла-бла.
Это не работает. Это просто приведет к тому, что у нас будет 100% покрытие зелеными тестами, например, но свободный поиск руками покажет, что фича негодна. С такими всплесками нужно бороться. Например – ни одна практика не внедряется без экономического обоснования с точки зрения целей проекта, а не процесса. Потому что под процесс всегда можно оправдать
А вы попробуйте честно доказать друг-другу, например, что TDD вам нужна в первую очередь как инструмент уточнения требований, а уж потом – как средство повысить качество кода. Очень много интересного узнаете о том, как вы управляете требованиями и почему у вас они часто меняются.
Ценность agile практик, кстати, как раз в том и заключается (в том числе), чтобы убрать культы, но человек слаб, поэтому он часто возводит уже agile в культ.
Третья ошибка – смещение фокуса ролей. Крамольная мысль №1 – не нужен в команде «главный выделенный архитектор», отвечающий за стратегию и фреймворк решений. Так много внимания уделяется архитектуре приложения во всех её проявлениях – архитектура, дизайне, детальный дизайн. А ведь это инструмент, не более. Потому что проектирование – это не создание технического фреймворка, это процесс решения вполне себе экономических, социальных, психологических и прочих проблем. Мы привыкли рассматривать разработку как процесс создания артефакта – работающего кода. А решаемые проблемы (заказчика и разработчика) – они не ложатся в этот фреймворк, в его структуру и иерархию – он просто выступает одним из решений.
Крамольная мысль №2 - значительно полезнее иметь не выделенного архитектора, а бизнес-аналитика, который займется связями использования и реализации. Архитектуру поменять сложно, но можно – даже на крупном проекте, масса проектов с кривой архитектурой и не менее кривой реализацией успешно работают и делают людей счастливыми. А вот если у проекта не будет очень хорошей обратной связи к бизнесу – это почти сразу труба, можно садится и прогнозировать убытки.
Крамольная мысль №3 – наличие выделенного архитектора во много крат повышает влияние риска «любимого ребенка» и вместо реальной помощи при адаптации архитектуры под изменения требований бизнеса – начинается игра не в те ворота. Как часто вам главные архитекторы тормозили процесс изменений и рассказывали, что это сложно, невозможно и очень трудно тестировать? И ведь под благим предлогом – нам нельзя дестабилизровать проект и т.д. и т.п.
Сразу отвечаю на вопрос – а как же все-таки без архитектора? Он будет, но это будет команда опытных разработчиков. Все как-то гонят от себя мысль, что архитектуру и фреймворк проекта должен писать «кодирующий архитектор» – потому что критерии качества архитектуры в большинстве случаев проявляются только в ходе процесса создания архитектуры, а не до него. Других вариантов нет – некодирующий архитектор рано или поздно превратится в инвалида, который неспособен уточнить требования через код или внедрить инженерную практику через действие.
Иными словами, архитекторы – это опытные разработчики, которых подпирает бизнес-аналитик, не позволяя увлечься сферическим конем в вакууме, постоянно напоминая о реальных критериях качества, а не о чистоте архитектурных решений, паттернах и иерархии классов. При этом, завершив этап архитектуры, эти разработчики начинают получать обратную связь о качестве этой архитектуры путем использования – самы хороший вид обратной связи. Кстати, самая навороченная из Agile методик – Feature-Driven Development, как раз и оперирует группами архитекторов (Chief Developers).
Продолжение следует…
Отличный набор тренингов для менеджеров проектов
3 Март

Мы постоянно развиваемся и растем, приглашаем новых тренингов, организуем новые интересные мероприятия в различных сферах IT. Изначально наш тренинг-центр предоставлял услуги только в области Agile и инженерных подходов. И этот статус твердо за нами закрепился.
Но жизнь меняется и мы стараемся расширять спектр предоставляемых услуг.
На данный момент мы имеем полный цикл тренингов для менеджеров и всех, кто хочет стать менеджером. Предлагаемый набор тренингов покрывает практически все сферы в области управления проектами, за исключением так называемых soft skills. Но это немного не наш профиль. Итак, что мы готовы предложить менеджерам:
- «Успешный старт проекта» (Сергей Поволяшко) – 8 часов
- «Практики эффективного, но экономного проектирования» (Дмитрий Ефименко) – 16 часов
- «Метрики: команды, проекты, процессы и код» (Сергей Поволяшко и Николай Алименков) – 16 часов
- «Управление рисками: классика, agile, бизнес, заказчик» (Сергей Поволяшко) – 8 часов
- «Планирование и оценивание в Agile проекте» (Николай Алименков) – 8 часов
- «Kanban для управления проектами» (Николай Алименков) – 8 часов
- «Организация работы на проекте с помощью Scrum» (Николай Алименков) – 16 часов
- «QA в Agile» (Николай Алименков) – 8 часов
При этом, у нас также есть тренинги по инженерным практикам, которые по-хорошему менеджерам должны быть тоже небезразличны для общего развития и современного взгляда на разработку. Все перечисленные тренинги проводятся опытными специалистами, которые знают толк в менеджменте и управлении проектами, имея за плечами немало жизненного опыта в реальных проектах.
Сергей Поволяшко имеет 15 лет стажа в IT. Работал по нескольким IT специальностям (разработчик, системный администратор, тестировщик). С 2001 года является практикующим проектным менеджером и менеджером IT подразделений. Сергей имеет многолетний практический опыт эффективного применения разнообразных методологий и практик на стыке интересов проектной команды, компании и заказчика. А также опыт организационного управления IT подразделений. Сертификации PMP и ITIL. Принимал лидирующее участие во внедрении CMMI L3.
Дмитрий Ефименко является экспертом в управлении проектами и командами, бизнес и системном анализе, проектировании, разработке, тестировании и построении процессов. Более 13 лет в разработке софта, последние 4 года – лидер продуктовой команды. Категорический сторонник вытягивающих подходов в проектировании и разработке, самоуправляющихся команд, бережливых и легковесных процессов. Увлекается синтезом эффективных процессов «под команду» из известных и не очень методов и практик.
Николай Алименков является экспертом в разработке приложений на Java и управлении командами. Имея опыт разработки более 7 лет, уже более 5 лет Николай работает с Agile методологиями. На текущий момент практикующий технический лидер и Scrum Master.
Отличительная особенность представленных тренингов в том, что каждая тема освещается с разных точек зрения и подходов (классических, Agile, собственных). Благодаря этому, каждый участник получает возможность перенять и применить на практике опыт тренеров в совершенно разных окружениях, методологиях и подходах к управлению проектами. Каждый найдет в представленном списке что-то интересное для расширения диапазона своих знаний и возможностей внедрения новых подходов.
Менеджеры, мы будем рады видеть вас на публичных тренингах и корпоративных мероприятиях в вашей компании!
WebDriver, Kanban и риски
7 Октябрь
Помимо множества других мероприятий, осенью мы организуем ряд тренингов. Они пройдут в октябре-ноябре в Киеве.
15 октября запланирован популярный тренинг «Тестирование веб приложений с WebDriver/Selenium». Программа тренинга была полностью переработана после выхода долгожданной версии Selenium 2.0 (aka WebDriver). Из тренинга были выброшены отжившие свое части, все примеры были переписаны с нуля и расширены для демонстрации новых возможностей WebDriver, добавлены некоторые новые инструменты в обзор решений на базе WebDriver/Selenium, описан переход от старой версии на новую и еще много всего интересного. Группа на 15 октября собралась очень быстро, поэтому мы проведем тренинг еще раз 19 ноября. Регистрация открыта и осталось 6 вакантных мест. Торопитесь зарегистрироваться!
22 октября состоится один из самых полезных тренингов «Kanban для управления проектами». Kanban только на первый взгляд выглядит простым подходом для разработки. На самом деле существует очень много тонкостей и полезных практик, которые помогут уберечь вас от ошибок и сделают разработку действительно быстрой и качественной. Тренинг содержит несколько практических упражнений, которые заставляют совершенно по-другому взглянуть на взаимодействие внутри команды и с внешним миром. Участники научатся пользоваться инструментами для анализа и оптимизации процесса разработки в целом. Также будет затронута тема перехода к Kanban с других подходов, благодаря чему каждый сможет сделать осознанный выбор при постановке процесса разработки. Данный тренинг будет полезен разработчикам, лидерам и менеджерам команд для оптимизации работы своей команды. Регистрация продолжается и на данный момент осталось только 4 места.
5 ноября к нам в гости из Харькова приедет Сергей Поволяшко для того, чтобы провести тренинг «Управление рисками в IT проектах». Сергей имеет очень большой опыт работы в IT и имел возможность попробовать себя на разных позициях. Уже около 6 лет он работает на должности CTO в компании TEAM International, поэтому о рисках знает не по наслышке. Сильная теоретическая база Сергея подкреплена сертификациями PMP и ITIL. А на практике свои знания он применяет уже долгое время как опытный менеджер и руководитель. Тренинг далек от сухой теории, в нем много практических упражнений, которые помогают участникам лучше разобраться в теме. В тренинг впервые будет включена игровая симуляция командной работы над рисками, которая позволит участникам проверить себя на практике и понять насколько они освоили материал. Эта симуляция уже проводилась на нескольких Agile конференциях Борисом Вольфсоном (за что ему большое спасибо) и пользовалась большим успехом у участников. Регистрация на тренинг уже открылась и продлится до 1 ноября. Количество мест ограничено.
Также на ноябрь мы готовим один приятный сюрприз для всех любителей и практиков Agile подходов. Подробности вы узнаете очень скоро. Оставайтесь с нами!
XP Injection едет в Днепропетровск!
25 Август
Прошло лето, закончилась пора отпусков и мы активно взялись за планирование мероприятий на осенние месяцы. Нас давно приглашали в гости в Днепропетровск и мы решили приехать с тренингами в этот город. Визит запланирован на 17 сентября. В программе будет два тренинга – «Управление рисками в IT проектах» и «QA в Agile».
Тренинг «Управление рисками в IT проектах» проведет Сергей Поволяшко. Цель тренинга – глубже рассмотреть принципы и методики управления рисками, а также возможности по их применению на практике. Практическая ориентированность тренинга позволяет не только освоить теоретический материал, но и проверить его эффективность. Это необходимо для профессионалов, технических и проектных менеджеров и тех, кто хочет ими стать. Полезен тренинг будет и для опытных руководителей, которые открыты для получения знаний и улучшения своих навыков. Подробности можно узнать из детальной программы тренинга. Регистрация уже открыта и продлится до 14 сентября. Торопитесь, количество мест ограничено!
Я же проведу один из моих любимых тренингов «QA в Agile», на котором тестировщики смогут лучше понять свою роль и подходы к работе, которые используются в Agile методологиях. Также им будет предложены несколько рабочих QA процессов в командах, работающих по Scrum. Много интересных презентаций, различные полезные практики и игровые симуляции делают этот тренинг очень познавательным и полезным. Вы можете узнать больше о тренинге и ознакомиться с отзывами в детальной программе тренинга. Регистрация на тренинг уже открыта и продлится до 14 сентября. Торопитесь, количество мест ограничено!
Мы также будем рады встретиться со всеми желающими пообщаться или организовать встречу «Клуба анонимных разработчиков» впервые вне Киева. Присылайте нам свои предложения. До встречи в Днепропетровске!
Презентация с семинара «Записки о рисках»
29 Ноябрь
Как мы и обещали, выкладываем презентацию с семинара Сергея Поволяшко «Записки о рисках», проходившего 27 ноября в Киеве:
Также напоминаем, что 18 декабря пройдет полноценный тренинг на тему «Управление рисками в IT проектах». Цель тренинга – глубже рассмотреть принципы и методики управления рисками, а также возможности по их применению на практике. Практическая ориентированность тренинга позволяет не только освоить теоретический материал, но и проверить его эффективность. Это необходимо для профессионалов, технических и проектных менеджеров и тех, кто хочет ими стать. Полезен тренинг будет и для опытных руководителей, которые открыты для получения знаний и улучшения своих навыков. Подробности можно узнать из детальной программы тренинга. Регистрация уже открыта и продлится до 13 декабря. Стоимость участия 1000 гривен за участника (обед включен). При регистрации от трех человек скидка 10%. Всем участникам семинара предоставляется скидка 15%. Торопитесь, количество мест ограничено!
Отчет о мероприятиях 27 ноября
28 Ноябрь
27 ноября в Киеве состоялось множество интересных мероприятий: мастер-класс Владимира Агафонкина «Современная разработка с JavaScript», конференция MageConf & ZFConf Ukraine, тренинг «Игры в IT» от Александра Орлова и Славы Панкратова. Мы также внесли свой вклад и провели сразу два мероприятия: тренинг «Тестирование веб приложений с Selenium» и семинар «Записки о рисках».
Тренинг по Selenium как обычно собрал аудиторию с различным уровнем опыта и знаний. Очень радует постоянный интерес к этому инструменту, который позволяет быстро и качественно автоматизировать тестирование веб приложений. Участники смогли убедиться в этом на практике, предварительно ознакомившись со всем спектром возможностей инструмента. Тренинг содержит огромное количество полезного материала, поэтому участникам будет чем заняться в качестве «домашнего задания». Техники, подходы, дизайн решения, интеграция с другими инструментами – это то, что делает мир Selenium таким интересным и насыщенным. Надеюсь, посещение данного тренинга сильно поможет участникам в их работе.
GL-Club любезно согласился на проведение открытого семинара Сергея Поволяшко «Записки о рисках». Участие в семинаре было бесплатным по предварительной регистрации. Как и ожидалось, зарегистрировалось очень много людей, больше, чем мог вместить GL-Club. По опыту проведения подобных мероприятий мы знали, что придут далеко не все из зарегистрировавшихся. Поэтому мы пригласили большее количество человек. Статистика полностью подтвердилась и на семинар пришло чуть больше половины приглашенных. Люди, для чего вы тогда регистрируетесь? Ведь на ваше место мог бы придти действительно заинтересованный человек! Те, кто все таки пришел, чувствовали себя комфортно, места хватало всем. Семинар проходил очень живо, было много общения с аудиторией. По результатам ответов на вопросы к участникам Сергей разыграл несколько призов. Это были две книжки Хенрика Книберга «Scrum and XP from trenches» в переводе на русский язык, а также главный приз – посещение любого нашего тренинга со скидкой 80%. Его выиграл Виталий Ткаченко. Поздравляем Виталия и ждем на наших тренингах. Для тех, кто не попал на семинар или просто заинтересовался темой семинара, мы проведем полноценный тренинг «Управление рисками в IT проектах» в декабре. Окончательно дата проведения еще не назначена, но вероятнее всего это будет 18 декабря. Для участников семинара предоставляется скидка 15%.
Небольшой фотоотчет с семинара:








