Гибкие методологии программирования

Apr 27, 2006 19:45

Наиболее часто встречающуюся практику программирования можно охарактеризовать как "пишем и исправляем". Такой метод имеет ряд существенных недостатков - затяжной период тестирования и большая стоимость внесения изменений. Для их устранения был разработан ряд методологий, делающих процесс разработки программного обеспечения более прогнозируемым и эффективным.

Однако, эти методологии так и не получили большую популярность. Тому виной стал их бюрократизм - слишком много нужно было выполнять предписаний, что заметно замедляло темп работы. Такие методологии стали называть тяжеловесными.

В качестве альтернативы этим двум крайностям появились гибкие (agile) методологии. Им свойствены следующие подходы.

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

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

Наиболее известные гибкие методологии: Extreme Programming, семейство Crystal, Open Source, ASD, SCRUM, Feature Driven Development, Dynamic System Development Method.

Гибкие методологии имеет смысл применять в случае неясных требований к системе, наличия квалифицированных разработчиков и согласия на то заказчика. Если же количество разработчиков свыше 50 человек и заключен контракт с фиксированной стоимостью лучше применить тяжеловесную методологию.

Более подробно: Мартин Фаулер "Новые методологии программирования".

Бизнес

Previous post Next post
Up