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