Антипаттерны в процессе разработки

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

Всё это сподвигло нас к анализу накопленного опыта и имеющихся материалов в области процессов разработки с акцентом на взаимоотношения в коллективах. Мы — это Евгений Филимонов и Андрей Клюйков, инженеры по тестированию КОМПАС-3D.

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

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

Что такое антипаттерны?

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

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

Делать этого мы, конечно, не будем. Вместо этого посмотрим на компиляцию наиболее заметных антипаттернов без учёта классификации.

Дисклеймер: считать статью провокационной, значит упустить её суть и вынести неправильные суждения; прежде, чем наносить кому-либо увечья, вспомните, что все персонажи вымышлены, а любые совпадения с реальностью случайны. Приятного ознакомления!  

Молчун

57d9e1071ae0b003786aaa69f9ff7c29.png

Характерные черты: накопал информацию, например, об ошибках и затаился до поры. Решил пока нигде не фиксировать или зафиксировать где-то в текстовом документе. Часто это могут быть критические ошибки, требующие в том числе значительных трудозатрат на исправление. Ну и, как водится, такой персонаж решает всё вывалить в тот момент, когда этого ждут меньше всего: перед подведением итогов итерации или вовсе перед релизом. Как результат: «удивленные» лица коллег и авральный характер работ по исправлению. Кстати, может относиться как к одному человеку, так и к целой команде.

Паникёр

7beb7219a5d97fd342ae49da9ffc6146.png

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

Одинокий волк

0491139eb022a7db59d7c665e01c515f.png

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

Беспомощная овечка

9d6cc320c3be570c8e914e58a04a0b2f.gif

Антиподом одинокому волку можно назвать беспомощную овечку. С одной стороны, большинство новоприбывших проходят эту стадию, но не все могут успешно её преодолеть, а задержаться на ней на неопределённый срок. Характерными чертами являются: безынициативность, страх принятия решений и ответственности. А перед высоким начальством такие люди могут упасть в обморок. Последствия очевидны, а наша задача — простимулировать всех к всестороннему развитию и принесению пользы обществу!

Голодный сотрудник

c351f94b6003ee337b0a8f56a4acec18.png

В данном случае сотрудник яростно отбирает в ментальной схватке с коллегами работу, например, задачи в JIRA. А коллеги, как ни странно, тоже хотят работать и от этого страдают. У такого человека нет чувства меры, он думает только о себе и требует всё больше работы. Из-за этого у коллег возникают простои в работе, они чувствуют свою бесполезность, а далее депрессия, алкоголизм, увольнение. Ну, а стоит голодному сотруднику уйти в отпуск, то вся работа встаёт.

Сытый сотрудник

9c5c5c4d52fc586682ccedfed941e391.png

Сытый же, как следует из названия, пресыщен жизнью и работой в частности. Он умеет сказать «нет» и всегда готов поделиться с коллегами задачками или, как он сам это называет, «Делегировать». Он снимает только «сливки» и берёт себе самую интересную работу. В некоторых случаях, у коллег возникает перегрузка, а ход работ замедляется или даже останавливается. А в крайних случаях имеет место дедовщина.

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

Сверхразум

4c1578366d4aae31f004b374dc1d2fbd.gif

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

Пляжный тестировщик

92ea0a78372cc735ddcfddb814cbf1de.png

Встречается и обратная ситуация.Например, известно, что при разработке задели половину всего функционала и требуется углубленное тестирование, но включается режим Пляжного тестировщика, который характеризуется слабым погружением в контекст и поверхностным отношением к задаче. Как результат, пропускаются ошибки, а общий уровень дисциплины падает. В целом такой режим в разной степени может быть свойственен всем нам, но иногда эта наша тёмная сторона может выйти из под контроля. В таких случаях часто говорят: «Его поглотил Бангкок», а Бангкок, как известно, забирает лучших.

Риск проявления такого антипаттерна особенно высок во второй половине пятницы, перед отпуском, новым годом и другими праздниками.

Золотой молоточник

98a1398fafa2ff0930874a2f598106c3.png

Основными чертами являются, например, привязанность к определённым инструментам и вера в их волшебную силу. Почти как у Тора и его молота. В результате не уделяется достаточно внимания другим инструментам, хотя они могут быть дешевле/лучше. Также при этом может передаваться неверный или не самый полезный опыт. Это у Тора нет альтернатив, а у нас же есть?!

Неудержимый

7aefe2065bebaaf40fdaa87859e83b46.png

«Неудержимый» же наоборот постоянно ищет и осваивает новые инструменты часто даже без понимания задач. Иногда процесс поиска инструментов проходит в ущерб текущей работе. Дополнительным нежелательным результатом действий неудержимого является возможность изобретения велосипеда (затраты времени на получение и освоение аналога уже существующего решения) или квадратного колеса (получение решения хуже существующего). Иногда он даже изобретает атомную бомбу (решение разрушительного рода), но может это не так уж плохо? Антипаттерн золотого молотка и неудержимого в целом относится ко всем ролям разработки, а также встречается в сферах, далёких от IT.

Отложенный тестировщик

