Экстремальное программирование
Материал из PraxOS
Система организационных паттернов ("правил" и принципов их применения), использующаяся в организации работы небольшого коллектива программистов.
Подробнее о паттернах экстремального программирования (eXtreme Programming, XP) в первой версии (1999г.) можно прочесть в http://www.exprogramming.ru/XPRules/XPRules.html -- но это только первая версия правил, которая (в полном соответствии с принципами самого экстремального программирования -- менять его, если что-то не удовлетворяет, выпускать рано, выпускать версии) в. 2004г. была существенно переработана во второй версии (http://www.maxkir.com/sd/extreme_programming_2.html). Изменения существены: практика "планирующая игра" заменена четырьмя разными -- "рассказы", "еженедельный цикл", "ежеквартальный цикл" и "слабина"; практика "метафора" выкинута, и т.д. Также экстремальное программирование получило развитие в "промышленном экстремальном программировании" (т.е. приспособленном для работы в больших корпорациях).
Вот список практик "промышленного XP" (оригинал -- http://industrialxp.org)
- Бизнес-практики (Industrial)
- ОценкаГотовности (ReadinnessAssesment)
- НепрерывноеУправлениеРиском (ContinuousRiskManagement)
- ПолагатьПроект (ProjectChartering)
- СообществоПроекта (ProjectComunity)
- УправлениеПоТестам (Test-DrivenManagement)
- "Экстремальные" практики (eXtreme)
- СамоподдерживающийсяРитм (SustainablePace)
- Рассказывание (Storytelling)
- ПланирующаяИгра (PlanningGame)
- Тестории (Storytesting)
- ЧастыеРелизы (FrequentReleases)
- МалыеКоманды (SmallTeams)
- СидетьВместе (SittingTogether)
- НепрерывноеОбучение (ContinuousLearning)
- ПошаговаяПригодность (IterativeUsability)
- Программистские практики (Programming)
- ЭволюционныйДизайн (EvolutionaryDesign)
- Рефакторинг (Refactoring)
- РазработкаПоРассказамТестам (StoryTest-DrivenDevelopment)
- ДизайнПоПредметнойОбласти (DomainDrivenDesign)
- НепрерывнаяИнтеграция (ContinuousIntegration)
- Спаривание (Pairing)
- КоллективноеВладение (CollectiveOwnership)
- СтандартыКодирования (CodingStandard)
- Ретроспективы (Retrospectives)
Экстремальное программирование интересно тем, что именно на его примере отрабатывалось понимание того, как может быть устроено письменное представление организационных паттернов и коллективное их обсуждение, для целей такого коллективного обсуждения была создана первая в интернете wiki-система коллективного редактирования текстов.
В настоящий момент практики (паттерны) экстремального программирования входят в огромное число других методов, относящихся к расторопным (agile) методам и используются повсеместно -- часто без указания на то, что они пришли именно из экстремального программирования.
В экстремальном программировании можно особо выделить следующие праксиологические паттерны:
- ВсеПланыВнеГоловы -- планирование на карточках
- МаленькийШагПланирования -- итерации
- ОценкиПоПрошлойПроизводительности -- оценки работы и Скорость проекта
- Наставник -- "тренер"
- РолевыеПереговоры -- планирующая игра
- Проксимология -- обустройство помещения
- ВыпускайРано --
- ВыпускайВерсии -- частые релизы