2011-11-20: Agile и CMMI

< Блог:Максима Цепкова

Подготовка выступления к SQA Days и, особенно, обсуждение на форуме http://software-testing.ru моей статьи, помещенной в качестве анонса к докладу, вызвало пару мыслей про Agile, которыми хочу поделиться. Именно про agile - хотя само выступление про совмещение ролей аналитика и тестировщика, в я активно апеллирую к agile-процессу и это вызвало отдельную ветку обсуждений.

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

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

Мысль вторая. Я тут пересмотрел презентацию Джефа Сазерленда на SECR, и вспомнил вещь, на которую обратил внимание еще на конференции. Для Джефа развитие компании идет так: CMMI 1 → CMMI 5 → CMMI 5+SCRUM. Я обсудил это с коллегами, с их точки зрения CMMI5 и SCRUM - вещи слабо совместимые. На самом деле, тут вопрос оценки CMMI. CMMI 4 говорит о том, что в компании должна быть настроена оптимизация процессов на основе показателей. А CMMI 5 - что сам процесс оптимизации тоже должен оптимизироваться. Дальше вопрос - что именно мы вкладываем в понятие "оптимизация". Максималисткий подход - рассматривать оптимизацию как поиск оптимума (логично, правда), который еще должен быть достаточно быстрым - чтобы придти близко к оптимуму за то время, пока окружение можно считать квазистатичным.

А можно рассматривать это иначе, понимая под оптимизацией всего лишь процесс, направленный на улучшение чего либо. То есть некоторые регулярные мероприятия, в рамках которого формулируются шаги по улучшению некоторого процесса, которые потом воплощаются. И достаточно, если шаги будут в среднем правильными. И если оценивать так, то CMMI 4 в SCRUM есть - это ретроспектива. На которой, в числе прочего, следует обсуждать показатели работы команды - burndown (и другие показатели), придумывая меры по их исправлению, которые затем будут воплощены. А чтобы получился CMMI 5 - нужно еще ретро по ретре, и процесс обмена всем этим опытом в рамках компании (процесс обмена и для CMMI 4 нужен).

Естественно, так происходит не в любом SCRUM, нужно как минимум желание и усилия в этом направлении. И я не уверен, что во всех командах у нас в компании действительно есть оптимизация процесса на основе показателей - потому как идеи высказываются, а воплощение они получают не всегда. Хотя стремления - есть. Но, надо сказать, что слушая истории о конкретных командах от Джефа (и от Книберга тоже) - вполне допускаешь, что в конкретных компаниях, в них фигурирующих, SCRUM действительно означает CMMI 5.

[ Хронологический вид ]Комментарии

(нет элементов)

Войдите, чтобы комментировать.

Do you want to try some new features? By joining the beta, you will get access to experimental features, at the risk of encountering bugs and issues.

Ок Нет, спасибо