Про Тестинг: обеспечение качества, тестирование, автоматизация

Раздел: Обеспечение Качества > Статьи специалистов > Изменение процессов и процедур

Изменение процессов и процедур

"Не могу работать - у меня процедуры"...

В данной статье речь пойдет не совсем о тестировании, а точнее совсем не о тестировании, а скорее об организации любой работы в принципе. Не секрет, что в ходе разработки любого проекта в проектной команде существуют (иногда формируются произвольно, но чаще навязываются сверху) некоторые "процедуры" - это правила составления отчетов о работе, написания комментариев в код, документации, создания описаний по настройке продакшн систем, инсталляций продуктов (да, не все инсталляции интуитивно понятны. Если вы не сталкивались с такими продуктами, для инсталляции которых нужно читать доки - считайте вам повезло). У любых "процедур" помимо прямого положительного есть еще и побочное отрицательное действие - поглощение времени, которое можно было бы потратить на выполнение других задач. Собственно целью этой статьи является оценка времени, которое проектная команда теряет на выполнение таких "процедур" и некоторые выводы, которые из этого следуют.

1. Упущенное время...

Итак, предположим у нас есть коллектив из N человек. У каждого есть некоторое среднее количество процедур k, которые он выполняет ежедневно сам (отчеты о работе, комментарии в код) и некоторое количество процедур l, которые он выполняет коллективно и еженедельно (митинги с командой, всяческие ревью и т.п.). На ежедневные процедуры он тратит t времени в день, а на еженедельные T*N времени (нужно повзаимодействовать с каждым участником). Если взаимодействовать каждому с каждым то это T*((N-1)!), но такое взаимодействие на митингах и в других групповых процедурах редкость (уходит слишком много времени), поэтому остановимся все-таки на оценке T*N. Итого, в неделю коллектив тратит k*5*N*t времени на индивидуальные процедуры и l*T*N*N на коллективные. А в месяц это будет (k*5*N*t + l*T*N*N)*4 (грубая оценка, но на то она и "оценка") или (k*5*t + l*T*N)*N*4. Т.е. в коллективе до 5 человек зависимость скорее линейна, а 5 и более - квадратична (это к вопросу об эффективном размере групп). Простой пример примера: 5 человек, 2 еженедельных митинга по 12 минут на человека, и 0,5 часа ежедневно на отчеты. Получаем (0,5*5*1+0,2*2*5)*5*4 = 90 часов. Неплохо, да? Но это только самое необходимое... для справки среднее количество отработанных сотрудником часов в месяц = 168. Т.е. в коллективе из 5 человек 0,5 человека постоянно занята "процедурами" вместо работы.

Не хотите уделить больше внимания тому, чем занимается эта часть?

2. У меня было еще столько замечательных идей...

Кто не слышал от начальника что-то вроде: "Давайте вы в вашей команде будете делать вот этот маленький отчетик каждый день (выкладывать результаты работы на шару, саппортить документ - нужное подчеркнуть) - это ведь займет у вас всего 5 минут", тот скорее всего сразу начал работать начальником и говорит это сотрудникам сам :) Давайте представим эти "+5 минут". Предположим, что процедура новая (рационально продуманное изменение, как правило, не требует дополнительного времени) - скорее всего уйдет не 5 а 10-15 минут (для оценки используем 15). И в месяц добавит 0,25*5*20=25 часов. Вроде не много - но уже 6 таких "процедур" это +1 непрерывно "процедурящий" сотрудник.

Вариант номер 2: "Нам нужны ежедневные командные митинги!". т.е. добавим еще 3 митинга в неделю - 3*4*0,2*5*5=60 и оппа... один человек из 5-ти полностью "процедурит"... причем в этом варианте зависимость от количества человек в коллективе квадратична(!), т.к. нужно больше времени на митинг чтобы услышать каждого (и принять решение), а с другой стороны - больше людей принимают в митингах участие.В коллективе из 10-ти человек это было бы 3*4*0,2*10*10=240 часов.

3. А как правильно?

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

  • Изменение как правило затрагивает уже существующую процедуру, а значит у сотрудников меньше вероятность что-либо забыть, перепутать и т.п.
  • Не потребуется или потребуется меньше дополнительного времени на выполнение (иногда - освободится время, если вы решите что какая-то процедура больше не нужна).
  • Список "процедур" будет всегда актуален - ясно чем занята команда.

Естественно, единого "правильного" рецепта для всех - нет. Здесь есть только некоторые грубые оценки затрат времени на рутинные задачи, не связанные напрямую с производством конечного продукта или услуги. И всегда полезно представлять "обратную сторону медали"


Автор: Владимир Антонов

Наверх