fbpx
Кроссфункциональность – что же это такое?

Я слышал очень много нареканий в сторону Agile подходов по поводу стремления к кроссфункциональности в командах. Обычно в критических материалах приводятся достаточно идиотические примеры. Вот парочка из них:

кроссфункциональность

  • “Ага! Давайте задействуем уборщицу! Она будет у нас заниматься базами данных по совместительству!”
  • “Ну и как, скажите мне пожалуйста, тестировщик сможет заменить разработчика? Он же не умеет программировать!”
  • “Ну-ну! Интересно что натворят junior разработчики в базе данных…”

Я расскажу о своем взгляде на эту проблему. Каждый из нас обладает определенным рядом навыков и опытом их применения. В зависимости от этих навыков мы можем делать различную работу с разным уровнем эффективности. Для меня кроссфункциональная команда характеризуется прежде всего возможностью членов команды делать некоторую часть работы вне своей основной зоны компетентности. Не факт, что эффективно. Не факт, что супер-качественно. Но может. Я даже не пытаюсь добиться полной замены других членов команды. Зачастую это просто невозможно. И я тоже не верю в то, что каждый тестировщик может писать код достаточного качества напрямую в production. 😉 Но любая работа состоит из частей. И не все части одинаково важны и требуют мега-навыков.

Приведу пару примеров. Работа тестировщика-автоматизатора может быть поделена на следующие части (грубое деление): продумывание сценариев, написание логики сценариев, сбор данных, реализация прослойки доступа тестов к тестируемому приложению. Все эти активности могут быть реализованы и другими членами команды, но каждая с разной эффективностью и качеством. В данном примере все, кроме продумывания сценариев, разработчик может сделать ничуть не хуже тестировщика (скажу “чуть хуже”, чтобы тестировщики не обиделись).

Работа HTML верстальщика также состоит из нескольких частей (снова грубое деление): верстка базовой версии HTML страницы, прикручивание основных стилей, хаки и правки под разные браузеры. И снова та же история. Только последняя активность требует критических навыков. Первые две активности достаточно адекватно может сделать и веб-разработик (в моем понимании не только может, но даже обязан уметь их делать).

Еще один мифический персонаж – DBA. У него вообще огромное число возможных активностей (и опять я груб): раздача прав на базы, создание схем, тюнинг запросов, модификация и миграция данных и т.д. Большая часть из них относятся к административной работе и может быть автоматизирована. Или выполнена разработчиком с последующим ревью DBA.

Но зачем все это нужно? Я вижу 3 цели у кроссфункциональности в моем понимании этого термина:

  • Возможность балансировать нагрузку между членами команды, чтобы избежать простоев и затыков в работе
  • Возможность частично заменить члена команды, который ушел в отпуск или банально заболел, и не останавливать процесс разработки
  • Дать возможность членам команды сменять на некоторое время сферу деятельности, что стимулирует профессиональное развитие и делает работу разнообразнее

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

Обсуждение (3)

Да, классный инструмент. Читал про него. Спасибо! Зато подписался в RSS на твой блог. 😉

Спасибо за статью, нужная тема, хочу также поделиться конкретным инструментом:
http://bit.ly/ty7mHd

Николай, частично согласен с Вашими рассуждениями, хотелось бы поделиться своими по этому поводу:
кроссфункциональность в большинстве случаев почему-то трактуется как “каждый член команды умеет все”, но это, на мой взгляд, в корне ошибочное мнение. Кроссфункциональность команды – это именно кроссфункциональность команды, а не каждого из ее членов. Есть тестировщики, юзабилисты и верстальщики, разработчики. Смысл кроссфункциональной команды – это именно решение любой задачи своими силами (возможно с привлечением Subject Matter Experts), без других команд. Ведь именно команда берет на себя обязательства реализовать набор историй за спринт, и она не должна зависеть от других команд в течение спринта.
А дальше в ход идет самоорганизация. Утопично, но в идеале члены команды должны сами договориться, кто кого подменяет в какой области в случае форс-мажора. Более реалистично: формировать команду с полным либо частичным дублированием ключевых членов команды (однако на этапе “storming” может возникнуть больше проблем, чем в первом случае).

Leave a Reply

Your email address will not be published. Required fields are marked *

Pkv Games BandarQQ Online Terbaik Dengan Deposit Super Modern permainan paling populer di situs poker online terbaik di indonesia di situs bukaqq Poker Online Aman dan Terpercaya slot online