Тестировщики, хватит заниматься обеспечением качества |
21.10.2010 18:54 |
17-18 ноября Майкл Болтон приезжает в Санкт-Петербург, где проведет один из лучших тренингов по тестированию ПО «Rapid Software Testing», разработанный им совместно с Джеймсом Бахом. Наш сайт уже публиковал переводы заметок Майкла, а к приезду Майкла мы решили сделать целую серию переводов. Оригинал: Testers: Get Out of the Quality Assurance Business Недавно Кори Фой (Cory Foy) опубликовал в своем твиттере такой призыв: «Наличие отдела обеспечения качества – признак некомпетентности в отделе разработки. Обсудим?» Вот что я думаю по этому поводу. Я тестировщик, и настало время расти и развиваться нашему ремеслу. Какой бы ни была организационная структура компании, нам, тестировщикам, пора прекратить заниматься обеспечением качества. Осенью 2008 года на конференции AYE я помогал Фионе Чарльз (Fiona Charles) и Джерри Вайнбергу (Jerry Weinberg) проводить сессию под названием «Тестирование лжет». Джерри сидел у входа в аудиторию и, пока участники заходили и занимали места, я прислушался к тому, что он говорит людям, сидевшим рядом с ним. - Вы занимаетесь обеспечением качества? - спросил он. Этот вопрос сразу напомнил мне об одном разговоре, который случился больше десяти лет назад. Осенью 1996 года Кем Канер (Cem Kaner) читал свой курс «Тестирование черного ящика» в компании Quarterdeck. Тогда я работал менеджером программ, но руководитель отдела обеспечения качества (т.е. тестирования) пригласил меня прослушать этот курс. Во время курса Кем устроил обсуждение, должна ли на самом деле группа тестирования называться группой обеспечения качества. Его позиция состояла в том, что отдельные сотрудники – программисты, тестировщики, – конечно, обязаны гарантировать качество своей собственной работы, но тестировщики не в состоянии гарантировать качество работы других участников проекта и не должны пытаться это делать. Роль обеспечения качества в компании, говорил Кем, принадлежит руководству и первому лицу компании (которое является главным должностным лицом, отвечающим за качество), поскольку именно они, и уж конечно не тестировщики, обладают полномочиями принятия решений по качеству. Спустя годы он продолжил развивать эту идею, в основном, в различных версиях своих презентаций и статей о непрерывной революции в тестировании программного обеспечения, но этот принцип применим ко всей его работе. Наша роль – не обеспечение качества; мы не обладаем полномочиями управлять расписанием, бюджетом, подбором кадров для разработки, рамками продукта, моделью разработки, взаимоотношениями с заказчиком и т.п. Но когда мы делаем нашу работу на отлично, мы предоставляем ценную, своевременную информацию об актуальном состоянии продукта и проекта. Мы не «владельцы» качества; мы помогаем людям, отвечающим за качество и за то, что оказывает на него влияние. Содействие качеству — вот чем мы заняты. Недавно в интервью Рою Ошероуву (Roy Osherove) Джеймс Бах (James Bach) также заметил, что мы, тестировщики, не контролируем качество. Мы не несем ответственности за качество больше, чем кто-либо еще, эта ответственность распространяется на всех, кто входит в группу разработки. Когда довольно давно Джеймс Бах впервые был назначен тест-менеджером в Apple Computer, его возбуждала сама мысль о том, что он контролирует качество. «Позднее я пришел к пониманию, что это обижало всех вокруг, поскольку истинный смысл моего обращения к другим сотрудникам команды состоял в том, что «вы, ребята, на самом деле не заботитесь о качестве, не так ли? Вы не заботитесь о качестве так, как это делаю я. Я тестировщик, значит, я забочусь о качестве». Кроме разработчиков, нет никого, кто бы создавал качество; они делают так, чтобы качество появилось. Без разработчиков ничего бы не появилось; у вас было бы нулевое качество. Это звучит довольно обидно, и когда вы обижаете их таким образом, они не хотят работать с вами». На прошлой неделе я был на конференции STAR East в Орландо. Ко мне много раз подходили тестировщики и тест-менеджеры и просили о помощи. Они хотели, чтобы я посоветовал им, как заставить программистов брать на вооружение "лучшие практики". Они хотели знать, каким образом повлиять на менеджеров, чтобы последние лучше работали. Они хотели знать, как навязать ту или иную процессную модель группе разработки. На одной из сессий тестировщики оплакивали качество требований, которые они получают от бизнеса (более того, повторяя общую ошибку, тестировщики говорили «требования», когда они имели в виду документы со спецификацией требований). В свою очередь, один из участников заявил, что когда он вернется на работу, тестировщики «возьмут на себя» обязанность написания требований. В ответ на просьбу о совете наиболее полезный ответ с моей стороны выглядит так: вы говорите о сферах ответственности, к которым не имеют отношения тестировщики-профессионалы. Мы не самые главные в проекте. Другими словами, мы не управляем им. Наша роль – предоставить ESP (не экстра-сенсорное восприятие, а расширенное восприятие на уровне органов чувств). Мы – это дополнительные глаза, уши, кончики пальцев, носы и органы вкуса для программистов и менеджеров. Мы – расширение их органов чувств. В наилучшем варианте мы выступаем в роли сверхчувствительных хорошо откалиброванных приборов – микроскопов, телескопов, сверхчувствительных микрофонов, штангенциркулей, масс-спектрометров и т.п. В роли детекторов взрывчатых веществ. Идея о том, что мы являемся приборами для тестирования, пришла ко мне от Кема Канера. Мы помогаем программистам и менеджерам увидеть, услышать и почувствовать то, что не всегда возможно ощутить в рамках типа мышления, который им требуется для работы. Послушайте, если вы действительно хотите улучшить качество кода и думаете, что сможете это сделать, станьте программистом. Я так уже делал. Могу заверить вас, что если вы тоже так сделаете, вы быстро обнаружите, какое упорство и напряжение сил требуется, чтобы стать по-настоящему отличным программистом, поскольку, как любой инструмент, компьютер расширяет границы вашей некомпетентности также быстро и мощно, как он повышает вашу компетентность. Если вы хотите управлять проектом, станьте менеджером проектов. Так я тоже делал, и многого добился в этой профессии. Попробуйте себя в этой роли, и вы скоро обнаружите, что качество – это ценность (value) для некоторого человека или людей, мнение которых имеет значение для вас, а ваши собственные стандарты качества становятся значительно менее важными, чем стандарты качества тех, кто на практике использует продукт и оплачивает счета за него. Станьте менеджером проекта, и вы почти сразу поймете, что решение о выпуске продукта может сопровождаться информацией о технических проблемах, но это исключительно бизнес-решение на основе баланса стоимости продукта, включая ошибки, которые угрожают стоимости продукта, и потерь от отказа выпустить продукт. Ни в одном случае мне не могло помочь то, что кто-нибудь, не программист и не менеджер проекта, обвинил меня в том, что я не отношусь к качеству с должным уважением; хуже могли быть только указания, как мне работать, которые давали бы люди, никогда не занимавшиеся этой профессией. И в роли программиста, и в роли менеджера проекта все, что я ждал от тестировщиков, — это информация. Когда я был программистом, я хотел знать о проблемах, которые тестировщики нашли в моем коде, и как они нашли их, о том, каким образом можно заставить продукт не работать, и о шагах и подсказках, которые мне нужны для того, чтобы направить своих усилия на самостоятельный поиск и устранение проблем. Когда я был менеджером программы, я хотел знать, что за информацию о продукте собрали тестировщики, как они конфигурируют продукт, как работают с ним, какие способы оценки продукта используют, чтобы получить эту информацию. Я хотел знать, какие, отличные от обычных способы работы продукта обнаружены. Я хотел знать о внутренних противоречиях продукта. Я хотел знать, как работает продукт в сравнении с другими продуктами, имеющимися на рынке, в чем он хуже, а в чем лучше. Я хотел знать, как продукт выглядит по отношению к ожиданиям, которые мы связываем с ним. Итак, вы хотите оказывать влияние на качество и на команду. Хотите знать, как положительным образом влиять на программистов?
Хотите знать, как повлиять на менеджеров?
Когда вас просят подписать решение о выпуске продукта, вежливо предложите подготовить отчет о выполненном вами тестировании, а утверждение решения оставьте тем, кто на самом деле имеет соответствующие полномочия, - собственнику продукта/ответственному за выпуск продукта. Хотите заслужить уважение команды?
В конечном счете, если вы тестировщик, перестаньте заниматься обеспечением качества. Станьте самым лучшим тестировщиком, каким только сможете: умелым исследователем, а не имитатором программиста или менеджера проектов. |