Pharus Статьи Методологии разработки программного обеспечения

8 (499) 391-2128 |

Методологии разработки программного обеспечения

Автор: А. Грянко

Дата публикации: 21 октября 2013 г.

Разработка программного обеспечения (software development) вне зависимости от сложности, структуры и задач, которые ему предстоит решать, имеет общие черты в методологии — в том, без чего любая программа не может быть создана и надёжно работать в дальнейшем. Методологии (по сути, модели создания ПО на заказ) описывают подход к решению индивидуальных задач компании-заказчика, ставят цели, которые необходимо достичь на пути к созданию нового программного продукта.

Разработка ПО на заказ: поэтапная, гибкая, спиральная или экстремальная

Создание программного обеспечения строится всего на нескольких сценариях:

  • Каскадная или поэтапная разработка (в некоторых источниках её называют «водопадной моделью») — процесс создания программного обеспечения представляет собой поток, последовательно проходящий фазы анализа, проектирования, реализации, тестирования, интеграции и поддержки. Так обычно строится работа над крупными проектами с длительным сроком внедрения.
  • Итеративная или инкрементная (эволюционная) модель приращения продукта позволяет параллельно выполнять ряд задач с непрерывным анализом результатов и корректировкой предыдущих этапов работы. Это более «скоростная» разработка для большого штата квалифицированных программистов.
  • Спиральная методика характеризуется прохождением проектом повторяющегося цикла в каждой фазе развития: планирование — реализация — проверка — оценка (англ. plan-do-check-act cycle). Так обычно создаются проекты, с окончательно не сформированным видением результата, либо требующие ультрасрочного внедрения по этапам.
  • Гибкая методология Agile-разработки — т.н. быстрая разработка без ущерба качеству, когда во главу угла ставится работающий продукт, а не его документация. Наиболее современный неформализованный подход к созданию ПО, в процессе которого реагирование на изменения ценятся выше строгого следования плану. Для молодых стремительно развивающихся проектов, которые с каждой итерацией программного обеспечения по сути готовы к его релизу.
  • Scrum-методика как «схватка вокруг мяча» хороша для небольших и срочных проектов, при этом планирование и управление списком требований к продукту напрямую зависит от прибыльности реализованной функциональности с минимизацией сопутствующей документации и отсеканием нефункциональных «фишек».
  • eXtreme Programming двигает идеи разработки через тестирование, непрерывной интеграции и тесного взаимодействия с заказчиком, высокой частоты небольших релизов, рефакторинга, простоты с одной стороны, следование стандартам кодирования с другой и т.п. Это подход к разработке ПО конвейерными методами с одной стороны и высокой индивидуализацией под конкретный запрос с другой — т.е. профессиональное создание больших объёмов ПО на аутсорсе, не для решения собственных задач.

Для специалистов по разработке программного обеспечения этот список можно продолжать далее (остались неупомянутыми методологии Lean, Kanban, ScrumBut и пр.), однако подобные тонкости процесса интересны скорее для узкоспециализированных конференций и общения профи-программистов, но никак не для заказчиков ПО для реальной работы.

Выбор методологий разработки программного обеспечения на заказ

По сути, заказчик может не погружаться в «кухню» создания программного обеспечения на заказ, сформулировав свои ожидания от конечного продукта в самом начале и предоставив квалифицированных сотрудников для тестирования программы на завершающих этапах. Однако далеко не всегда в самом начале есть чёткое понимание, что в результате нужно получить, а отсутствие возможности вносить коррективы по ходу разработки существенно снижает ценность продукта.

Если программное обеспечение, создание которого вы заказали на стороне, требуется для нового направления деятельности компании, или вы представляете собой стартап, требующий специализированного ПО, а в команде нет веб-разработчиков достаточной квалификации, заказ будет специфичным не только по сути, но и касаемо методологии разработки. Дело в том, что каскадная и эволюционная как наиболее распространённые и шаблонные методологии, вам попросту не подойдут. А исполнителей, на достаточном уровне владеющих методологиями Agile-разработки, Scrum-методиками, eXtreme Programming и предоставляющих своим заказчикам аргументированный их выбор, на рынке не так много.

Компания «Pharus», работая с проектами различной сложности, позволяет применять нелинейный подход даже к самым типовым задачам. Это означает, что помимо подробнейшим образом составленного ТЗ, те или иные аспекты будущего программного обеспечения могут совместно дорабатываться и утверждаться на разных этапах заказной разработки ПО — от прототипирования до тестирования.

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

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