Разделы портала

Онлайн-тренинги

.
Принципы, а не правила
25.01.2016 11:45

Автор: Иэн МакКоуатт (Iain McCowatt)

Ссылка на оригинал: http://exploringuncertainty.com/blog/archives/1154

Перевод: Ольга Алифанова

Цель тестирования

Много лет я проработал в компаниях, где каждый был обязан сформулировать свою миссию, чтобы соответствовать внутренним стандартам, и поэтому питаю к миссиям некоторое отвращение. Однако моя команда все-таки сформулировала следующую "цель" нашего тестирования:

"Обеспечить информированное принятие решений, обнаруживая и делясь своевременной и релевантной информацией о ценности решений и рисках, сопутствующих им".

Это наша цель, это та задача, которую мы решаем. Мы тестируем, чтобы узнать что-то полезное, найти информацию, которая поможет заинтересованным лицам принять правильное решение. Да, это несколько общо, но это неплохая стартовая точка. Наша миссия помогает нам найти новые пути решения проблем тестирования.

Более того, миссия служит призмой, через которую мы смотрим на мир. Когда нам говорят "делайте так-то", мы вооружаемся своей миссией и спрашиваем, помогут ли эти действия достигнуть нашей цели, в правильном ли направлении мы будем двигаться?

Стив Джобс говорил: "Люди думают, что сконцентрироваться - это сказать "да" той вещи, на которой вы концентрируетесь. Это не так. Это означает, что вы должны сказать "нет" сотне других неплохих идей. Инновация - это умение сказать "нет" тысяче идей". В областях, схожих с тестированием, там, где процесс никогда не может быть полностью завершен, где каждое решение - это риск, подобная концентрация критична для успеха: мы должны быть в состоянии отказаться от вполне разумных предположений (а также от всяких глупостей). Миссия - прекрасный инструмент для исследования предположений и объяснения, почему нет.

Этот подход можно применять и на проектном уровне. Я заметил, что иногда тестировщики начинают размышлять, на какие важнейшие вопросы им необходимо найти ответ, и какая информация им нужна от других участников проекта. Частенько я слышал, как тестировщики беседуют с другими членами команды о целях своих проектов и том, какая информация им требуется, чтобы этих целей достичь. Я понял, что стратегия тестирования - это не кучка логистических указаний, а скорее список открытий, которые нужно сделать тестировщику. Постановка информационных целей и их уточнение постепенно становится неотъемлемой частью нашей работы - не везде, но в достаточно большом количестве мест, чтобы этот подход распространялся и далее.

Однако тут требуется предостережение. Когда вы определяете информационные задачи проекта, легко скатиться в "закрытые" вопросы вроде "Делает ли продукт это?", "Можем ли мы загружать данные?". Самые интересные вопросы, которые необходимо задать, всегда открытые: "Что и когда происходит?", "Сколько времени это займет?", "Сколько пользователей приложение выдержит перед тем, как упасть?". Не ограничивайте себя закрытыми вопросами. Небольшой совет: если вы переформулируете цели тестирования в форме вопросов, следите, что не все из них - закрытые. Задавать открытые вопросы очень важно.

 

Принципы

В дополнение к нашим целям, моя команда сформулировала восемь принципов тестирования: контекст, открытие, интеграция, отчетность, прозрачность, информационная ценность, гибкость и обучение.

Я не буду детально расписывать каждый из них. Их ценность не столько в самих концепциях или выборе слов, сколько в том, как мы пришли к их формулированию. Мы потратили много часов, прорабатывая их и уточняя формулировки, и они стали личным достижением для каждого из нас. Совместно разрабатывая и уточняя наши принципы, мы выработали общий словарь, общий язык. Мы понимаем, о чем говорит коллега, если он заговорил о "прозрачности" или "гибкости", потому что мы вложили свое время и свой труд, разбираясь, что именно значат для нас эти понятия. Теперь мы не жалеем сил, разъясняя наши принципы другим нашим коллегам.

Принципы могут быть ценностями или эвристиками, направляющими мышление команды. Они необязательно должны быть нормативными или детализированными, они могут быть открыты для различных интерпретаций, и даже могут друг другу противоречить (такие противоречия покажут вам, что вы на правильном пути). Если все так - значит, они заставляют человека, использующего эти понятия, ДУМАТЬ, прежде чем применить их.

Альтернатива принципам - правила: механистические формулы, явные инструкции. Заполни шаблон, используй эту технику, отметь этот чекбокс. Принципы - это совсем другое дело. Это ключевой фактор для расширения возможностей тестировщика. При помощи принципов мы регулируем систему тестирования, а не контролируем ее, а у принципов неплохая репутация в области регулирования.

В 2007 году Федеральная служба бюджетного надзора Великобритании опубликовала статью "Регулирование, основанное на принципах", которая была посвящена уходу от "правил" в регулировании бюджетной сферы в стране. Причины этого ухода:

  • Множество подробных правил - тяжелая ноша для отрасли.
  • Ни один набор правил не в состоянии предусмотреть изменчивые обстоятельства. Скорее напротив, правила тормозят инновации или даже делают их невозможными. Они ретроспективны - то есть склонны решать вчерашние проблемы вместо того, чтобы рассматривать сегодняшние или завтрашние.
  • Подробные правила вводят в соблазн соблюдения буквы правил вместо достижения целей регулирования, а "четко следовать правилам" совершенно не обязательно значит "делать то, что нужно сделать".

