Искусство Agile-разработки. Теория и практика гибкой разработки ПО

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

Большинство компаний, разрабатывающих ПО, якобы используют Agile, но на самом деле не понимают, что это такое. Хотите повысить гибкость своей команды? В книге вы найдете четкие, конкретные и подробные рекомендации о том, что, как и почему следует делать, а когда стоит пойти на компромиссы. Джеймс Шор предлагает реальные решения по освоению, планированию, разработке и управлению, основанные на более чем двадцатилетнем опыте Agile. Он объединяет актуальные идеи экстремального программирования, Scrum, Lean, DevOps и многих других в единое целое. Узнайте, как успешно внедрить гибкую разработку в вашей команде и организации, или разберитесь, почему Agile вам не подходит.

Author(s): Джеймс Шор, Диана Ларсен, Гитте Клитгаард, Шэйн Уорден
Edition: 2
Publisher: Питер
Year: 2024

Language: Russian
Pages: 624
City: СПб.
Tags: agile

Оглавление
Отзывы
Предисловие
Введение
Для прагматиков
Что нового во втором издании
Для кого предназначена книга
О приглашенных авторах
Гитте Клитгаард
Диана Ларсен
Шейн Уорден
Условные обозначения
Использование примеров кода
Благодарности
От издательства
Часть I. Улучшая гибкость
Глава 1. Что есть Agile
Происхождение Agile
Манифест гибкой разработки программного обеспечения Agile
Основополагающие принципы Манифеста Agile
Рожденный из кризиса
Манифест Agile
Суть Agile
Адаптивность вместо предиктивности
Ориентированность на людей, а не на процессы
Почему Agile победил
Типичный провал тяжеловесного процесса
Почему Agile работает
Почему Agile терпит неудачу
Карго-культы
Глава 2. Как быть Agile
Практика Agile
Как достичь мастерства
Путь к мастерству
С чего начать?
Присоединение к действующей команде Agile
Введение Agile
Совершенствование действующих Agile-команд
Применение отдельных практик Agile
Глава 3. Выберите свою гибкость
Модель Agile Fluency
Уровень фокусировки (Focusing)
Уровень поставки (Delivering)
Уровень оптимизации (Optimizing)
Уровень укрепления (Strengthening)
Выберите свои уровни
Глава 4. Инвестируйте в гибкость
Найдите время на обучение
Если нет времени на обучение…
Если нет средств на финансовую помощь…
Отберите или создайте Agile-команды
Если вы не можете закрепить людей за определенной командой…
Если члены команды не ладят друг с другом…
Если вы не можете создать долгосрочную команду…
Если вы не можете получить необходимых экспертов со знанием бизнеса, клиентов или пользователей…
Если вы не можете получить необходимые вам навыки разработчиков…
Выберите Agile-коучей
Если вы не можете нанять на работу нужных вам коучей…
Делегируйте полномочия и ответственность команде
Если работу нужно поручить отдельным людям…
Если корпоративные инструменты не поддерживают командную работу…
Если команды должны использовать корпоративный инструмент отслеживания…
Если у команды нет доступа к стейкхолдерам…
Если команда поставки не управляет своим процессом релиза…
Если команда оптимизации не управляет своими планами создания продукта и расходами…
Измените стиль управления командой
Если менеджеры не могут отпустить ситуацию…
Организуйте рабочие помещения
Если команда удаленная…
Если вы не можете организовать физическое помещение для офисной команды…
Выберите команде подходящую для обучения задачу
Если есть важный дедлайн…
Если нет значимой работы с нуля…
Смените водопадные подходы в управлении
Если требуется водопадная модель управления…
Измените вредные HR-политики
Если HR-политики не подлежат изменению…
Решите проблемы, связанные с безопасностью
Если требования безопасности не допускают гибкости…
Если вам требуется дополнительный этап ревью кода…
Руководство по устранению неполадок
Глава 5. Инвестируйте в изменения
Осознание изменений
Масштабные изменения
Процессы изменений
Заручитесь поддержкой руководства
1. Начните с разговора
2. Получите одобрение экономичного покупателя
3. Сделайте официальное предложение
Выход на экономичного покупателя
Если это выглядит слишком трудозатратным…
Если руководство считает, что они уже Agile…
Если руководство не поддерживает…
Изменить организацию
Заинтересуйте команду
Если команда настроена скептически…
Если несколько членов команды против…
Если большинство членов команды против…
Если люди обманывают насчет своего согласия…
Заручитесь поддержкой стейкхолдеров
Если нужны конкретные обязательства…
Если стейкхолдеры не спешат поддержать…
Литература для дополнительного чтения
Глава 6. Масштабирование гибкости
Масштабирование свободного владения навыками
Организационный потенциал
Коучинговый потенциал
Потенциал команды
Масштабирование продуктов и портфелей
Вертикальное масштабирование
LeSS
Внедрение LeSS
FAST
Внедрение FAST
Проблемы и преимущества вертикального масштабирования
Горизонтальное масштабирование
Вертикальное и горизонтальное масштабирование
Моя рекомендация
Часть II. Фокус на ценность
Добро пожаловать на уровень фокусировки
Достижение свободного владения навыками на уровне фокусировки
Глава 7. Командная работа
Вся команда
Навыки в сфере деятельности заказчика
Управление продуктом (оно же владение продуктом — ownership)
Экспертные знания в предметной области (Domain expertise, Subject Matter Expertise)
Дизайн пользовательского интерфейса (UX-дизайн) (он же дизайн взаимодействий)
Навыки разработки
Программирование, дизайн и архитектура
Тестирование
Эксплуатация (Operations)
Навыки коучинга
Коучи-практики
Коучи-игроки
Коучи-фасилитаторы
Специалисты широкого профиля
Комплектование команды
Постоянные члены команды
Стабильные команды
Размер команды
Почему так много заказчиков
Команда единомышленников
Еще раз о провальной команде
Вопросы
Предварительные требования
Показатели
Альтернативы и эксперименты
Литература для дополнительного чтения
Командная комната
Секреты сотрудничества
Всегда просите помощи, всегда помогайте
Легко входите в дискуссии и выходите из них
Создавайте визуализации
Работайте одновременно
Стремитесь к согласию
Соглашайтесь на эксперимент
Физические командные комнаты
Эффект коктейльной вечеринки
Дизайн вашей командной комнаты
Множество команд
Личное оборудование и принадлежности
Примеры командных помещений
Адаптация к физической командной комнате
Виртуальные командные комнаты
Оборудование и инструменты для удаленной работы
Организация удаленного взаимодействия
Младшие члены команды
Вопросы
Предварительные требования
Показатели
Альтернативы и эксперименты
Литература для дополнительного чтения
Безопасность
Понятие психологической безопасности
Как создать атмосферу безопасности
Дать возможность высказаться всем
Открыто говорите об ошибках
Будьте любознательны
Научитесь давать и получать обратную связь
Используйте эмпатию
Позвольте себе быть уязвимым
Организационная безопасность
Роль лидера
Моделирование поведения, которое вы хотели бы видеть
Будьте конкретны касательно своих ожиданий
Не уклоняйтесь от конфликта
Упражнение на построение взаимоотношений в команде
Вопросы
Предварительные требования
Показатели
Альтернативы и эксперименты
Литература для дополнительного чтения
Цель
Начните с ви́дения
Идентифицируйте цель
Разработка несколькими командами
Задокументируйте цель
Пример цели
Внесите цель в свой устав
Проверьте черновик цели
Получите общее согласие с ви́дением
Совершенствуйте миссию
Пересмотрите показатели
Стремитесь к цели
Планирование сессии подготовки устава
Продвигайте цель
Обновляйте цель
Вопросы
Предварительные требования
Показатели
Альтернативы и эксперименты
Литература для дополнительного чтения
Контекст
Запишите контекст в устав
Доступные навыки
Границы и взаимодействия
Выделенные ресурсы
Обязательства спонсора
Обновляйте контекст
Вопросы
Предварительные требования
Показатели
Альтернативы и эксперименты
Согласование
Запишите договоренности в устав
Узнайте друг друга
Заключите рабочие соглашения
Задайте стандарты
Обновляйте соглашения
Придерживайтесь договоренностей
Рабочие соглашения и коучинг
Вопросы
Предварительные требования
Показатели
Альтернативы и эксперименты
Энергичная работа
Как быть энергичным
Поддерживайте энергичную работу
Делайте перерывы
Вопросы
Предварительные требования
Показатели
Альтернативы и эксперименты
Литература для дополнительного чтения
Глава 8. Планирование
Истории
Как написать историю
Ценность для заказчика
Разделение и объединение историй
Крошечные истории
Специальные истории
Истории для документации
Истории для багов
Нефункциональные истории
Истории для эксплуатации и безопасности
Спайк-истории
Истории для очистки (clean-up stories)
Совещания и другие организационные мероприятия
Архитектура, дизайн, техническая инфраструктура
Вопросы
Предварительные требования
Показатели
Альтернативы и эксперименты
Адаптивное планирование
Ценные инкременты
Фокус на один инкремент за раз
Разделите инкременты
Минимизируйте объем незавершенной работы
Делайте частые релизы и как можно раньше
Ваш первый инкремент
Адаптируйте свои планы
Последний ответственный момент
Как создать план
Пример плана
Баланс адаптивности и предсказуемости
Адаптивное планирование в действии
Адаптивное планирование и организационная культура
Вопросы
Предварительные требования
Показатели
Альтернативы и эксперименты
Литература для дополнительного чтения
Визуальное планирование
Кто планирует?
Картирование кластеров
1. Подготовьте истории с помощью мозгового штурма
2. Сгруппируйте истории в инкременты
3. Организуйте инкременты
4. Проверьте и уточните
Дальнейшая разбивка инкрементов
1. Проведите мозговой штурм для разработки историй и объедините их в маленькие инкременты
2. Фильтруйте и повторите
3. Расставьте приоритеты
4. Сыграйте в игру в планирование
Карты влияния
1. Начните с цели
2. Определите влияния с помощью мозгового штурма
3. Определите влияющих стейкхолдеров
4. Приоритизируйте влияния
5. Определите инкременты с помощью мозгового штурма
6. Разбейте инкременты на более мелкие составляющие
Перспективный анализ
1. Создайте диаграмму
2. Определите вероятные результаты с помощью мозгового штурма
3. Проверьте и уточните
4. Определите приоритетность результатов и создайте план
Составление карты историй
1. Определите зону охвата
2. Определите шаги
3. Выделите активности пользователя
4. Идентифицируйте результаты и цели
5. Создайте карту «потом»
6. Разделите карту на инкременты
7. Сыграйте в игру в планирование
Обновление визуального плана
Вопросы
Предварительные требования
Показатели
Альтернативы и эксперименты
Литература для дополнительного чтения
Игра в планирование
Как играть
1. Заказчики определяют объем плана
2. Вся команда определяет истории с помощью мозгового штурма
3. Разработчики определяют размер историй
4. Заказчики определяют приоритеты историй
5. Повторяйте, пока план не будет завершен
Держите открытым окно возможностей
Как выиграть в игре в планирование
Приоритизация решений по разработке
Лицом к лицу с реальностью
Повторение игры в планирование
Вопросы
Предварительные требования
Показатели
Альтернативы и эксперименты
Вовлечение реального заказчика
Разработка для собственных нужд
Разработка платформ
Внутренняя разработка на заказ
Аутсорсинг разработки
Программное обеспечение для вертикального рынка
Программное обеспечение для горизонтального рынка
Вопросы
Предварительные требования
Показатели
Альтернативы и эксперименты
Инкрементные требования
Изменяемый документ с требованиями
Когда эксперты не являются частью команды
Работайте инкрементно
Цель и визуальный план
Игра в планирование
Макеты, примеры заказчиков и критерии завершения
Отзывы заказчиков
Документация
Документация по продукту
Эксплуатационная документация
Руководящая документация
Исполнительно-техническая документация
Вопросы
Предварительные требования
Показатели
Альтернативы и эксперименты
Литература для дополнительного чтения
Глава 9. Владение
Планирование задач
Рабочий ритм
Итерации
Непрерывный поток
Коллективное владение
Создание задач
Визуальное отслеживание
Сетка задач
Доска детективов
Кросс-командные зависимости
Принятие и выполнение обязательств по итерации
Незаконченные истории
Срочные запросы
Ваша первая неделя
Вопросы
Предварительные требования
Показатели
Альтернативы и эксперименты
Литература для дополнительного чтения
Потенциал
Вчерашняя погода
Потенциал и временные рамки итерации
Стабилизация потенциала
Почему точность оценки не имеет значения
Оценка историй
Пример оценочной сессии: разговорная оценка
Разговорная оценка
Оценка по сходству
Когда оценить трудно
Защита оценки
Ваш начальный потенциал
Как улучшить потенциал
Повысить внутреннее качество
Улучшить навыки в сфере деятельности заказчика
Поддерживать энергичную работу
Снимать с себя лишние обязанности
Поддерживать ограничение
Обеспечивать необходимые ресурсы
Добавлять людей (осторожно)
Потенциал — это не производительность
Вопросы
Предварительные требования
Показатели
Альтернативы и эксперименты
Резерв времени
Сколько резерва нужно
Как использовать резерв
Повышать внутреннее качество
Развивать навыки в сфере деятельности заказчика
Посвящать время исследованиям и экспериментам
Роль переработок
Вопросы
Предварительные требования
Показатели
Альтернативы и эксперименты
Литература для дополнительного чтения
Стендап-митинги
Как проводить ежедневные стендапы
1. «Прогулка по доске»
2. Фокус на завершении
3. Выбирайте задачи
4. Подробные обсуждения выносите за рамки встречи
Будьте краткими
Вопросы
Предварительные требования
Показатели
Альтернативы и эксперименты
Литература для дополнительного чтения
Информативное рабочее пространство
Тонкие сигналы
Большие наглядные диаграммы
Диаграммы улучшений
Игры
Вопросы
Предварительные требования
Показатели
Альтернативы и эксперименты
Литература для дополнительного чтения
Примеры заказчика
Описать
Продемонстрировать
Разработать
Вопросы
Предварительные требования
Показатели
Альтернативы и эксперименты
Литература для дополнительного чтения
Сделано Сделано
Как быть в статусе «Сделано Сделано»
Находить время
Организационные ограничения
Вопросы
Предварительные требования
Показатели
Альтернативы и эксперименты
Глава 10. Ответственность
Доверие стейкхолдеров
Добавьте немного суеты
Проявите эмпатию
Выполняйте обязательства
Управляйте проблемами
Уважайте цели заказчика
Сделайте так, чтобы стейкхолдеры выглядели хорошо
Будьте честны
Вопросы
Предварительные требования
Показатели
Альтернативы и эксперименты
Литература для дополнительного чтения
Демо для стейкхолдеров
Петли обратной связи
Частота демо
Как проводить демо для стейкхолдеров
Подготовьтесь
Когда дела идут плохо
Вопросы
Предварительные требования
Показатели
Альтернативы и эксперименты
Прогнозирование
Неопределенность и риск
Запланированные даты релизов
Как управлять своими планами
Прогнозы осуществимости
Прогнозы сроков и объема работы
Пример сроков и объема работы
Снижение риска
Пользовательские поправки на риск
Вопросы
Предварительные требования
Показатели
Альтернативы и эксперименты
Литература для дополнительного чтения
Дорожные карты
Agile-руководство
Вариант 1. Только факты
Вариант 2. Общее направление
Вариант 3. Дата и примерный объем работы
Вариант 4. Детальные планы и прогнозы
Корпоративные системы отслеживания
Когда дорожная карта недостаточно хороша
Дедлайн
Вопросы
Предварительные требования
Показатели
Альтернативы и эксперименты
Литература для дополнительного чтения
Менеджмент
Теория X и теория Y
Роль руководителя в Agile
Дисфункция измерений
Истории и пункты историй
Покрытие кода
Строки кода
Соотношение заявленного к сделанному
Подсчет дефектов
Почему дисфункция измерений неизбежна
Делегируемое управление
Сделайте измерения несущественными
Идите в гемба
Спросите команду
Определите цели и ограничения
Пример: покрытие кода
Когда показатели необходимы
Вопросы
Предварительные требования
Показатели
Альтернативы и эксперименты
Литература для дополнительного чтения
Глава 11. Совершенствование
Ретроспективы
Виды ретроспектив
Как проводить пульсирующие ретроспективы
Шаг 1. Первая директива (5 минут)
Шаг 2. Мозговой штурм (20 минут)
Шаг 3. Безмолвное сопоставление (15 минут)
Шаг 4. Генерация идей (инсайтов) (10–30 минут)
Шаг 5. Цель ретроспективы (10–20 минут)
Довести дело до конца
Вопросы
Предварительные требования
Показатели
Альтернативы и эксперименты
Литература для дополнительного чтения
Динамики команды
Что формирует команду
Развитие команды
Стадия формирования: новенький в классе
Штормовая стадия: подростковый возраст группы
Стадия нормализации: мы — № 1
Стадия функционирования (исполнения): синергия команды
Стадия расставания: разделение и движение дальше
Коммуникация, сотрудничество и взаимодействие
Начните с твердой основы доверия
Поддержите растущее доверие с помощью тройного обязательства
Разумные конфликты с обратной связью
Искра креативности и инновационности
Поддержание высокой производительности
Совместное лидерство
Токсичное поведение
Вопросы
Предварительные требования
Показатели
Альтернативы и эксперименты
Литература для дополнительного чтения
Устранение препятствий
Выявление препятствий
Круги и суп
Контроль: прямые действия
Влияние: убедить или рекомендовать
Суп: измените вашу реакцию
Вопросы
Предварительные требования
Показатели
Альтернативы и эксперименты
Литература для дополнительного чтения
Часть III. Надежная поставка
Добро пожаловать на уровень поставки
Достижение свободного владения навыками на уровне поставки
Глава 12. Сотрудничество
Коллективное владение кодом
Как заставить коллективное владение работать
Программирование без эго
Сотрудничество без конфликтов
Работа с незнакомым кодом
Преимущества для программистов
Вопросы
Предварительные требования
Показатели
Альтернативы и эксперименты
Парное программирование
Почему парное?
Рабочие станции для парного программирования
Как работать в паре
Эффективная навигация
Обучение при работе в паре
Трудности
Удобство
Интроверсия и социальное беспокойство
Стиль коммуникации
Инструменты и привязки клавиш
Вопросы
Предварительные требования
Показатели
Альтернативы и эксперименты
Литература для дополнительного чтения
Групповое программирование
Как работать в групповом программировании
Почему групповое программирование работает
Рабочая станция для группового программирования
Как заставить режим группового программирования работать
Динамики команды
Энергичная работа
Исследование
Строгая роль штурмана
Непрограммисты
Мини-группы и группы с неполной занятостью
Вопросы
Предварительные требования
Показатели
Альтернативы и эксперименты
Литература для дополнительного чтения
Единый язык
Дилемма экспертных знаний в предметной области
Говорить на одном языке
Как создать единый язык
Вопросы
Предварительные требования
Показатели
Альтернативы и эксперименты
Литература для дополнительного чтения
Глава 13. Разработка
Нулевое трение
Обратная связь за секунду
Знайте свой редактор
Воспроизводимые сборки
Управление зависимостями
Локальные сборки
Пятиминутная интеграция
Оптимизировать для сопровождения
Контролировать сложность
Автоматизировать все
Автоматизируйте инкрементно
Автоматизация устаревшего кода
Вопросы
Предварительные требования
Показатели
Альтернативы и эксперименты
Непрерывная интеграция
Непрерывная интеграция — это практика, а не инструмент
Выполняйте интеграцию несколько раз в день
Никогда не допускайте неисправности интеграционной ветви
Поддерживайте интеграционную ветвь в состоянии готовности к релизу
Множество разновидностей непрерывной интеграции
Танец непрерывной интеграции
Непрерывная интеграция без CI-сервера
Синхронная или асинхронная интеграция
Многоступенчатые интеграционные сборки
Запросы на слияние кодов (пул-реквесты) и ревью кода
Вопросы
Предварительные требования
Показатели
Альтернативы и эксперименты
Литература для дополнительного чтения
Разработка через тестирование
Почему TDD работает
Как использовать TDD
Шаг 1. Подумать
Шаг 2. Красная полоса
Шаг 3. Зеленая полоса
Шаг 4. Сделать рефакторинг
Шаг 5. Повторить
Ешьте луковицу с середины
Пример TDD
Начните с главного интерфейса
Вычисления и ветви
Циклы и обобщение
Особые случаи, обработка ошибок и утверждения времени выполнения
Вопросы
Предварительные требования
Показатели
Альтернативы и эксперименты
Литература для дополнительного чтения
Быстрые надежные тесты
Использование узких модульных тестов
Тестирование внешних взаимодействий с помощью узких интеграционных тестов
Моделирование нелокальных зависимостей
Контроль глобального состояния
Написание коммуникативных тестов
Разделение инфраструктуры и логики
Применение широких тестов только в качестве страховочной сетки
Добавление тестов к существующему коду
Предварительные требования
Показатели
Альтернативы и эксперименты
Литература для дополнительного чтения
Рефакторинг
Как делать рефакторинг
Рефакторинг в действии
Вопросы
Предварительные требования
Показатели
Альтернативы и эксперименты
Литература для дополнительного чтения
Спайк-решения
Простые вопросы
Сторонние зависимости
Дизайн-эксперименты
Найдите время для спайков
Вопросы
Предварительные требования
Показатели
Альтернативы и эксперименты
Глава 14. Дизайн
Инкрементный дизайн
Никогда не останавливайте работу над дизайном
Как работает инкрементный дизайн
Уровни дизайна
Внутри класса или модуля
Между классами и модулями
Архитектура приложения
Журнал архитектурных решений
Архитектура на основе рисков
Вопросы
Предварительные требования
Показатели
Альтернативы и эксперименты
Литература для дополнительного чтения
Простой дизайн
Вам это не понадобится (YAGNI: You Aren’t Gonna Need It)
Однажды и только однажды
Связанность и сплоченность
Сторонние компоненты
Быстрое завершение с ошибкой
Самодокументируемый код
Опубликованные интерфейсы
Оптимизация производительности
Вопросы
Предварительные требования
Показатели
Альтернативы и эксперименты
Литература для дополнительного чтения
Рефлексивный дизайн
Как работает рефлексивный дизайн
Рефлексивный дизайн на практике
Реверс-инжиниринг дизайна
Определение улучшений
Проблемный код
Эффект дробовика и дивергентное изменение
Одержимость примитивами и группы данных
Класс данных и класс кода
Отброшенные ошибки и нянчиться с nulls
Зависимости от времени и полусырые объекты
Выполняйте рефакторинг инкрементно
Вопросы
Предварительные требования
Показатели
Альтернативы и эксперименты
Литература для дополнительного чтения
Глава 15. DevOps
Сборка для эксплуатации
Моделирование угроз
Конфигурация
Секреты
Параноидальная телеметрия
Ведение журнала событий
Показатели и пригодность к наблюдению
Мониторинг и оповещения
Вопросы
Предварительные требования
Показатели
Альтернативы и эксперименты
Литература для дополнительного чтения
Флаги функций
Замковый камень
Флаги функций
Конфигурация приложения
Пользовательская конфигурация
Секреты
Предварительные требования
Показатели
Альтернативы и эксперименты
Литература для дополнительного чтения
Непрерывное развертывание
Как использовать непрерывное развертывание
Обнаружение сбоев развертывания
Устранение сбоев развертывания
Откатить развертывание
Исправить развертывание
Альтернатива: продвижение вперед
Инкрементные релизы
Миграция данных
Предварительные требования
Показатели
Альтернативы и эксперименты
Литература для дополнительного чтения
Эволюционная системная архитектура
Вам действительно это понадобится?
Нацеленность на простоту
1. Начните с идеального мира
2. Введите несовершенные компоненты и сети
3. Ограничьте ресурсы
4. Примите во внимание людей и команды
Контроль сложности
Эволюционный дизайн
Самодисциплина
Быстрое развертывание
Вертикальное масштабирование
Рефакторинг системной архитектуры
Компоненты мультирепозитория → компоненты монорепозитория
Компоненты → микролиты
Микролиты → модули
Модули → новые модули
Большой комок грязи → модули
Модули → микролиты
Микролиты → компоненты
Модули → компоненты
Компоненты монорепозитория → компоненты мультирепозитория
Составные рефакторинги
Предварительные требования
Показатели
Альтернативы и эксперименты
Литература для дополнительного чтения
Глава 16. Качество
Без багов
Не ищите виноватого в багах
Как встроить качество
Предотвращение ошибок программиста
Предотвращение ошибок дизайна
Предотвращение ошибок требований
Предотвращение системных ошибок
Исправляйте баги незамедлительно
Роль тестировщика
Правильное мироощущение
Вопросы
Предварительные требования
Показатели
Альтернативы и эксперименты
Обнаружение слепых зон
Подтвержденное знание
Исследовательское тестирование
Хаос-инжиниринг
Тестирование на проникновение и оценка уязвимостей
Вопросы
Предварительные требования
Показатели
Альтернативы и эксперименты
Анализ инцидентов
Природа сбоя
Проведение анализа
1. Подготовить условия
2. Собрать данные
3. Генерировать идеи
4. Решить, что делать
Предотвращение сбоя
5. Завершить ретроспективу
Обучение организации
Ответственность за инциденты
Вопросы
Предварительные требования
Показатели
Альтернативы и эксперименты
Литература для дополнительного чтения
Часть IV. Оптимизация результатов
Добро пожаловать в область оптимизации
Достижение навыков на уровне оптимизации
Глава 17. Автономность
Экспертные знания в области заказчика
Бизнес-решения
Ответственность и надзор
Финансирование
Эксперименты и литература для дополнительного чтения
Глава 18. Открытия
Подтвержденное знание
Способность к адаптации
Эксперименты и литература для дополнительного чтения
Глава 19. Взгляд в будущее
Библиография
Об авторе