Командное программирование
Эта статья нуждается в дополнительных цитатах для проверки . ( август 2023 г. ) |
В обеспечения разработке программного групповое программирование — это стратегия управления проектами для координации распределения задач в компьютерного программного обеспечения проектах разработки , которая предполагает назначение двух или более программистов для совместной работы над отдельной подзадачой в рамках более крупного проекта программирования. В целом, то, как этот термин используется сегодня, относится к методам, которые сейчас популярны в индустрии разработки программного обеспечения, когда несколько человек одновременно работают над одной и той же деятельностью; в этих системах программисты часто группируются парами на одной компьютерной рабочей станции , один наблюдает за другим, работающим над программным обеспечением, и через определенные промежутки времени чередуют роли.
Традиционные методы управления командой
[ редактировать ]Традиционная разработка программного обеспечения почти всегда предполагает участие нескольких программистов, работающих над отдельными частями компьютерной системы для любого проекта значительного масштаба и масштаба — метод разделения труда . Очевидно, неразумно представлять, что один программист может адекватно выполнить всю необходимую работу для сложной системы, работающей полностью самостоятельно, в приемлемые сроки; По мере того, как проекты развития становятся более сложными, специализированные знания приобретают первостепенное значение в таких аспектах, как системный анализ , обеспечение качества и технические проблемы, возникающие при использовании отдельных компонентов. Первоначально это был неформальный процесс, но с развитием коммерческой разработки программного обеспечения как жизнеспособной отрасли возникла необходимость в более индустриальном и систематическом подходе.
Системные методологии, ориентированные на бумажные материалы, изначально разработанные для реализации правительственных проектов, такие как метод структурированного системного анализа и проектирования (SSADM), назначали отдельных людей для выполнения отдельных задач и определяли роль проектировщиков как четко отделенную от роли программистов в Водопадная модель разработки программного обеспечения . Эта методология также четко разделяла каждую из отдельных стадий «жизненного цикла», через которые проходил проект разработки системы. Полученный в результате «бумажный след» проекта разработки системы мог занять так много времени, что зачастую части аналитической документации — а иногда и вся ее — устарели к моменту фактической разработки, что делало их более чем бесполезными.
Современные тенденции: несколько программистов для одной подзадачи
[ редактировать ]При использовании этих старых методов возникали трудности, например, затраты, выходящие из-под контроля по мере роста систем, а также несоответствие графиков срокам выхода на рынок. Эти проблемы породили такие методы, как парное программирование , групповое программирование (также известное как ансамблевое программирование ), а также новые структуры жизненного цикла систем, такие как спираль Бема . Спецификация этих новых подходов началась в середине 1980-х годов и продолжается по сей день. Многие из этих стратегий предполагают совместную работу нескольких программистов над одним и тем же фрагментом исходного кода , а не индивидуальную ответственность за отдельные задачи. Например, при «парном программировании» ответственность за полученный продукт поровну распределяется между двумя программистами, которые вместе работают над порученной им подзадачой. Преимущества этого подхода включают недостатки в знаниях одного программиста, которые должны быть компенсированы способностями в определенных областях другого программиста; кроме того, считается, что совместная ответственность увеличивает стимулы для соблюдения сроков проекта и целевых показателей качества.
Этот метод часто используется в новых методологиях программирования, ориентированных на методы объектно-ориентированного программирования, таких как Rational Unified Process и Extreme Programming (аббревиатура «XP»), часто в сочетании с методами проектной документации, такими как Unified Modeling Language (UML). ). В объектно-ориентированных языках программирования функциональность программного обеспечения образует модульные дискретные единицы (называемые классами для функциональных элементов и пакетами для групп взаимосвязанных классов, выполняющих определенную функцию); два наиболее известных из них — C++ и Java . Это хорошо подходит для разделения программных проектов на подгруппы, хотя по-прежнему часто возникают проблемы с интеграцией конечного продукта после завершения каждой подзадачи.
Программирование мобов
[ редактировать ]Программирование мафии (иногда неофициально называемое моббингом , ансамблевым программированием или программированием отрядов). [1] ) — это подход к разработке программного обеспечения, при котором вся команда работает над одним и тем же, в одно и то же время, в одном пространстве и на одном компьютере. Это похоже на парное программирование , когда два человека сидят за одним компьютером и одновременно работают над одним и тем же кодом. При массовом программировании совместная работа распространяется на всех членов команды, при этом для написания кода и ввода его в базу кода по-прежнему используется один компьютер. [2]
Основная концепция моб-программирования проста: вся команда одновременно работает над одной задачей. То есть: одна команда – одна (активная) клавиатура – один экран (конечно, проектор). [3]
— Маркус Хаммарберг, Программирование мафии – Полная команда, полный газ
Он основан на принципах бережливого производства , экстремального программирования и бережливой разработки программного обеспечения . Первое использование фразы «мобовое программирование» было сделано в «Перспективах экстремального программирования » . [4]
Помимо написания программного обеспечения, группа программистов может работать вместе над решением других типичных задач разработки программного обеспечения. Некоторые примеры включают: определение пользовательских историй или требований, проектирование, тестирование , развертывание программного обеспечения и работу с экспертами в данной области. Почти вся работа выполняется на рабочих встречах или семинарах, где все люди, участвующие в создании программного обеспечения, считаются членами команды, включая заказчика и бизнес-экспертов. [5] Мобильное программирование также работает для распределенных команд в одном виртуальном пространстве с использованием технологии совместного использования экрана. [6]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Эдвард Сайкс (Хереч); Раджпал Сингх (2012). «Просветительные беседы ACCU 2012: программирование отрядов» (PDF) . Accu2012 Молниеносные переговоры .
- ^ Зюилл, Вуди (2014). «Мобильное программирование: подход всей команды» . Отчеты об опыте конференции Agile2014 : 11.
- ^ Хаммарберг, Маркус. «Программирование мафии – полная команда, полный газ» . КодБеттер . КодБеттер . Проверено 9 сентября 2014 г.
- ^ Моисей Хохман; Эндрю Слокам (2002). «Глава 28. Мобовое программирование и переход на XP». Экстремальные перспективы программирования . Аддисон-Уэсли.
- ^ Нигри, Жюльен. «Мафиозное программирование: презентация» . Соат (на французском языке). Соут . Проверено 9 сентября 2014 г.
- ^ Харрер, Саймон; Господи, Йохен; Хубер, Мартин. «Удаленное программирование мобов» . Проверено 29 апреля 2019 г.