Эта организация не одинока. Похожий подход можно увидеть в законодательстве, бухгалтерии, аудите. В 2006 году Институт привилегированных бухгалтеров Шотландии опубликовал работу "Принципы, а не правила: точка зрения", где излагались очень похожие на FSA взгляды:

  • Когда в ходу правила, люди стараются соблюдать правила, а не следовать нужной цели.
  • В отличие от принципов, правила мешают думать и снижают профессионализм.

Итак, хотите ли вы нагрузить тестировщиков кучей правил (стандартов?), расписывая, как им следует себя вести, хотите ли вы угробить их профессионализм и заставить тупо получать указания и слушаться распоряжений? Или вам все же нужны профессионалы, способные думать головой, принимать самостоятельные решения, адаптироваться к переменам и внедрять что-то новое в практики тестирования? Если вы за профессионализм, стоит подумать о принципах вместо правил.

Тут стоит заметить,что Государственный Экспертный Центр (SEC) считает, что регулирование, основанное на принципах, не исключает правила как класс. В вышеупомянутой бюджетной сфере Великобритании принципы и правила сосуществуют. Фокус здесь в том, что они нашли нужный баланс между ними. В контексте нашей работы мы уделяем много внимания принципам, но ряд правил у нас все же существует: например, правила использования данных в тестировании. Незыблемые законы есть и у нас.

Поиск нужного баланса между принципами и правилами в крупнейших проектах и нововведениях в компании был самой интересной частью моей работы за последний год. В каждом отдельном случае мы начинали с длиннющего списка правил, стремясь к его полноте, а затем, постепенно учитывая возможные вариации в разных проектах, утверждали список принципов, дополняя его минимально коротким набором правил.

Практики

Мы верим, что тестирование должно быть организовано на том же уровне, на котором осуществляется передача продукта заказчику. Люди "в материале" наилучшим образом подходят для принятия правильных решений насчет используемых практик. В результате, мы не оговариваем отдельные практики на этом уровне работы, чтобы избежать навязывания практик проекту. У нас нет стандартов, документации практик тестирования и шаблонов. Команды, ответственные за тестирование, свободны в выборе подхода, и он зависит только от их нужд и задач.

Нельзя сказать, что это легко и просто. Я внятно объяснил коллегам, что команды ответственны за качество своего тестирования и должны обеспечивать прозрачность своих действий. Это очень важный момент: расширение полномочий работает только тогда, когда в командах есть доверие.

Это очевидно, но обычно на это не обращают внимания. Многие крупные компании основаны на недоверии: проекты управляются при помощи распоряжений и контроля, потому что доверия нет; поставщиков обязывают соответствовать стандартам из-за отсутствия доверия к ним; внедряются подробные своды правил, потому что - опять же - доверие к коллективу отсутствует. Если вы хотите что-то изменить, вам нужно научиться доверять. Доверие - это функция отчетности и прозрачности.

Мы рассматриваем тестирование как услугу, и мы ответственны перед заказчиком за качество нашего тестирования. Мы определяем качество тестирования в терминах информационной ценности - информация, которую мы предоставляем, полезна, то есть предоставлена вовремя, имеет смысл и может быть применена. Мы считаем, что информация не имеет ценности, если ей не делятся, поэтому мы обеспечиваем прозрачность прогресса и ограничений нашего тестирования.

Внимательный читатель наверняка заметил, что тут приведено три наших принципа - отчетность, прозрачность и информационная ценность. Предпосылки для расширения прав и доверия прочно внедрены в нашу работу.

Люди. Довольно сложно определить, какая именно информация нужна людям. Сложно также оценить продукт. И совсем сложно донести свои находки до других заинтересованных лиц в понятной им форме.

Тестировать вообще непросто. Это достаточно сложно и без навязанных сверху бессмысленных, негибких правил! Но мы также должны признать, что перейти к расширению прав трудно, если коллектив долгое время жил распоряжениями и контролем.

Так родилось наше сообщество тестировщиков. Чтобы сломать культуру, основанную на правилах, нам нужно было окружение, в котором люди с удовольствием делятся идеями и провоцируют коллег на подвиги. Нам нужна была среда, где люди могут попросить помощи и поддержать товарищей. Если наши люди уверены в себе и планируют расти как тестировщики, то задача руководства - обеспечить поддержку на этом пути. Глупо кувыркаться на трапеции без натянутой снизу сетки безопасности. Я предпочитаю удостовериться, что у моих тестировщиков эта сетка есть. Это новая для меня область, и я планирую серьезно развивать ее в этом году.

Заключение

Это было потрясающее путешествие. Мы научились уважать людей настолько, чтобы доверить им возможность стать прекрасными тестировщиками и освободить их от традиционных приказов и контроля, которые мешали им работать. Парадокс расширения прав предполагает, что мы не можем повлиять на это напрямую, но можем устранить препятствия и создать условия, в которых люди сделают все сами.