В разработке программного обеспечения гибкие (иногда называемые Agile ) практики [1] включают в себя выявление требований и улучшение решений посредством совместных усилий самоорганизующихся и кросс-функциональных команд со своими заказчиками / конечными пользователями , [2] адаптивные планирование, эволюционное развитие, ранняя поставка, постоянное улучшение и гибкая реакция на изменения требований, возможностей и понимания проблем, которые необходимо решить. [3] [4]
Эти ценности и принципы, популяризированные в Манифесте гибкой разработки программного обеспечения 2001 года [5] , были получены из широкого спектра сред разработки программного обеспечения , включая Scrum и Kanban , и лежат в их основе . [6] [7]
Хотя существует множество неподтвержденных данных о том , что внедрение гибких практик и ценностей повышает эффективность специалистов по программному обеспечению, команд и организаций, эмпирические данные неоднозначны и их трудно найти. [8] [9] [10]
Итеративные и инкрементные методы разработки программного обеспечения можно проследить еще в 1957 году [11] , а эволюционное управление проектами [12] [13] и адаптивная разработка программного обеспечения [14] появились в начале 1970-х годов. [15]
В течение 1990-х годов ряд облегченных методов разработки программного обеспечения развился в ответ на преобладание тяжеловесных методов (часто называемых в совокупности водопадом ), которые критики описывали как чрезмерно регулируемые, планируемые и управляемые на микроуровне . [16] Эти упрощенные методы включали: быструю разработку приложений (RAD) с 1991 г.; [17] [18] единый процесс ( UP) и метод разработки динамических систем (DSDM), оба с 1994 года; Скрам , с 1995 года; Кристально чистое и экстремальное программирование (XP), оба с 1996 года; иразработка, управляемая функциями (FDD), с 1997 года. Хотя все они возникли до публикации Манифеста Agile , теперь они вместе называются методами гибкой разработки программного обеспечения. [7]
Уже с 1991 года аналогичные изменения произошли в производстве [19] [20] и управленческом мышлении [21] , основанном на бережливом управлении .