пятница, 29 января 2010 г.

Огранизация команды тестирования

Успешность работы команды тестирования (QA team) во многом зависит от её лидера (QA lead). Неоспоримо, что большую роль играет профессиональный и личностный уровень членов команды, однако не стоит недооценивать и то, насколько успешной её может сделать хороший QA Lead (в дальнейшем - лидер).
Я попробовал сформулировать несколько принципов, которые должен использовать лидер в своей работе.

1. Team spirit
Лидер - часть команды. И подчинённые должны это видеть. В противном случае они просто потеряют желание работать в такой команде и приносить пользу проекту.
Многие лидеры забывают, что ступив на чуть более высокую ступень и получив приставку Lead к должности, они по прежнему остаются QA.

2. QA Lead – tester…
Лидер и сам должен тестировать. Это не значит, что он обязан тратить всё своё время на тестирование. Однако следует уделять задачам тестирования хотя бы некоторую часть (в зависимости от размера команды) времени.

3. Writing Test Cases
Лидеру не стоит оставлять написание тестов исключительно подчинённым. В противном случае члены команды могут посчитать написание тестов менее важной задачей, что приведёт к ухудшению тестового покрытия в качестенном и количественном выражении. В добавок к этому, регулярное написание тестов позволит чётко представлять состояние базы тестов на проекте.

4. Learn Together
Лидер должен избегать тенденции к исследованию новой функциональности первым. Члены команды должны видеть, что их лидер изучает функциональности и учится вместе с ними наровне.

5. Everybody makes mistakes
Лидер должен обличать свои ошибки. Ошибки делают все. Это потребует некоторой смелости, поскольку никто не любит выглядеть неподобающим образом и не каждый осмелится на такое.

6. No Monopoly on Ideas
Лидер просто обязан избегать "монополизации" идей. Он должен иногда давать право членам команды брать инициативу на себя. Также в отдельных случаях необходимо поощрять принятие решений (конечно если компетенции членов команды позволяют принимать решения).

7. Trusted team
Лидер должен создать команду, на которую он сможет полностью положиться. Да, лидер должен быть осторожен, но не настолько, чтобы не вовлекать своих подчинённых в решение сложных задач. Лидер должен таким образом организовать взаимодействие с подчинёнными, что они почувстуют свою значимость - факт, что они делают свой вклад в проект.

8. Input Appreciation
Лидер должен поощрять не только выдающиеся результаты, но и просто хорошую работу. Даже простого упоминания на собрании хватит, чтобы члены команды почувствовали себя значимыми. Лидер должен ставить членам команды цели и вознаграждать за их достижение.
9. Proactivity is Welcomed
Лидер должен приветсвовать проактивность. Проактивность должна вести к расширенным полномочиям.


10. No Knowledge Ownership
Лидер должен избегать "приватизирования знаний". Каждый член команды должен знать большую часть функциональности системы (насколько это позволяет размер проекта - в идеале 100%). Также каждый член команды должен хорошо ориентироваться во всей базе тестов - принцип тот же.