Четыре фрейма тестирования, часть 2: четыре типа рисков |
13.08.2025 00:00 |
Автор: Майкл Болтон (Michael Bolton) В первой части этой серии статей я рассказал о двух ключевых вещах, которых бизнес хочет от разработки: это продукт с высокой ценностью и низкой стоимостью. Чтобы бизнес получил продукт с высокой ценностью, мы должны представить себе успешный результат, чтобы начать к нему стремиться. Однако… тут есть риск. Легко предположить, что мы создали продукт с высокой ценностью, а затраты для бизнеса низки и останутся такими. Это может быть рискованным допущением. Мы — люди, а люди ошибаются. Потребности и желания людей — как и наши представления о них — со временем могут меняться. Поэтому в процессе разработки мы должны не только представлять себе успех, но и предвидеть неудачу и противостоять ей. Чтобы справиться с риском провала, полезно изучить продукт, который, как нам кажется, мы создали. (Напомню, что под «продуктом» в этой серии понимается всё, что кто-либо создал: от идеи в начале до полностью развернутой системы в конце и всего, что между ними.) Ответственная и предусмотрительная команда разработки будет изучать созданное ей и свои допущения на каждом этапе, чтобы убедиться, что мы и бизнес действительно получили то, чего хотели. Представлять себе успех – это здорово. Чтобы достичь успеха, мы должны признать, что потребности и желания могут изменяться, а также есть вероятность ошибки. Предвидеть возможность неудачи — это прагматичный подход, на случай если мы каким-то образом не смогли создать что-то действительно ценное. Всё это побуждает нас строить продукт внимательно и дисциплинированно, что помогает сохранять высокую ценность и низкие затраты — включая затраты на изменения. Чтобы помочь разобраться, действительно ли у нас есть тот продукт, который мы хотим, мы должны тестировать ответственно. Поэтому давайте добавим эти действия в правый нижний и левый верхний углы нашей таблицы. Что может пойти не так?Работа в социальных группах — командах — это мощная эвристика, позволяющая нам развивать и уточнять наши представления об успехе и возможных ошибках. Разные люди привносят в проект разные точки зрения — критическую дистанцию, и это помогает выявить проблемы в нашем собственном мышлении. Однако даже при работе в группах мы остаёмся уязвимы к ошибкам при проектировании, разработке, создании и тестировании продукта. В процессе воображения успеха мы можем ошибаться в наших представлениях. Мы можем забыть учесть людей вне нашей группы — или даже некоторых внутри неё. Мы можем не знать о желаниях и потребностях определённых людей. Удовлетворение требований к качеству всегда представляет собой некоторый компромисс: одни потребности и желания могут конфликтовать с другими. Достичь консенсуса относительно наших представлений о том, что и для кого именно мы создаем— задача сложная. И даже если кажется, что наши намерения едины, наше понимание может основываться на непроверенных допущениях и поверхностном согласии. Такие недопонимания могут выстрелить, когда мы приступим к созданию продукта. Даже если наши намерения ясны всей команде, сам процесс создания продукта может сопровождаться рутинными и обыденными проблемами. Мы можем опечататься, забыть какой-то шаг из процедуры, которую пытаемся зафиксировать; пропустить проверку возвращаемого значения; сбиться со счёта; сделать что-то слишком медленно или слишком быстро; попытаться уместить что-то в слишком маленькое пространство. Ошибки обычно ведут к переработкам, задержкам и увеличению затрат, что создаёт риск для бизнеса. Работа в парах или более крупных группах помогает снизить эти риски. Помогают также инструменты и процедуры. Изучение продукта может оказаться более сложным или медленным, чем хотелось бы. Даже если мы достаточно ясно понимаем наши намерения и строим продукт аккуратно, предвидение неудач заставляет нас думать о необходимости более глубокого тестирования. Чтобы сделать это эффективно, нужно быть готовыми к глубокому тестированию, когда мы решим, что оно необходимо. Мотивация ответственного тестирования проста: даже когда мы были осторожны, внимательны и дисциплинированы, остаётся шанс, что проблемы всё же прошли мимо нас. Особенно это верно для сложных систем с множеством неожиданных свойств и поведений; систем с высокой степенью изменений; систем с разными типами пользователей и сценариями использования; систем, работающих на широком спектре платформ. Итак, в общих чертах, это и есть риски. Как нам и бизнесу получить желаемое на каждом этапе и как справляться с этими рисками? Мы рассмотрим это более подробно в следующей части. |