Как отучить программиста колбасить (Прагматик 2012)
DESCRIPTION
Слайды с мастер-класса на конференции Прагматик 2012.TRANSCRIPT
Докладчик: Михаил Пайсон
1
Тема доклада:
КАК ОТУЧИТЬ ПРОГРАММИСТОВ КОЛБАСИТЬ: ПОВЫШАЕМ КАЧЕСТВО ПО
@Mikhail_Payson
1. План на сегодня
2
• Терминология
• Качество кода vs. скорость разработки
• «Метод трёх шагов» для улучшения качества кода
• Политика
• Инструменты улучшения качества кода в команде
@Mikhail_Payson
2. Что значит «Колбасить»?
3
@Mikhail_Payson
• Быстро писать некачественный код
• Решать симптомы, а не проблему
• Реализовать только «тепличные» кейсы
• Не тестировать
• Писать некачественный код
• «Дамп потока сознания»
• «Пластилиновая архитектура»
3. Качество кода vs. скорость разработки
4
@Mikhail_Payson
Низкая Высокая
Низ
кое
Вы
соко
е
Производительность
Качество
Тупим Колбасим
Умничаем Программируем
Эффективное
развитие
Бесконтрольное развитие Надо что-то
делать!
Не бывает!
Исправление
ситуации
Производительность упала!
3. Метод трёх шагов. Ненависть
5
@Mikhail_Payson
• Учим ненавидеть плохой код
• Мотивация (ирония, похвала, критика)
• Запрет произносить «костыль», «колбасить»
• Постоянное повторение, что «писать как попало
- очень и очень плохо»
• Еженедельный код-ревью
3. Метод трёх шагов. Страсть
6
@Mikhail_Payson
• Учим «умничать»
• Сроки вторичны
• Мини-семинары по паттернам проектирования
• Работа техлида с командой
• Ещё больший код ревью с упором на
архитектуру (сложно)
3. Метод трёх шагов. Здравомыслие
7
@Mikhail_Payson
• Учим думать перед тем, как писать, но пишем без
усложнений.
• Приходит со временем
• Вопросы «зачем так сложно»
• Постепенный ввод фактора сроков и скорости
4. Политика: аргументы
8
@Mikhail_Payson
• Цифры – потери на багфиксы в часах,
• Факты – недовольные заказчики (с цитатами)
• Сроки и проблемы: временна потеря
производительности, время на обучение
• Плюсы компании \ проекта: меньше багов, легче
поддержка, быстрее сдача, воодушевлённая
команда.
4. Политика: контраргументы
9
@Mikhail_Payson
• Мы зарабатываем деньги, а не учим людей
(рассказ про пилу, стратегическое инвестирование, но риски и
честно)
• Мы их научим они разбегутся
(вопрос единственный – нужны ли квалифицированные кадры?
Нанять нового дороже, чем выучить своего и поднять ему
зарплату)
• Но у нас же проект!
(мы его и так завалим, но в этом случае хоть с пользой для
компании, можно начать со следующего)
5. Инструменты
10
@Mikhail_Payson
• Code Review
• Проводим раз в неделю. Один смотрит код и готовит замечания (4
часа), потом все собираются и обсуждают
• Не переходим на личности!
• Семинары
• Проводим раз в неделю. Один готовит, все обсуждают
• Разбираем паттерны, технологии, guidelines и т.д.
• Обязательно приводим примеры из реальных проектов
Связаться с докладчиком можно по:
11
СПАСИБО ЗА ВНИМАНИЕ!Докладчик: Михаил Пайсон
Skype: mikhail.pieson
E-mail: [email protected]
Twitter: @Mikhail_Payson
@Mikhail_Payson