SlideShare a Scribd company logo
Еще раз про качество
Рыжков Евгений, 30.08.2016
специально для Deep Refactoring
1. Отказ от ответствености
● Я работал/работаю в крупных аутсорсинговых
сервисных конторах (это не продуктовые конторы и не
интеграторы!).
● Это исключительно мой взгляд на сложившийся
порядок вещей.
2. Раскрою карты сразу
Качественный софт делать дорого (с точки
зрения исполнителя и заказчика) и скучно (с
точки зрения молодых, талантливых и
амбициозных).
4. Что такое качественный софт?
● Все зависит от входных требований: для разных заказчиков один и тот
же продукт будет как приемлемым, так и неприемлемым.
● Мало договориться о "качестве" с заказчиком до начала работ. Надо
построить процесс так, чтобы было видно, насколько далеко продукт от
“качественного”.
● Качество - ничто. Управление качеством - все.
● Качественный софт - это софт, качеством которого можно явно
управлять в процессе создания.
5. Управление - это информация
● Чтобы чем-то управлять руководителю надо получать информацию.
● Любой руководитель - это центр сбора информации.
● Информация не берется из ниоткуда: ее создают люди.
● На основании этой информации рассчитываются различные метрики,
создаются отчеты, формируются бюджеты и т.п.
● Несохраненная информация пропадает и не может участвовать в
управлении.
● Пример: учет трудозатрат (ежедневно, еженедельно, ежемесячно,
никогда)
6. Почему дорого и скучно?
● Попробуем разобрать один из элементов проектной деятельности с
точки зрения заказчика, начальников программистов и самих
программистов.
● За основу возьмем внутренние процессы одной достаточно крупной
конторы...
7. Управляем качеством кода
● Варианты: статический анализ (расчет метрик и анализ исходников,
динамический анализ (запуск кода - тестирование).
● Один из методов статического анализа: code review.
● Вопрос к аудитории: как проводится code review?
8. Что за процесс Review?
● Цель процесса: гарантировать соответствие промежуточных результатов требуемому уровню качества.
● У процесса есть модератор, который отвечает за весь процесс.
● Модератор:
○ определяет цель конкретного review.
○ определяет, кто должен участвовать в процессе.
○ находит того, кто будет делать review (если еще нет назначения).
○ обеспечивает доступность объектов для review (исходники, документы и т.п.) для участников.
○ проверяет актуальность документов, обеспечивающих процесс review.
○ назначает дату и время сессии, оповещает всех участников.
○ назначает секретаря для сессии
○ обеспечивает документирование и классификацию результатов.
○ проверяет наличие протокола сессии с подписями участников.
● И, конечно, протокол должен быть разослан всем и помещен в “систему документоборота” проекта.
● Вопрос к аудитории: а какие типы code review вы знаете?
9. Примеры типов code review
● Informal review (выполняется на ходу, по мере того, как пишется код)
● Walkthrough (автор кода презентует результат непосредственно на
сессии)
● Technical review (рецензент проводит анализ кода до сессии на основе
только своего опыта; результаты обсуждаются на сессии)
● Inspection (рецензент проводит анализ кода до сессии, используя
согласованные checklists; результаты обсуждаются на сессии)
10. Сколько же это стоит?!
● Трудозатраты на создание регламентирующих документов и
поддержание их в актуальном состоянии
● Трудозатраты на инспекцию кода до сессии
● Трудозатраты на проведение сессии (сколько там человеко-часов если
сессия открыта для посещения всеми?)
● Трудозатраты на оформление результатов сессии, создание дефектов и
отслеживание их закрытия
11. А когда же кодить?!
● Надо быть в курсе регламентирующих документов (как называются, где
лежат, прочитать последнюю версию)
● Надо кодить с учетом checklists
● Надо кодить с учетом стандартов
● Надо уметь рецензировать чужой код
● Надо уметь обсуждать технические проблемы
● Надо аккуратно вести отчетность о проделанной работы
12. Имеем на выходе
● Для заказчика трудозатраты возрастают
● Для руководства бонусы снижаются
● Для молодых, талантливых и амбициозных программистов жизнь
проходит мимо
● И еще один момент: менеджмент не всегда может правильно оценить
реальные трудозатраты с учетом возможности управления качеством
продукта.
● На выходе: писать софт качественно - очень дорого. Мало кто может
себе это позволить.
У меня все
Вопросы есть?

More Related Content

What's hot

Юлия Викторова; Александр Тарасов. DevOps без булшита.
Юлия Викторова; Александр Тарасов. DevOps без булшита.Юлия Викторова; Александр Тарасов. DevOps без булшита.
Юлия Викторова; Александр Тарасов. DevOps без булшита.
ScrumTrek
 
Развертывание функции качества (метод QFD)
Развертывание функции качества (метод QFD)Развертывание функции качества (метод QFD)
Развертывание функции качества (метод QFD)
Евгений Пикулев
 
Контроль над распределенной командой
Контроль над распределенной командойКонтроль над распределенной командой
Контроль над распределенной командой
ISS Art, LLC
 
Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за с...
Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за с...Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за с...
Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за с...
Tech Talks @NSU
 
Модуль 2: Лекция 9-10. Обзор методологий, фреймворков
Модуль 2: Лекция 9-10.  Обзор методологий, фреймворковМодуль 2: Лекция 9-10.  Обзор методологий, фреймворков
Модуль 2: Лекция 9-10. Обзор методологий, фреймворков
Yana Brodetski
 
Эффективное взаимодействие тестировщика и аналитика
Эффективное взаимодействие тестировщика и аналитикаЭффективное взаимодействие тестировщика и аналитика
Эффективное взаимодействие тестировщика и аналитика
SQALab
 
Антон Душутин, Госзаказчик и исполнитель - коллеги или враги
Антон Душутин, Госзаказчик и исполнитель - коллеги или врагиАнтон Душутин, Госзаказчик и исполнитель - коллеги или враги
Антон Душутин, Госзаказчик и исполнитель - коллеги или враги
ScrumTrek
 
Scino.Школа IT-менеджмента. Занятие 2. Управление проектами. Формирование ком...
Scino.Школа IT-менеджмента. Занятие 2. Управление проектами. Формирование ком...Scino.Школа IT-менеджмента. Занятие 2. Управление проектами. Формирование ком...
Scino.Школа IT-менеджмента. Занятие 2. Управление проектами. Формирование ком...
SCINO
 
Room8: Внедрение практик code review как важная составляющая успеха мобильног...
Room8: Внедрение практик code review как важная составляющая успеха мобильног...Room8: Внедрение практик code review как важная составляющая успеха мобильног...
Room8: Внедрение практик code review как важная составляющая успеха мобильног...
DevGAMM Conference
 
Михаил Павлов - is a tester responsible for quality
Михаил Павлов - is a tester responsible for qualityМихаил Павлов - is a tester responsible for quality
Михаил Павлов - is a tester responsible for qualityAlexei Lupan
 
Тонкие системные технологии
Тонкие системные технологииТонкие системные технологии
Тонкие системные технологии
Vladislav Troshin
 
Иван Кожин «Saritasa Tools или ещё один подход к архитектуре приложения»
Иван Кожин «Saritasa Tools или ещё один подход к архитектуре приложения»Иван Кожин «Saritasa Tools или ещё один подход к архитектуре приложения»
Иван Кожин «Saritasa Tools или ещё один подход к архитектуре приложения»
SpbDotNet Community
 
CodeFest 2013. Сурова И. — Аналитик — инструкция по применению для менеджеров...
CodeFest 2013. Сурова И. — Аналитик — инструкция по применению для менеджеров...CodeFest 2013. Сурова И. — Аналитик — инструкция по применению для менеджеров...
CodeFest 2013. Сурова И. — Аналитик — инструкция по применению для менеджеров...CodeFest
 
Lection 23-24. Use Cases+ User Stories
Lection 23-24. Use Cases+ User StoriesLection 23-24. Use Cases+ User Stories
Lection 23-24. Use Cases+ User Stories
Yana Brodetski
 
Алексей Лустин. Непрерывная проверка качества кода.
Алексей Лустин. Непрерывная проверка качества кода.Алексей Лустин. Непрерывная проверка качества кода.
Алексей Лустин. Непрерывная проверка качества кода.
ScrumTrek
 
Новый процесс тестирования на "старом" проекте
Новый процесс тестирования на "старом" проектеНовый процесс тестирования на "старом" проекте
Новый процесс тестирования на "старом" проекте
SQALab
 
C# Web. Занятие 14.
C# Web. Занятие 14.C# Web. Занятие 14.
C# Web. Занятие 14.
Igor Shkulipa
 
проектная игра Pm pro et 140813
проектная игра Pm pro et 140813проектная игра Pm pro et 140813
проектная игра Pm pro et 140813Evgeny Tyrtyshny
 
Асхат Уразбаев, А как у них? Agile в государственных проектах других стран
Асхат Уразбаев, А как у них? Agile в государственных проектах других странАсхат Уразбаев, А как у них? Agile в государственных проектах других стран
Асхат Уразбаев, А как у них? Agile в государственных проектах других стран
ScrumTrek
 

What's hot (20)

Юлия Викторова; Александр Тарасов. DevOps без булшита.
Юлия Викторова; Александр Тарасов. DevOps без булшита.Юлия Викторова; Александр Тарасов. DevOps без булшита.
Юлия Викторова; Александр Тарасов. DevOps без булшита.
 
Развертывание функции качества (метод QFD)
Развертывание функции качества (метод QFD)Развертывание функции качества (метод QFD)
Развертывание функции качества (метод QFD)
 
Контроль над распределенной командой
Контроль над распределенной командойКонтроль над распределенной командой
Контроль над распределенной командой
 
Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за с...
Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за с...Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за с...
Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за с...
 
Модуль 2: Лекция 9-10. Обзор методологий, фреймворков
Модуль 2: Лекция 9-10.  Обзор методологий, фреймворковМодуль 2: Лекция 9-10.  Обзор методологий, фреймворков
Модуль 2: Лекция 9-10. Обзор методологий, фреймворков
 
Эффективное взаимодействие тестировщика и аналитика
Эффективное взаимодействие тестировщика и аналитикаЭффективное взаимодействие тестировщика и аналитика
Эффективное взаимодействие тестировщика и аналитика
 
Антон Душутин, Госзаказчик и исполнитель - коллеги или враги
Антон Душутин, Госзаказчик и исполнитель - коллеги или врагиАнтон Душутин, Госзаказчик и исполнитель - коллеги или враги
Антон Душутин, Госзаказчик и исполнитель - коллеги или враги
 
Scino.Школа IT-менеджмента. Занятие 2. Управление проектами. Формирование ком...
Scino.Школа IT-менеджмента. Занятие 2. Управление проектами. Формирование ком...Scino.Школа IT-менеджмента. Занятие 2. Управление проектами. Формирование ком...
Scino.Школа IT-менеджмента. Занятие 2. Управление проектами. Формирование ком...
 
Room8: Внедрение практик code review как важная составляющая успеха мобильног...
Room8: Внедрение практик code review как важная составляющая успеха мобильног...Room8: Внедрение практик code review как важная составляющая успеха мобильног...
Room8: Внедрение практик code review как важная составляющая успеха мобильног...
 
Михаил Павлов - is a tester responsible for quality
Михаил Павлов - is a tester responsible for qualityМихаил Павлов - is a tester responsible for quality
Михаил Павлов - is a tester responsible for quality
 
Тонкие системные технологии
Тонкие системные технологииТонкие системные технологии
Тонкие системные технологии
 
Иван Кожин «Saritasa Tools или ещё один подход к архитектуре приложения»
Иван Кожин «Saritasa Tools или ещё один подход к архитектуре приложения»Иван Кожин «Saritasa Tools или ещё один подход к архитектуре приложения»
Иван Кожин «Saritasa Tools или ещё один подход к архитектуре приложения»
 
CodeFest 2013. Сурова И. — Аналитик — инструкция по применению для менеджеров...
CodeFest 2013. Сурова И. — Аналитик — инструкция по применению для менеджеров...CodeFest 2013. Сурова И. — Аналитик — инструкция по применению для менеджеров...
CodeFest 2013. Сурова И. — Аналитик — инструкция по применению для менеджеров...
 
Lection 23-24. Use Cases+ User Stories
Lection 23-24. Use Cases+ User StoriesLection 23-24. Use Cases+ User Stories
Lection 23-24. Use Cases+ User Stories
 
Алексей Лустин. Непрерывная проверка качества кода.
Алексей Лустин. Непрерывная проверка качества кода.Алексей Лустин. Непрерывная проверка качества кода.
Алексей Лустин. Непрерывная проверка качества кода.
 
Новый процесс тестирования на "старом" проекте
Новый процесс тестирования на "старом" проектеНовый процесс тестирования на "старом" проекте
Новый процесс тестирования на "старом" проекте
 
C# Web. Занятие 14.
C# Web. Занятие 14.C# Web. Занятие 14.
C# Web. Занятие 14.
 
User stories and use cases - Клаудия Заика
User stories and use cases - Клаудия ЗаикаUser stories and use cases - Клаудия Заика
User stories and use cases - Клаудия Заика
 
проектная игра Pm pro et 140813
проектная игра Pm pro et 140813проектная игра Pm pro et 140813
проектная игра Pm pro et 140813
 
Асхат Уразбаев, А как у них? Agile в государственных проектах других стран
Асхат Уразбаев, А как у них? Agile в государственных проектах других странАсхат Уразбаев, А как у них? Agile в государственных проектах других стран
Асхат Уразбаев, А как у них? Agile в государственных проектах других стран
 

Similar to Еще раз про качество

SqaВфны8
SqaВфны8SqaВфны8
SqaВфны8
Catherine Tipanova
 
РИТ-2008: Взаимодействие отдела проектирования интерфейсов и разработчиков в ...
РИТ-2008: Взаимодействие отдела проектирования интерфейсов и разработчиков в ...РИТ-2008: Взаимодействие отдела проектирования интерфейсов и разработчиков в ...
РИТ-2008: Взаимодействие отдела проектирования интерфейсов и разработчиков в ...
Yury Vetrov
 
Developmentmanage3.0
Developmentmanage3.0Developmentmanage3.0
Developmentmanage3.0WRider
 
Developmentmanage1.0
Developmentmanage1.0Developmentmanage1.0
Developmentmanage1.0HighLoad2009
 
вольфсон основы Agile
вольфсон   основы Agileвольфсон   основы Agile
вольфсон основы AgileMagneta AI
 
Agile testing
Agile testingAgile testing
Agile testing
SPB SQA Group
 
Оценка эффективности работы аналитика
Оценка эффективности работы аналитикаОценка эффективности работы аналитика
Оценка эффективности работы аналитика
SQALab
 
Analyst Days 2014
Analyst Days 2014Analyst Days 2014
Analyst Days 2014
Natalia Zhelnova
 
В.Денисенков. На что обратить внимание при выборе подрядчика и как определить...
В.Денисенков. На что обратить внимание при выборе подрядчика и как определить...В.Денисенков. На что обратить внимание при выборе подрядчика и как определить...
В.Денисенков. На что обратить внимание при выборе подрядчика и как определить...
borovoystudio
 
ИТ проекты глазами заказчика
ИТ проекты глазами заказчикаИТ проекты глазами заказчика
ИТ проекты глазами заказчика
Александр Кольцов
 
Александр Кольцов. IT проекты глазами заказчика
Александр Кольцов. IT проекты глазами заказчикаАлександр Кольцов. IT проекты глазами заказчика
Александр Кольцов. IT проекты глазами заказчика
IT Spring
 
Что тендер грядущий нам готовит
Что тендер грядущий нам готовитЧто тендер грядущий нам готовит
Что тендер грядущий нам готовит
SQALab
 
Правильный процесс дает правильный результат. Как бережливое производство пом...
Правильный процесс дает правильный результат. Как бережливое производство пом...Правильный процесс дает правильный результат. Как бережливое производство пом...
Правильный процесс дает правильный результат. Как бережливое производство пом...
borovoystudio
 
В.Денисенков - Семь раз отмерь. Все что надо знать о выборе подрядчиков, прог...
В.Денисенков - Семь раз отмерь. Все что надо знать о выборе подрядчиков, прог...В.Денисенков - Семь раз отмерь. Все что надо знать о выборе подрядчиков, прог...
В.Денисенков - Семь раз отмерь. Все что надо знать о выборе подрядчиков, прог...
borovoystudio
 
В.Денисенков Семь раз отмерь. Все что надо знать о выборе подрядчиков, прог...
В.Денисенков   Семь раз отмерь. Все что надо знать о выборе подрядчиков, прог...В.Денисенков   Семь раз отмерь. Все что надо знать о выборе подрядчиков, прог...
В.Денисенков Семь раз отмерь. Все что надо знать о выборе подрядчиков, прог...
borovoystudio
 
Lection 3 4_pm
Lection 3 4_pmLection 3 4_pm
Lection 3 4_pm
Yana Brodetski
 
QA в тотальном аутсорсе
QA в тотальном аутсорсеQA в тотальном аутсорсе
QA в тотальном аутсорсе
Olga Pronina
 
Test labs 2016. QA в тотальном аутсорсе
Test labs 2016. QA в тотальном аутсорсеTest labs 2016. QA в тотальном аутсорсе
Test labs 2016. QA в тотальном аутсорсе
Sasha Soleev
 

Similar to Еще раз про качество (20)

SqaВфны8
SqaВфны8SqaВфны8
SqaВфны8
 
РИТ-2008: Взаимодействие отдела проектирования интерфейсов и разработчиков в ...
РИТ-2008: Взаимодействие отдела проектирования интерфейсов и разработчиков в ...РИТ-2008: Взаимодействие отдела проектирования интерфейсов и разработчиков в ...
РИТ-2008: Взаимодействие отдела проектирования интерфейсов и разработчиков в ...
 
Критерии выбора системы электронного документооборота
Критерии выбора системы электронного документооборотаКритерии выбора системы электронного документооборота
Критерии выбора системы электронного документооборота
 
Developmentmanage3.0
Developmentmanage3.0Developmentmanage3.0
Developmentmanage3.0
 
Developmentmanage1.0
Developmentmanage1.0Developmentmanage1.0
Developmentmanage1.0
 
вольфсон основы Agile
вольфсон   основы Agileвольфсон   основы Agile
вольфсон основы Agile
 
Agile testing
Agile testingAgile testing
Agile testing
 
Оценка эффективности работы аналитика
Оценка эффективности работы аналитикаОценка эффективности работы аналитика
Оценка эффективности работы аналитика
 
Analyst Days 2014
Analyst Days 2014Analyst Days 2014
Analyst Days 2014
 
Автоматизация бизнес-процессов, электронного документооборота и архивного хра...
Автоматизация бизнес-процессов, электронного документооборота и архивного хра...Автоматизация бизнес-процессов, электронного документооборота и архивного хра...
Автоматизация бизнес-процессов, электронного документооборота и архивного хра...
 
В.Денисенков. На что обратить внимание при выборе подрядчика и как определить...
В.Денисенков. На что обратить внимание при выборе подрядчика и как определить...В.Денисенков. На что обратить внимание при выборе подрядчика и как определить...
В.Денисенков. На что обратить внимание при выборе подрядчика и как определить...
 
ИТ проекты глазами заказчика
ИТ проекты глазами заказчикаИТ проекты глазами заказчика
ИТ проекты глазами заказчика
 
Александр Кольцов. IT проекты глазами заказчика
Александр Кольцов. IT проекты глазами заказчикаАлександр Кольцов. IT проекты глазами заказчика
Александр Кольцов. IT проекты глазами заказчика
 
Что тендер грядущий нам готовит
Что тендер грядущий нам готовитЧто тендер грядущий нам готовит
Что тендер грядущий нам готовит
 
Правильный процесс дает правильный результат. Как бережливое производство пом...
Правильный процесс дает правильный результат. Как бережливое производство пом...Правильный процесс дает правильный результат. Как бережливое производство пом...
Правильный процесс дает правильный результат. Как бережливое производство пом...
 
В.Денисенков - Семь раз отмерь. Все что надо знать о выборе подрядчиков, прог...
В.Денисенков - Семь раз отмерь. Все что надо знать о выборе подрядчиков, прог...В.Денисенков - Семь раз отмерь. Все что надо знать о выборе подрядчиков, прог...
В.Денисенков - Семь раз отмерь. Все что надо знать о выборе подрядчиков, прог...
 
В.Денисенков Семь раз отмерь. Все что надо знать о выборе подрядчиков, прог...
В.Денисенков   Семь раз отмерь. Все что надо знать о выборе подрядчиков, прог...В.Денисенков   Семь раз отмерь. Все что надо знать о выборе подрядчиков, прог...
В.Денисенков Семь раз отмерь. Все что надо знать о выборе подрядчиков, прог...
 
Lection 3 4_pm
Lection 3 4_pmLection 3 4_pm
Lection 3 4_pm
 
QA в тотальном аутсорсе
QA в тотальном аутсорсеQA в тотальном аутсорсе
QA в тотальном аутсорсе
 
Test labs 2016. QA в тотальном аутсорсе
Test labs 2016. QA в тотальном аутсорсеTest labs 2016. QA в тотальном аутсорсе
Test labs 2016. QA в тотальном аутсорсе
 

More from Ivan Grishaev

Основы машинного обучения. Дмитрий Соболев
Основы машинного обучения. Дмитрий СоболевОсновы машинного обучения. Дмитрий Соболев
Основы машинного обучения. Дмитрий Соболев
Ivan Grishaev
 
Docker
DockerDocker
NoSQL pain
NoSQL painNoSQL pain
NoSQL pain
Ivan Grishaev
 
Что такое говнокод
Что такое говнокодЧто такое говнокод
Что такое говнокод
Ivan Grishaev
 
Why everyone like ruby
Why everyone like rubyWhy everyone like ruby
Why everyone like ruby
Ivan Grishaev
 
В поисках удаленной работы за рубежом
В поисках удаленной работы за рубежомВ поисках удаленной работы за рубежом
В поисках удаленной работы за рубежом
Ivan Grishaev
 
От Make к Ansible
От Make к AnsibleОт Make к Ansible
От Make к Ansible
Ivan Grishaev
 
Чек-лист ежедневных действий для сообществ компаний в соц. сетях
Чек-лист ежедневных действий для сообществ компаний в соц. сетяхЧек-лист ежедневных действий для сообществ компаний в соц. сетях
Чек-лист ежедневных действий для сообществ компаний в соц. сетях
Ivan Grishaev
 
10 вопросов, которые следует задать будущему работодателю
10 вопросов, которые следует задать будущему работодателю10 вопросов, которые следует задать будущему работодателю
10 вопросов, которые следует задать будущему работодателю
Ivan Grishaev
 
тесты с фикстурами
тесты с фикстурамитесты с фикстурами
тесты с фикстурами
Ivan Grishaev
 
Project Management в разрезе бихевиоризма и общей педагогики
Project Management в разрезе бихевиоризма и общей педагогикиProject Management в разрезе бихевиоризма и общей педагогики
Project Management в разрезе бихевиоризма и общей педагогики
Ivan Grishaev
 
Agile or not agile
Agile or not agileAgile or not agile
Agile or not agile
Ivan Grishaev
 
Ci на базе docker
Ci на базе dockerCi на базе docker
Ci на базе docker
Ivan Grishaev
 
Личный взгляд на Clojure
Личный взгляд на ClojureЛичный взгляд на Clojure
Личный взгляд на Clojure
Ivan Grishaev
 
Erlang, который мы потеряли
Erlang, который мы потерялиErlang, который мы потеряли
Erlang, который мы потеряли
Ivan Grishaev
 
Расстаемся с мифами о ФП
Расстаемся с мифами о ФП Расстаемся с мифами о ФП
Расстаемся с мифами о ФП
Ivan Grishaev
 

More from Ivan Grishaev (16)

Основы машинного обучения. Дмитрий Соболев
Основы машинного обучения. Дмитрий СоболевОсновы машинного обучения. Дмитрий Соболев
Основы машинного обучения. Дмитрий Соболев
 
Docker
DockerDocker
Docker
 
NoSQL pain
NoSQL painNoSQL pain
NoSQL pain
 
Что такое говнокод
Что такое говнокодЧто такое говнокод
Что такое говнокод
 
Why everyone like ruby
Why everyone like rubyWhy everyone like ruby
Why everyone like ruby
 
В поисках удаленной работы за рубежом
В поисках удаленной работы за рубежомВ поисках удаленной работы за рубежом
В поисках удаленной работы за рубежом
 
От Make к Ansible
От Make к AnsibleОт Make к Ansible
От Make к Ansible
 
Чек-лист ежедневных действий для сообществ компаний в соц. сетях
Чек-лист ежедневных действий для сообществ компаний в соц. сетяхЧек-лист ежедневных действий для сообществ компаний в соц. сетях
Чек-лист ежедневных действий для сообществ компаний в соц. сетях
 
10 вопросов, которые следует задать будущему работодателю
10 вопросов, которые следует задать будущему работодателю10 вопросов, которые следует задать будущему работодателю
10 вопросов, которые следует задать будущему работодателю
 
тесты с фикстурами
тесты с фикстурамитесты с фикстурами
тесты с фикстурами
 
Project Management в разрезе бихевиоризма и общей педагогики
Project Management в разрезе бихевиоризма и общей педагогикиProject Management в разрезе бихевиоризма и общей педагогики
Project Management в разрезе бихевиоризма и общей педагогики
 
Agile or not agile
Agile or not agileAgile or not agile
Agile or not agile
 
Ci на базе docker
Ci на базе dockerCi на базе docker
Ci на базе docker
 
Личный взгляд на Clojure
Личный взгляд на ClojureЛичный взгляд на Clojure
Личный взгляд на Clojure
 
Erlang, который мы потеряли
Erlang, который мы потерялиErlang, который мы потеряли
Erlang, который мы потеряли
 
Расстаемся с мифами о ФП
Расстаемся с мифами о ФП Расстаемся с мифами о ФП
Расстаемся с мифами о ФП
 

Еще раз про качество

  • 1. Еще раз про качество Рыжков Евгений, 30.08.2016 специально для Deep Refactoring
  • 2. 1. Отказ от ответствености ● Я работал/работаю в крупных аутсорсинговых сервисных конторах (это не продуктовые конторы и не интеграторы!). ● Это исключительно мой взгляд на сложившийся порядок вещей.
  • 3. 2. Раскрою карты сразу Качественный софт делать дорого (с точки зрения исполнителя и заказчика) и скучно (с точки зрения молодых, талантливых и амбициозных).
  • 4. 4. Что такое качественный софт? ● Все зависит от входных требований: для разных заказчиков один и тот же продукт будет как приемлемым, так и неприемлемым. ● Мало договориться о "качестве" с заказчиком до начала работ. Надо построить процесс так, чтобы было видно, насколько далеко продукт от “качественного”. ● Качество - ничто. Управление качеством - все. ● Качественный софт - это софт, качеством которого можно явно управлять в процессе создания.
  • 5. 5. Управление - это информация ● Чтобы чем-то управлять руководителю надо получать информацию. ● Любой руководитель - это центр сбора информации. ● Информация не берется из ниоткуда: ее создают люди. ● На основании этой информации рассчитываются различные метрики, создаются отчеты, формируются бюджеты и т.п. ● Несохраненная информация пропадает и не может участвовать в управлении. ● Пример: учет трудозатрат (ежедневно, еженедельно, ежемесячно, никогда)
  • 6. 6. Почему дорого и скучно? ● Попробуем разобрать один из элементов проектной деятельности с точки зрения заказчика, начальников программистов и самих программистов. ● За основу возьмем внутренние процессы одной достаточно крупной конторы...
  • 7. 7. Управляем качеством кода ● Варианты: статический анализ (расчет метрик и анализ исходников, динамический анализ (запуск кода - тестирование). ● Один из методов статического анализа: code review. ● Вопрос к аудитории: как проводится code review?
  • 8. 8. Что за процесс Review? ● Цель процесса: гарантировать соответствие промежуточных результатов требуемому уровню качества. ● У процесса есть модератор, который отвечает за весь процесс. ● Модератор: ○ определяет цель конкретного review. ○ определяет, кто должен участвовать в процессе. ○ находит того, кто будет делать review (если еще нет назначения). ○ обеспечивает доступность объектов для review (исходники, документы и т.п.) для участников. ○ проверяет актуальность документов, обеспечивающих процесс review. ○ назначает дату и время сессии, оповещает всех участников. ○ назначает секретаря для сессии ○ обеспечивает документирование и классификацию результатов. ○ проверяет наличие протокола сессии с подписями участников. ● И, конечно, протокол должен быть разослан всем и помещен в “систему документоборота” проекта. ● Вопрос к аудитории: а какие типы code review вы знаете?
  • 9. 9. Примеры типов code review ● Informal review (выполняется на ходу, по мере того, как пишется код) ● Walkthrough (автор кода презентует результат непосредственно на сессии) ● Technical review (рецензент проводит анализ кода до сессии на основе только своего опыта; результаты обсуждаются на сессии) ● Inspection (рецензент проводит анализ кода до сессии, используя согласованные checklists; результаты обсуждаются на сессии)
  • 10. 10. Сколько же это стоит?! ● Трудозатраты на создание регламентирующих документов и поддержание их в актуальном состоянии ● Трудозатраты на инспекцию кода до сессии ● Трудозатраты на проведение сессии (сколько там человеко-часов если сессия открыта для посещения всеми?) ● Трудозатраты на оформление результатов сессии, создание дефектов и отслеживание их закрытия
  • 11. 11. А когда же кодить?! ● Надо быть в курсе регламентирующих документов (как называются, где лежат, прочитать последнюю версию) ● Надо кодить с учетом checklists ● Надо кодить с учетом стандартов ● Надо уметь рецензировать чужой код ● Надо уметь обсуждать технические проблемы ● Надо аккуратно вести отчетность о проделанной работы
  • 12. 12. Имеем на выходе ● Для заказчика трудозатраты возрастают ● Для руководства бонусы снижаются ● Для молодых, талантливых и амбициозных программистов жизнь проходит мимо ● И еще один момент: менеджмент не всегда может правильно оценить реальные трудозатраты с учетом возможности управления качеством продукта. ● На выходе: писать софт качественно - очень дорого. Мало кто может себе это позволить.