f9a5b2b1c7b79e0f753831a6bf035b92.png

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

Спидраннер

5ade36e9dbc9ea67f64c7f0c79a95bf9.png

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

Староверы тестирования

07a1f71474c45095aa3f86eb9daeddb3.png

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

Свидетели ИИ

ef79dc564708e9d1428df0f6053b280a.png

Но бывает и обратная ситуация, когда автотесты становятся своего рода фетишем. А всё потому, что менеджмент часто занимается поиском волшебной палочки, а её же не существует. Система автотестов становится переоцененной в ущерб другим системам. Имеет место вера в большую красную кнопку. Дескать, мы создаем систему автотестирования, увольняем всех тестировщиков за ненадобностью, т.к. теперь у насть БКК. Но это утопия. В результате стремления к такому подходу пропускаются ошибки, растут затраты на содержание инфраструктуры, а у тимлидов ночью возникают сильнейшие позывы слиться в master-ветку.

Токсичный сотрудник

2430b6d0f045e6f3a8b0e76abeb22eea.png

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

WOW-чик

1c5a22b3d10d206797aae03f8c795cac.png

WOW-чик же обратен по своей сути, любое действие коллег или коллеги вызывает у него щенячий восторг и приступ безудержного оптимизма. Он становится своего рода прилипалой в коллективе. В результате им поддерживаются чужие, зачастую неудачные инициативы в ущерб своим. Такому человеку часто не хватает жёсткости, и он не может отстоять свою, часто более рациональную точку зрения. Антипаттерны токсика и WOW-чика в целом распространены в разных сферах деятельности.

Сверхновая звезда

f771f05782c8344bd842906b3664eaa6.png

Это очень интересный антипаттерн. Его основные черты — это гиперактивность и излучение огромных порций энергии (или задач в JIRA). Такому человеку сложно долгое время держать в себе свои мысли и идеи. В результате происходит засорение и перегрузка JIRA и каналов связи (вплоть до воспламенения и подрыва), имеет место явление информационного шума. А в окружении сверхновой ни у кого нет проблем со свободным временем.

Чёрная дыра

405eddf23560c83387e606da5fd7e44f.png

Чёрная дыра по своей сути обратна сверхновой. Активность у неё низкая (по крайней мере в видимом спектре). Поглощает она безвозвратно (в т.ч. планеты, звёзды и задачи в JIRA). В результате происходит рост технического долга, а кванты информации не покидают горизонт событий. И для стороннего наблюдателя никакого движения в области действия черной дыры (но это не всегда означает, что движения нет). Только самые отчаянные колонизаторы планет рискнут селиться рядом с чёрной дырой. Космические антипаттерны характерны не только для сферы IT. 

Самурай

168be76274c411223ac997dbcd60db7b.png

Говорят, у самурая нету цели — только путь. А цель уже определяет его господин. Данный паттерн характерен тем, что явная цель по сути отсутствует. Если говорить про коллектив таких самураев, то цели в результате могут возникнуть у каждого свои. Иногда, путь самурая может быть оправдан для придания импульса, но в долгосрочной перспективе такой подход может сыграть злую шутку. В результате можем получить низкую вовлечённость участников процесса, а также демотивацию от непонимания происходящего. Результаты могут не оправдать наших смутных ожиданий, движение может стать бесцельным блужданием, а смысл жизни навсегда утрачен.

Полировщик целей

5a749aefb55bd748c81519c5442e3a3b.gif

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

Связист

750f397e7a19bb7da7cbc847a5850356.png

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

Галактический совет

2842730c155ad73212013a06c17162ff.png

Галактический совет, напротив, характеризуется длительными совещаниями с большим количеством участников. Часто в рамках таких мероприятий для 5-минутного выступления приходится ждать 1,5 часа. Как правило, этого времени бывает достаточно для того, чтобы перейти в режим энергосбережения, иногда сопровождающегося горизонтальным положением тела. В таком режиме даже самая нужная и полезная информация с большой вероятностью будет утрачена безвозвратно. В конечном счёте полезный результат подобных собраний не гарантирован или даже маловероятен. В самых опасных случаях может привести к пропуску обеда или даже ужина, что в свою очередь приводит к голоду во всех уголках галактики!  

Армейская система

8542c9a1d43a975e0e0d6567e62f920a.png

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

Сверхгибкая оргструктура

5cf2de23ef6e2c66a6b003e4c7489c43.png

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

Результаты опроса

С перечислением антипаттернов мы закончили, пришло время поговорить об опросе, анонсированном в начале статьи. Как видно из результатов опроса, приведенного ниже, лидирует пара Одинокий волк / Беспомощная овечка, далее идут Молчун / Паникёр и Связист / Галактический совет.

Есть стойкое убеждение, что значительную часть негативного влияния как минимум наиболее «популярных» антипаттернов можно устранить без применения того самого вселенского разума.

Отдельно интересно то, что вариант ответа «Нет заметного проявления антипаттернов» далеко не самый популярный, что некоторым образом настраивает на определённый лад.

ed7a597c5faf40299ff32bac8c528749.PNG

Заключение

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

© Habrahabr.ru