Юлий Минькин, руководитель проектного офиса
Зачастую выбор правильной технологии для выполнения IT-проектов может стать критическим фактором успеха. В тоже время, среди большого количества доступных вариантов, выбрать технологию, которая наилучшим образом соответствует потребностям вашего проекта, может быть сложной задачей.
В этой статье рассмотрим идею выбора подходящей технологии, основанную на ключевых факторах вашего IT-проекта и соразмерности этих факторов с особенностями проектной технологии.
Проблематика
Часто в статьях или докладах IT-специалистов можно встретить материалы, в которых противопоставляются разные технологии и отдается предпочтение одной из них. При этом делается упор на то, что именно эта технология является универсальной и становится успешной для любых проектов.
Так часто делают в отношении технологий выполнения проектов по моделям Scrum и Waterfall. На волне популярности гибких методологий, очень заметно, что значительная часть критики достается предиктивным методам, которые часто именуют как Waterfall.
Справедливости ради надо сказать, если к Waterfall относится не как к модели жизненного цикла проекта, а как к технологическому циклу, результатом которого является готовый продукт (инкремент), то многое становится на свои места. Как если, по аналогии, мы изготавливаем глиняный горшок, то процесс его создания тоже из себя представляет технологический цикл, состоящий из ряда итераций, изменив который не получить желаемый результат.
Решая любые задачи по разработке или настройке ПО, мы тоже, волей или неволей, проходим этот технологический цикл. Сначала собираем необходимую информацию, потом что-то синтезируем (проектируем), затем выполняем, проверяем и запускаем. Решение даже мелких задач проходит через этот технологический цикл, даже если большую часть операций вы выполняете умозрительно.
Исторически сложилось так, что проблемы с Waterfall начали возникать, когда задача была слишком сложная, масштабная и на ее решение требовалось много времени. Собственно поэтому в начале 80-х из-за усложнения программного обеспечения и масштабирования IT-проектов, стали активно практиковаться итеративные и инкрементные методы разработки. Но Waterfall, как технологический цикл не исчез, просто большой проект стали "нарезать" на более простые составляющие, разнесенные во времени, каждая из которых представляет собой «мини-проект», включающий все необходимые стадии создания инкремента.
Такая декомпозиция проектов добавила им гибкости и адаптивности к изменчивой среде, сократила влияние недостатков, присущих однофазным проектам выполняемых по модели Waterfall.
В дальнейшем, тенденция по повышению частоты (ритмичности) проектных поставок (каденция) лишь усилилась, что привело к появлению множества адаптивных методологий, которые называют обобщенно термином «Agile».
Собственно, каденция поставок означает сроки и частоту применительно к поставляемым результатам проекта. А выбранная проектная технология определяет то, что это может быть разовая поставка, неоднократные или периодические поставки, а также ритмичность этих поставок.
Проектных поставок может и вовсе не быть, так например, при выполнении разработки ПО по методологии Kanban, инкременты вовсе отсутствует, а есть лишь поток итеративно выполняемых задач.
Согласно PMBOK, всю совокупность подходов выполнения проектов можно рассматривать как спектр, когда предиктивный (Waterfall) подход расположен на одном его конце, а адаптивный — на другом.
Выбор подходящего подхода для выполнения IT-проекта зависит от множества факторов: размер проекта, требования заказчика, доступность ресурсов, опыт команды и пр.
Но главным фактором, определяющим выбор подхода выполнения IT-проекта, должна быть соразмерность сложности и масштаба решаемых задач и степени гибкости и адаптивности выбранной технологии.
Так например, мы уже писали, что для сложных и комплексных проектов, таких как внедрение 1С:ERP, нецелесообразно использовать методологию Scrum. Это связно с тем, что рекомендованная длительность спринта, равной 1-4 неделям, как правило, недостаточна для поставки работающей системы или ее части. Для таких проектов предпочтительно выбрать более подходящие проектные технологии.
Важно помнить, что нет универсальной "лучшей" методологии для всех проектов. Чтобы безошибочно определиться с проектной технологией, важно знать их преимущества и недостатки.
Предиктивный подход
Преимущества
- Предиктивный подход основывается на тщательном определении требований проекта и создании детального плана разработки. Это особенно полезно, когда требования четко определены и не подвержены значительным изменениям. Проекты с жесткими сроками, бюджетами или требованиями к безопасности могут быть более предсказуемо управляемыми с применением этого подхода.
- Предиктивный подход позволяет более точно планировать и управлять ресурсами и бюджетом проекта. Структурированные этапы разработки и определенные ключевые точки облегчают контроль за использованием ресурсов и прогнозирование затрат. Это особенно важно, когда доступность ресурсов ограничена и требуется строгое финансовое планирование.
- Предиктивный подход обеспечивает строгое следование процессу разработки, что может быть необходимо в некоторых отраслях или при разработке систем с высокими стандартами безопасности и надежности. Например, при разработке программного обеспечения для медицинского устройства, следование строгим процедурам и процессам может быть обязательным требованием.
- Предиктивный подход акцентирует внимание на документации требований, анализе и планировании, что способствует более тщательному изучению проекта и его потенциальных рисков. Это может быть полезно в случаях, когда требуется высокая степень формализации и оценки возможных рисков.
- Предиктивный подход позволяет уделять особое внимание контролю качества и тестированию продукта на каждом этапе разработки. Это помогает обнаружить и устранить проблемы на ранних стадиях, что способствует достижению высокого уровня качества и надежности окончательного продукта.
- В предиктивном подходе коммуникация организована в линейной структуре, где информация передается последовательно от одной стадии к другой. Это может быть эффективным в случаях, когда команда разработчиков состоит из большого числа участников или когда важно обеспечить ясность и последовательность обмена информацией.
- В некоторых отраслях, таких как финансы, здравоохранение или государственный сектор, предусмотрены жесткие правовые требования и регулирования. Предиктивный подход может обеспечить формализованный и документированный процесс разработки, соответствующий этим требованиям, и облегчить аудиты и проверки соответствия.
Недостатки
- Предиктивный подход предполагает детальное и длительное планирование на ранних этапах проекта. Это может ограничивать возможность внесения изменений в требования или функциональность впоследствии, особенно после того, как проект достигнет более поздних стадий разработки. Если требования изменяются или появляются новые, внесение изменений может быть сложным и дорогостоящим.
- Предиктивный подход не предусматривает частые итерации и корректировки на основе обратной связи. Это может затруднять адаптацию к изменениям в проекте или внешней среде. Если требуется быстрая реакция на изменения и гибкость в реализации новых требований, предиктивный подход может оказаться неподходящим.
- В предиктивном подходе заказчик часто видит результат только в конечной фазе проекта. Это может привести к недостатку прозрачности и обратной связи со стороны заказчика в ранних этапах разработки. В результате, заказчик может быть неудовлетворен качеством продукта или обнаружить несоответствие с ожиданиями только после окончания проекта.
- Предиктивный подход предполагает строгое следование заранее определенным планам и процессам. Это может привести к риску недостаточной проверки и контроля продукта на ранних этапах разработки. Если проблемы или ошибки не обнаружены и исправлены вовремя, они могут оставаться неразрешенными до конечной фазы проекта, что может привести к серьезным проблемам.
- Предиктивный подход требует четкого определения исходных требований на ранних этапах проекта. Если исходные требования недостаточно точны или полны, это может привести к ошибкам в планировании и разработке. В случае обнаружения несоответствий или недостатков в исходных требованиях позднее, исправление может быть сложным и затратным.
- В предиктивном подходе заказчик обычно участвует в процессе разработки на начальных и конечных этапах, но его влияние и обратная связь ограничены в промежуточных этапах. Это может привести к недостаточной его вовлеченности в проект.
Адаптивный подход
Преимущества
- Адаптивный подход позволяет быстро адаптироваться к изменяющимся требованиям и условиям проекта. Вместо долгого и детального планирования на ранних этапах, команды фокусируются на создании рабочего прототипа и быстром получении обратной связи от заказчика. Это особенно полезно в случаях, когда требования проекта неясны или могут измениться в процессе разработки.
- Адаптивный подход акцентирует внимание на активном взаимодействии с заказчиком на протяжении всего процесса разработки. Заказчик вовлекается в процесс принятия решений, дает обратную связь и помогает определить приоритеты. Это способствует созданию продукта, более полно отвечающего потребностям и ожиданиям заказчика.
- Адаптивный подход позволяет быстро создавать и поставлять рабочие прототипы готового продукта. Это позволяет заказчику получать раннюю обратную связь, протестировать продукт и начать его использование, даже если он не полностью завершен. Такой подход особенно полезен, когда требуется быстрая поставка ценности и быстрое реагирование на изменения рыночных условий.
- Адаптивный подход позволяет быстро выявлять и управлять рисками на ранних этапах разработки. Через короткие итерации и частую коммуникацию с заказчиком, проектная команда может быстро определить проблемы и их решения для минимизации рисков.
- Адаптивный подход способствует повышению качества продукта и стимулирует инновации. Благодаря регулярной обратной связи и итеративному процессу, можно быстро реагировать на замечания заказчика и внедрять улучшения.
- Адаптивный подход способствует высокой эффективности проектной команды. Команды работают над небольшими итерациями с четко определенными целями, что позволяет им быть более организованными и фокусированными. Кроме того, такой подход способствует командному сотрудничеству, самоорганизации и разделению ответственности между членами команды, что влияет на повышение производительности и качества работы.
- Адаптивный подход позволяет избежать длительных циклов разработки, преждевременного вложения ресурсов и времени в неправильные решения. Благодаря частым проверкам и корректировкам, можно быстро идентифицировать недостатки и вносить необходимые изменения, минимизируя потери и риски.
- Адаптивный подход способствует повышению удовлетворенности заказчика. Регулярная поставка рабочих результатов и активное взаимодействие с заказчиком помогают строить доверие и улучшать понимание его потребностей. В результате, заказчик получает продукт, который более соответствует его ожиданиям и требованиям.
Недостатки
- Если требования проекта неясны или сильно изменчивы, адаптивный подход может быть сложным для применения. Недостаток четкой и стабильной спецификации может привести к неопределенности и затруднениям в планировании и выполнении работ.
- На ранних этапах проекта может быть сложно полностью представить, каким будет конечный продукт. Адаптивные методологии обычно предусматривают постепенное развитие и уточнение требований, что означает, что полное представление о продукте может появиться только по мере продвижения проекта.
- Адаптивный подход требует активного участия заказчика на протяжении всего процесса разработки. Если заказчик не готов или не в состоянии уделять достаточно времени и внимания проекту, это может замедлить процесс принятия решений и повлиять на итоговый результат.
- При постоянных изменениях требований и приоритетов проекта существует риск потери фокуса и смещения внимания на новые задачи. Это может замедлить разработку и повлечь за собой дополнительные затраты.
- Адаптивный подход не предоставляет детальных планов на всю продолжительность проекта. Это может затруднить управление ресурсами, бюджетом и сроками, особенно в больших проектах или в проектах с ограниченными ресурсами.
- При активном взаимодействии с заказчиком и постоянной адаптации к изменениям существует риск увлечения функциональностью и внесения излишних изменений в проект. Это может привести к увеличению затрат и ухудшению производительности команды разработчиков.
- Адаптивный подход требует высокой командной эффективности, самоорганизации и умения работать в гибкой среде. Если команда разработчиков не обладает достаточной экспертизой, опытом или способностью к сотрудничеству, это может негативно сказаться на качестве и результате работы.
- В некоторых отраслях и проектах, особенно связанных с жесткими правилами и регуляциями, адаптивный подход может быть ограничен или неприменим.
- В адаптивном подходе акцент смещается с долгосрочного планирования на краткосрочные итерации. Это может привести к потере некоторых преимуществ, связанных с предварительным планированием и управлением ресурсами. В некоторых случаях, особенно при работе с крупными и сложными проектами, более строгий план может быть необходим для эффективного управления.
- В адаптивном подходе коммуникация является ключевым фактором успеха. Если проектная команда или заказчик не обладают хорошими навыками коммуникации, это может привести к недопониманию, задержкам и ошибкам.
- Адаптивный подход может создать риск перенасыщения команды. Постоянные изменения и требования, требующие непрерывного внимания и работ, могут привести к излишней нагрузке на команду, что может снизить эффективность и качество работы.
Гибридный подход
Преимущества
- Гибридный подход позволяет комбинировать различные методологии и подходы в зависимости от конкретных требований и характеристик проекта. Это позволяет адаптироваться к изменениям и реагировать на новые требования или обстоятельства в процессе разработки.
- Гибридный подход обеспечивает более структурированное планирование и управление проектом, поскольку включает в себя элементы предиктивных методологий, которые обеспечивают определенную степень контроля и планирования.
- Гибридный подход позволяет управлять рисками более эффективно, поскольку включает в себя элементы адаптивных методологий, которые способствуют реагированию на риски и изменения в процессе разработки.
- Гибридный подход способствует улучшению коммуникации и взаимодействию между участниками проекта. Это достигается за счет включения элементов коллаборативных и итеративных методологий, которые активно вовлекают заинтересованные стороны и обеспечивают непрерывное общение.
- Гибридный подход позволяет оптимизировать использование ресурсов, так как позволяет выбирать наиболее подходящие методологии и подходы для конкретных этапов и задач проекта. Это помогает снизить издержки и повысить эффективность использования ресурсов.
- Гибридный подход учитывает разнообразие потребностей и требований различных заинтересованных сторон. Путем комбинирования различных методологий можно удовлетворить требования заказчика, учесть потребности команды разработчиков и других участников проекта.
- Гибридный подход позволяет достичь высокого качества в разработке проекта. Комбинирование различных методологий позволяет применять лучшие практики и подходы к управлению качеством, тестированию и обеспечению качества продукта.
- Гибридный подход позволяет достичь лучших результатов проекта. Путем выбора наиболее подходящих методологий и подходов для каждой стадии или задачи проекта, команда разработки может эффективно работать и достигать поставленных целей.
- Гибридный подход может способствовать ускорению времени доставки проекта. Комбинирование предиктивных и адаптивных элементов позволяет управлять временем разработки более эффективно и реагировать на изменения требований или сроков.
- Гибридный подход способствует улучшению командной работы. Включение элементов коллаборативных и итеративных методологий позволяет команде эффективно сотрудничать, обмениваться информацией и принимать совместные решения.
- Гибридный подход стимулирует инновации и творческое мышление. Комбинирование различных методологий позволяет внедрять новые идеи, экспериментировать и находить нестандартные решения, что способствует развитию инноваций в проекте.
Недостатки
- Гибридный подход требует тщательного анализа и понимания различных методологий, а также умения выбирать и комбинировать подходы, наиболее подходящие для конкретного проекта. Это может быть сложным для команды разработки, особенно если они не имеют достаточного опыта или экспертизы в различных методологиях.
- Гибридный подход требует более сложного управления и координации, поскольку команда разработки должна уметь справляться с различными подходами и методологиями в рамках проекта. Это может потребовать дополнительных усилий по планированию, контролю и коммуникации.
- Использование гибридного подхода может потребовать дополнительных затрат на обучение команды различным методологиям и подходам. Также может понадобиться время для адаптации и освоения новых процессов и практик, что может оказаться дорогостоящим.
- При комбинировании различных методологий в рамках гибридного подхода может возникать риск несогласованности и конфликтов. Различные подходы могут иметь разные требования и ожидания, что может привести к противоречиям и затруднениям в выполнении проекта.
- Хотя гибридный подход предлагает гибкость, он все же может ограничиваться некоторыми рамками, связанными с выбранными методологиями. Это может привести к потере некоторых преимуществ полностью адаптивного подхода или полностью предиктивного подхода.
- Гибридный подход может усложнить коммуникацию и взаимодействие в команде разработки и с заинтересованными сторонами.
- Гибридный подход требует широкого спектра знаний и опыта в различных методологиях. Если у команды разработки отсутствует достаточная экспертиза в выбранных подходах, это может привести к неэффективному использованию методологий и снижению качества работы.
- При комбинировании различных методологий в гибридном подходе может возникнуть сложность согласования и согласования между различными частями проекта.
- Гибридный подход может привнести дополнительные сложности в управлении изменениями. Поскольку различные методологии могут иметь разные подходы к изменениям, команда должна быть готова адаптироваться к изменениям во время проекта и эффективно управлять изменениями, чтобы минимизировать негативное влияние на процесс и результаты разработки.
- Использование гибридного подхода может сделать прогнозирование и планирование более сложными. Поскольку гибридный подход комбинирует различные подходы, предсказание продолжительности, объема работ и ресурсов может быть вызовом, особенно если проект включает неопределенные и изменчивые факторы.
- При комбинировании разных методологий в гибридном подходе есть риск потери ясности в отношении целей и приоритетов проекта.
Как видно, предиктивный, гибридный и адаптивный подходы имеют как преимущества, так и недостатки, поэтому выбор подходящей технологии должен быть основан на уникальных потребностях и особенностях конкретного проекта.
Как определиться с проектной технологией?
Вот несколько шагов, которые помогут вам выбрать подходящий подход для выполнения вашего IT-проекта:
- Определите требования проекта. Первым шагом является ясное определение требований вашего проекта. Разберитесь, что нужно достичь, какие функциональные и нефункциональные требования должны быть удовлетворены, а также какие есть проектные ограничения. Насколько хорошо требования к проекту и продукту поддаются определению, сбору и анализу в начале проекта.
- Оцените размер и сложность проекта. Чтобы понять, насколько важно иметь гибкость и адаптивность управления проектом и какая методология может лучше справиться с задачами проекта.
- Изучите доступные методологии. Изучите различные методологии и подходы к выполнению проектов. Понимание их основных принципов и применимости поможет вам выбрать наиболее подходящую.
- Учтите ограничения и ресурсы. Проанализируйте свои ограничения и ресурсы: бюджет, время, доступность и навыки членов команды. Некоторые методологии могут требовать больше времени и ресурсов, чем другие.
- Рассмотрите взаимодействие с заказчиком. Если взаимодействие с заказчиком и быстрые обратные связи важны для вашего проекта, то предпочтительнее гибкие методологии.
- Проконсультируйтесь с командой. Обсудите выбор методологии с вашей проектной командой. Их опыт и предпочтения также могут сыграть важную роль при выборе подходящей методологии.
- Адаптируйте методологию. Иногда необходимо адаптировать методологию под свои потребности. Например, можно комбинировать элементы различных методологий или внести изменения в выбранную методологию для лучшего соответствия требованиям проекта.
Заключение
Необходимо помнить, что выбор проектной технологии не является исключительным и неизменным. В процессе реализации проекта может возникнуть необходимость в переходе от одного подхода к другому или в комбинировании нескольких подходов. Важно оценивать и анализировать прогресс проекта, учитывать факторы изменений и принимать соответствующие меры для достижения поставленных задач.
В конечном счете, выбор подхода к реализации проекта должен основываться на анализе требований проекта, особенностях проектной команды, уровня неопределенности и гибкости, а также потенциальных изменений в ходе проекта. Необходимо принимать во внимание особенности отрасли, размер проекта, сроки, бюджет и степень вовлеченности заинтересованных сторон.
Критически важно, чтобы проектная команда была готова адаптироваться и принимать изменения в выбранной технологии в течение жизненного цикла проекта. Гибкость, коммуникация и постоянное обучение являются ключевыми элементами успешной реализации проекта вне зависимости от выбранного подхода.
В итоге, подход к реализации проекта должен быть направлен на достижение поставленных целей. Команда проекта должна постоянно оценивать и анализировать результаты и принимать решения, основываясь на текущих требованиях и условиях проекта.
Выбор подхода — это важный шаг на пути к успешной реализации проекта, а его осмысленный выбор поможет команде достичь желаемых результатов.
Если статья была для вас полезна, ставьте пальцы вверх и делитесь ею с коллегами.