38
Психология Code Review или что делать, если в вашей команде есть люди, которые "пишут код без багов" Алексей Резчиков 2011

Code review psyhology

Embed Size (px)

DESCRIPTION

My XPDays presentation

Citation preview

Page 1: Code review psyhology

Психология Code Reviewили 

что делать, если в вашей команде есть люди, которые "пишут код без багов"

Алексей Резчиков 2011

Page 2: Code review psyhology

Обо мне

10 лет программирую за деньги

4 года тим лид

Много шишек

Page 3: Code review psyhology

Просьба к аудитории

Задавайте вопросы!

Page 4: Code review psyhology

О чем я НЕ буду говорить сегодня

что такое плохой код

что такое хороший код

как писать хороший код

как поставлять качественный продукт

почему надо проводить Code Review

 

Page 5: Code review psyhology

О чем мы сегодня поговорим

Проблемы связанные с CodeReview

Практические рекомендаций как их

преодолеть

Истории из реальной жизни

 

Page 6: Code review psyhology

Что такое Code Review?

Code review is systematic examination (often as peer review) of computer source code. It is intended to find and fix mistakes overlooked in the initial development phase, improving both the overall quality of software and the developers' skills. Reviews are done in various forms such as pair programming, informal walkthroughs, and formal inspections.(Wikipedia)

Page 7: Code review psyhology

Проблема №1

Внедрение

Page 8: Code review psyhology

вводные совещания

Шаг №1

Page 9: Code review psyhology

Шаг №2

Page 10: Code review psyhology
Page 11: Code review psyhology

Шаг №3

Стандарты кодирования

Правила именования

Стратегия развития проекта

Page 12: Code review psyhology

Шаг №4

принятие

Page 13: Code review psyhology

Совместное владение кодом

Шаг №5

Page 14: Code review psyhology

Шаг №6

Code Review

TestDeploy

Implementation

Page 15: Code review psyhology

Проблема №2

Поддержание

Page 16: Code review psyhology

Автоматизируйте

Redmine

Page 17: Code review psyhology

Инструменты

gerritGerrit Code Review

Page 18: Code review psyhology

Их очень много

Выбор за вами

Будьте гибкими

Подходы к организации

Page 19: Code review psyhology

Определяем понятия

Разделяйте Code Review и Solution Review

Page 20: Code review psyhology

Не пишите код!!!

Page 21: Code review psyhology

Немного практики

Page 22: Code review psyhology
Page 23: Code review psyhology

Ситуация №1

Я пишу код без багов

Page 24: Code review psyhology

Чем плохо?

Совместное владение кодом не работает

Подрывает командную работу

Проблемы с тестированием

Page 25: Code review psyhology

Что делать?

Понять причину

Объяснить что это миф

«Вернуть в семью»

Page 26: Code review psyhology
Page 27: Code review psyhology

Ситуация №2

Код должен быть среднего качества или я отрефакторю потом 

Page 28: Code review psyhology

Чем плохо?

Падение дисциплины

Принцип разбитого окна

Page 29: Code review psyhology

Что можно сделать?

Показать что не бывает «потом»

Бывает или хорошо или плохо

Page 30: Code review psyhology
Page 31: Code review psyhology

Ситуация №3

Тут надо все отрефакторить!

Page 32: Code review psyhology

Чем плохо?

Преждевременная оптимизация

Избыточная сложность

Page 33: Code review psyhology

Что можно сделать?

Примеры преждевременной оптимизации

Избыточная сложность и принципы KISS иYAGNI

То, что просто – легко тестируется

Page 34: Code review psyhology

Ситуация №4

"Тимлид не умеет писать транзакции"

Page 35: Code review psyhology

Чем плохо?

Хамство

Нарушение субординации

Плохой прецедент для командной работы

Page 36: Code review psyhology

Что можно сделать?

«Хирургическое вмешательство»

Авторитет и субординация

Арбитраж

Page 37: Code review psyhology

Общие советы

Общие правила на видном месте,

понятные всем, с которыми все согласны

Оценивайте код, а не человека

Оперируйте фактами, а не суждениями

Старайтесь быть предельно точными

Четкий и прозрачный арбитраж

Page 38: Code review psyhology

Вопросы

http://mcgray.com.ua

[email protected]

@twincengray