Тема доклада:
  КАК ОТУЧИТЬ ПРОГРАММИСТОВ
  КОЛБАСИТЬ: ПОВЫШАЕМ
  КАЧЕСТВО ПО

  Докладчик: Михаил   Пайсон

                               1
@Mikhail_Payson
1. План   на сегодня

   • Терминология
   • Качество кода vs. скорость разработки
   • «Метод трѐх шагов» для улучшения качества кода
   • Политика
   • Инструменты улучшения качества кода в команде



                                                      2
@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. Инструменты

   • Code Review
   • Проводим раз в неделю. Один смотрит код и готовит замечания (4
   часа), потом все собираются и обсуждают
   • Не переходим на личности!

   • Семинары
   • Проводим раз в неделю. Один готовит, все обсуждают
   • Разбираем паттерны, технологии, guidelines и т.д.
   • Обязательно приводим примеры из реальных проектов
                                                                      10
@Mikhail_Payson
СПАСИБО ЗА ВНИМАНИЕ!
    Докладчик: Михаил       Пайсон
    Связаться с докладчиком можно по:

    Twitter: @Mikhail_Payson
    E-mail: mikhail@payson.ru
    Skype: mikhail.pieson



                                        11
@Mikhail_Payson

Как отучить программиста колбасить (Прагматик 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