Моя магистерская работа - это посмотреть, как применять гибкую работу.
Существует очень много корпоративных продаж гибких - множество консультантов по управлению, продающих свой бренд как "лучший".
Мне неинтересно, XP, Scrum, Crystal Clear, Agile-CMMI, Six Sigma или любой другой бренд/вариант лучше всего. Меня интересуют, какие реальные, активные разработчики (т.е. Вы, ребята) действительно применимы как гибкие.
То, что я исследовал, - это то, как адаптироваться к различным организационным требованиям.
Из исследования того, как разные организации применяют гибкость, я разработал следующие рекомендации - рецепт того, какие гибкие вариации следует применять в ситуациях:
- Более крупные и более распределенные или более гибкие команды нуждаются в более строгих стандартах кодирования и тестирования, небольшие команды могут (и должны) использовать меньше.
- Документация по процессам должна быть минимальной, текущей и текущей.
- Подробные статистические контрольные индикаторы - лишние накладные расходы: раннее освобождение неполного программного обеспечения является лучшим показателем прогресса.
- В идеале разработчики должны быть близки к клиенту без специальных промежуточных ролей. Дополнительные роли следует использовать только в том случае, если клиенты специализируются таким образом, чтобы разработчики не переставали быть пользователями.
- Итерации должны быть гибкими, если только это не способствует координации выпусков с другими отделами или другими процессами.
- Разработчики должны иметь возможность легко и регулярно общаться, но встречи должны быть нечастыми (ежемесячно и еженедельно, а не ежедневно).
- Программирование пар должно использоваться только для учебных и исследовательских задач.
- Эти рекомендации являются лишь отправной точкой: для дальнейшего адаптации адаптивного варианта к конкретным обстоятельствам следует использовать непрерывное улучшение.
Эти факторы меняются при применении в организации с существующим традиционным (т.е. BDUF или waterfall), где гибкие команды должны либо сосуществовать, либо адаптироваться из команд с использованием несовместимых методов:
- Документация процесса со знаком и структурированными шагами поможет другим командам отслеживать проект.
- Статистические показатели (например, скорость) могут помочь успокоить непротиворечивые команды, что процесс находится под контролем.
- Исправленные итерации помогут координировать работу между командами.
Эти дополнительные рекомендации помогут гибко сосуществуть с традиционными моделями, но они обеспечивают дополнительные накладные расходы и ограничения.
Я хочу знать, что вы - люди, которые пишут программное обеспечение, а не гибкие консультанты, - думают об этой структуре.
Как вы думаете, насколько точны? Как вы думаете, что неправильно? Что бы вы изменили? Что я пропустил?
Самое главное: почему?
Я добавил щедрость к этому, чтобы предложить дополнительный стимул ответить на вопрос, который довольно длинный. Щедрость пойдет к тому, кто получит наибольшее количество голосов от сообщества SO - я понимаю, что нет единого правильного ответа, но меня интересует то, что ближе всего к консенсусу сообщества.