Room8: Внедрение практик code review как важная составляющая...

Post on 09-May-2015

303 views 0 download

description

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

transcript

Сode reviews as an important component of the successful mobile product

Nick Sergeev, CTO @ Room 8 Studio

Input

Сжатые сроки (deadly deadlines)

Факторы свойственные [почти] любому проекту:

Input

Сжатые сроки (deadly deadlines)Постоянные изменения требований (change requests every day)

Факторы свойственные [почти] любому проекту:

Input

Сжатые сроки (deadly deadlines)Постоянные изменения требований (change requests every day)Разный уровень девелоперов в команде (кадровая проблема)

Факторы свойственные [почти] любому проекту:

The issues we want to solve

Одинаковая осведомленность девелоперов об изменениях/нововведениях в разных частях проекта (knowledge/practices sharing)

The issues we want to solve

Одинаковая осведомленность девелоперов об изменениях/нововведениях в разных частях проекта (knowledge/practices sharing)Быстрое вхождение в проектную команду девелоперов разного уровня

The issues we want to solve

Одинаковая осведомленность девелоперов об изменениях/нововведениях в разных частях проекта (knowledge/practices sharing)Быстрое вхождение в проектную команду девелоперов разного уровняBad practices sharing/rapid problem solving

Code review types

Team lead code review

Code review types

Team lead code reviewXP elements

Code review types

Team lead code reviewXP elementsTeam code review

Code review types

Team lead code reviewXP elementsTeam code review

Team Code Review Format

Митинг длиной до 1 часаВремя проведения - середина дня - когда важные дела уже сделаны и необходим перерыв Частота проведения - 1 раз в 2 спринтаУчаствует вся командаПриглашаем наиболее опытных людей из других командКаждый девелопер представляет реализованные им фичи, команда обсуждает реализацию1 человек ведет протокол, он содержит информацию о найденных проблемах и хороших решенияхПротокол размещается во внутренней базе знаний (confluence)Каждый девелопер может вести собственный чек-листНа одном из последующих planning meetings при необходимости выделяется время на работы по исправлению

Additional points

Что делать если объем кода слишком большой? Ревьюим только самый важный функционал, core features Заставляем себя комментировать код :)

Additional points

Что делать если объем кода слишком большой? Ревьюим только самый важный функционал, core features Заставляем себя комментировать код :)

Цель найти виноватого - второстепенна, гораздо более важно найти проблему

What do we got?

Все знают все

What do we got?

Все знают все Ошибки разного рода выявляются на ранних этапах

What do we got?

Все знают все Ошибки разного рода выявляются на ранних этапах Ego effect

What do we got?

Все знают все Ошибки разного рода выявляются на ранних этапах Ego effect It’s fun because it’s social

Last thoughts

Keep it lightweight! [Не перегружайте деталями участников, не заставляйте их сразу писать громоздкие отчеты, сам процесс должен быть максимально простым]

Внедряя любой процесс или практику надо помнить следующие вещи:

Last thoughts

Keep it lightweight! [Не перегружайте деталями участников, не заставляйте их сразу писать громоздкие отчеты, сам процесс должен быть максимально простым]

Внедряя любой процесс или практику надо помнить следующие вещи:

Don’t micro manage! [Не заставляйте людей проверять каждую запятую, не заставляйте их следовать по шагам инструкции, которую вы составили или тому, что у вас в голове - позвольте им адаптироваться или адаптировать процесс]

Last thoughts

Keep it lightweight! [Не перегружайте деталями участников, не заставляйте их сразу писать громоздкие отчеты, сам процесс должен быть максимально простым]

Внедряя любой процесс или практику надо помнить следующие вещи:

Don’t force it! [Никогда не ставьте жесткие сроки при внедрении новых практик, люди всегда сопротивляются новому - дайте им почувствовать преимущества самим]

Don’t micro manage! [Не заставляйте людей проверять каждую запятую, не заставляйте их следовать по шагам инструкции, которую вы составили или тому, что у вас в голове - позвольте им адаптироваться или адаптировать процесс]

Thanks! :)

@nick_sergeev

www.room8studio.com