[Об авторе: Сергей Максюта — руководитель SQA Software Engineering Lab в компании Samsung Electronics, по совместительству — руководитель testclub.com.ua]
Всем привет!
Каждый айтишник не раз задавался вопросом, как улучшить программный продукт или процесс. Специалисты всё чаще обращаются к практикам TDD, ATDD и BDD. Но, как показывает жизненный опыт, иногда лучшее — враг хорошего.
Предлагаемая вашему вниманию азбука родилась у меня в голове после 11 лет опыта работы с различными проектами. Она поможет отделить зерна от плевел и с чувством юмора относиться к процессной части разработки и тестирования ПО. Прошу строго не судить :)
Итак:
Amazing DD — вся команда начиталась теории от людей, которые только ее и продают, и у всех горят глаза. В случае удачи они начинают продавать ее же себе подобным. В случае фейла объясняют ситуацию незаконченным глубинным исследованием.
Behavior DD — «кто девушку платит, тот ее танцует». Заказчик говорит, как жить и что делать, что выливается в мнимую приоритетность и прочный забитый болт на связующие звенья программного продукта. Лечится технической прокачкой заказчика.
Crush DD — «шеф, все пропало, гипс снимают, клиент уезжает!» И вроде делали все правильно, и новейшие подходы использованы, а в результате на демо все падает быстрее, чем российские акции на фондовых рынках. Полезно использовать для воспитания командного духа и выявления скрытых потенциалов.
Defect DD — «главное — налажать, а потом начать срочно исправляться». Внушающие цифры метрик в разрезе дефектов, версий дефектов, количества дефектов на строку кода обязательно приведут к наказанию невиновных и награждению непричастных.
Endeavor DD — «неважно, что ты делаешь и что в итоге получится, главное — стараться!» Типичный подход восточных IT коллег, где процветает кастовое деление, модель яНачальник — тыДурак и принцип правоты по старшинству и громкости звания.
Fish DD — «миллион забрасываний спиннинга, и результат придет». В опытных руках — отличный инструмент, который минимизирует количество выписываемых грузком парабол, обучит команду «включать окуня», и в итоге даст спокойствие внутри коллектива и отличный продукт заказчику.
Godzilla DD — противоречивый подход, основанный на понимании вездесущего хаоса и разрушения, которые в итоге приведут мир в состояние генератора лучей добра. В команде реализуется путем выбора сумасшедших, новых, проверенных технологий в кругу 5 новичков, которые впоследствии и будут теми самыми добропродюсерами.
Hero DD — даешь 16 часов работы в день, по выходным и праздникам, на Новый год и юбилей свадьбы. Результат — мораль понижается, качество уверенно обгоняет США на пути в пропасть, ну, и диплом героя на доске почета.
Idiot DD — порой сумасшедшие идеи и методы, неподвластные пониманию среднестатистическим умом, в умелой комбинации с ограничениями и предусловиями дают результат. Порой... А пока пойду рыбу в газету заверну.
Joint DD — редкое, но очень приятное явление взаимопонимания, отдачи, результата и вселенского счастья. Вздрогнем! До дна!
Knee DD — разработка на коленке, передача информации через третьи руки, эфемерные источники и курилки крупных корпораций. Два пути — либо в космос и вселенское призвание, либо стертые колени и эффект коврового ожога.
Love DD — этакий няшный подход, применяемый неопытными менеджерами с целью доказать, что мир, бог, жизнь, репозиторий и IDE есть любовь, а мы все братья и сестры, коммитеры и ревьюверы, Чуки и Геки современности.
Miracle DD — обычно идет в паре с Love DD, образуя порочный круг широко открытых глаз, безответственных персоналий в комплекте с отсутствием приоритетов, важных для заказчика. Чудо — оно такое неисследованное!
Nube DD — даешь, молодежь! Важно не забывать использовать итеративный подход, давая шанс начинающим, но при этом поставить над ними начальника с камазом пряников и фабрикой по производству кнутов. С каждой итерацией пряников давать меньше, дабы сформировать резервный фонд и выписывать премии особо одаренным, и при этом кнут повесить в нарядной рамке и проводить обряд поклонения всей командой.
Oyster DD — о, а этот подход не каждый выдержит. Плотные ограничивающие рамки, среда обитания, похожая на комок соплей, и титанический труд для расширения и открытия. А ведь именно в таких условиях и вырастают жемчужины. Или на стол, с лимончиком.
PinaColada DD — новомодный тренд для непосед-профессионалов. И не важно, Австралия, Индия, Таиланд, берег океана в Калифорнии или кофишоп в Голландии — умение найти WiFi и близких по духу людей порождают команды, способные создавать простые и удобные в использовании программные продукты.
Quest DD — частое явление применения подхода в проектах без четких требований с завышенными ожиданиями результата. Сродни прохождению всех этапов, нахождению подсказок, применению найденных артефактов и планированию очередного, более увлекательного квеста.
Roundeye DD — «это мы не проходили, это нам не задавали, парам-пам-пам». Срочная задача — нет, не слышал. Это правда нужно на вчера? Оопс. Сроки завалены, требования не реализованы, продукт не работает. Ой, так это же не наша вина)
SuperMario DD — проекты без видимой конечной цели, с серьезными сложностями, неожиданными скрытыми узкими местами, шоу стопперами, однако время позволяет все изучить, настроить и дойти до логического завершения. И, когда ты уже готов почивать на лаврах славы, падает exception «Sorry, Mario, but your princess is in another castle». Life is unpredictable, man.
Tongue DD — все на словах, ничего в действии. Языком болтать — не мешки ворочать. Главное — красиво описать, убедить всех в целесообразности, а потом все неудачи свалить на кого угодно, причем сделать это также красиво, как и начальную презентацию.
Unique DD — выбирается несведущая, малограмотная аудитория, для которой делается представление уже работающей, зарекомендовавшей себя технологии как суперновой, уникальной и неповторимой. Помните: все новое — это хорошо забытое старое. Используется для повышения ЧСВ, наряду с выбиваением бонусов.
Vibe DD — такое ощущение, что в команде работает постоянный дизель-генератор, или команда молотоотбойной бригады. Шум, дрожащие руки, время на отдых от работы увеличивается вдвое, нервы мигрируют и превращаются в голосовой поток, который все равно будет незамечен.
Wave DD — наиболее применимый процесс для беспроцессных команд. Или аврал, или расслабуха, третьего не дано. Использование обязывает помнить прописную истину про то, что жизнь — это зебра, и в конце будет обязательное всепоглощающее межъягодичное пространство.
Zebra DD — подвид Wave DD, с претензией на понимание процесса формирования цветовой последовательности, ширины полос, группировки их в сеты и изучение неровности поверхности отображения.
XRay DD — команда — как на ладони, каждый шаг известен наперед, полное психологическое понимание потребностей индивидуумов менеджером, который, однако, отгородился стеной, дабы излучение было точечным и дозированным.
Youtube DD — ведь все есть в видеоуроках, и я гуру обучения с видеорядом в голове. Фундаментальные знания ни к чему, все сделано до нас, и нужное видео или скачаем, или торрент.
Практикуйте Driven Development, и будет вам счастье!