95
так и физически,— преимущественно желательно располагать группу в одной
большой комнате. Структура в группе – одноранговая, то есть существует
только профессиональный авторитет, но не административное деление.
Доказано, что самая продуктивная обстановка – умеренный шум большой
рабочей комнаты, тишина или музыкальное сопровождение дают худшие
результаты.
Все производственные вопросы решаются в самой группе, включая
используемые методы, инструменты или технологии — эти параметры решения
задачи не могут быть навязаны извне: как правило, профессионалы в
коллективе решают поставленные задачи оптимально. Крое того, каждый
разработчик самостоятельно выбирает подходящие задания, в зависимости от
потребности группы и собственных способностей.
Одной из самых качественных технологий программирования на сегодня
является парная технология, когда один программист вводит код, а другой при
этом смотрит на экран и по ходу корректирует его или задает вопросы
относительно реализации. Такая подстрочная критика кода, как показывает
практика, в несколько раз повышает качество начального кода, сводя
возможность ошибок в начальном коде к минимуму.
Второй принцип — принцип замены партнеров — означает, что пары
меняют партнеров один-два раза в течение дня, причем группы работают над
различными частями системы. Кажется, что такая метода не позволяет
сконцентрироваться на отдельной области — однако практика опровергает это.
Концентрация на одной области приводит к укоренению стиля, не всегда
оптимального, а отсутствие критики кода может привести "хакера" к тяжело
обнаружимым ошибкам. Постоянная смена области приложения, напротив,
повышает не только квалификацию в результате обмена опытом, но также и
мотивацию повышения собственного мастерства.
В обстановке групповой работы важное значение получает максимальная
простота и эффективность используемого кода.
Простота и эффективность используемого кода
Часто предоставленный сам себе разработчик решает использовать новую
технологию или инструмент, который, по его мнению, обещает
дополнительную производительность или выгоду. На самом деле это редко
оправдывается, а в атмосфере, когда ваш код завтра будет прочитан и
использован партнерами по команде, у вас просто не остается возможностей
для экспериментов за чужой счет. Фактически, все члены команды изначально
должны выбрать технологии, которыми владеют все или большинство членов
команды. Например, любой разработчик должен уметь программно
обрабатывать текстовые файлы, многие знают C++, Java, Perl, SQL и подобные
инструменты. Использование редких технологий и инструментов, например
сложных, особенно заказных RAD и т.п., может вызвать не только проблемы
понимания, но и впоследствии проблемы поддержки. Учитывайте, что освоение