31 августа 2012

Жизненное, про ресерч


Этот пост описывает реальные события.
Имена людей, названия вендоров, торговые марки специально изменены по соображениям профессиональной этики.


Все началось с того, что ко мне подошел менеджер Самого Главного Проекта и врубил в ситуацию.
А за две недели до этого я видел тестировщика приписанного к этому менеджеру пишущим код (!!!) в одной Очень Дорогой Среде Разработки от Корпорации Зла.
История была печальной - при каждом релизе Самого Главного Проекта тестировщику нужно было тестировать проекта на совместимость с программно-аппаратными продуктами других вендоров - это фича такая.
Нюанс заключался в том что тестировать приходилось каждую версию программно-аппаратного продукта, а таковых только у одного вендора было 9, а вендоров с полдюжины.
И все это на каждой операционной системе из списка поддерживаемых.
То есть простая комбинаторика говорит нам о том что деятельность такая успеет надоесть быстрее чем закончится хотя бы один раз.
И для каждого нужно подготовить тестовое окружение, накатить драйвера, накатить софт, развернуть минимальную схему функционирования - дадад, тут вам не здесь, это вам не селениумом на ajax-овым формочкам тыкать!!!!
Если упростить ситуацию до цифр - тестировщик на тестирование этих 9 версий тратил 2 недели в режиме полной загрузки.
Дадад,я не гоню - можно подумать что он по идее больше ничем и заниматься не будет кроме тестирования этих программно-аппаратных продуктов, но НЕТ!!! -  просто тестировали не каждый релиз. Отчего и выхватывали иногда мотивационных пряниокв от Кастомеров.
Еще очень повезло что тестировали на виртуалках, а не на "физике".
Менеджер просил слезно - подумай, очень нада!
Ну оно и так видно что очень надо - на Самом Главном Проекте работает Самый Главный Тестировщик, который регулярно занимается не пойми чем по 2 недели.
Так начался этот проект по R&D.

На полной мощности я приступил к проекту только спустя полтора месяца после разговора.
Написал прототип который просто имитировал логику работы, провалидировал прототип, понял что можно начинать писать внутренности.
И вот там и начались проблемы, но опять же не сразу.
Все шло хорошо, пока тестирование проходило на Самой Древней Операционной Системе - там все работало.
Но как мы помним - операционных систем целый спектр.
И вот тут из кустов показался первый рояль - не все операционные системы хотели работать с подключенными программно-аппаратными продуктами с первого раза - нужно было несколько раз отключить-подключить его к системе.
В этом месте я бился головой очень долго.
А потом вспомнил, что есть еще и другие продукты для виртуализации.
Откат в исследовании на несколько шагов назад, повторяем все тоже самое на другом гипервизоре и .... все работает. Но опять же на Самой Древней Операционной Системе.
Как говорят в одном из моих любимых подкастов "А потом попробуйте со всем этим взлететь...".
В общем не взлетело.
Это был очень поучительный момент для меня лично.
Я понял на органическом уровне почему не каждый R&D проект заканчивается успехом.
Это был урок для меня. 
Очень сильный урок. 
3 месяца работы с двумя гипервзиорами закончились ничем  - тестировать нужно было продолжать руками.

Я написал отчет по исследованию на пару страниц, отправил всем Заинтересованным Лицам.
Все, проект можно было считать закрытым - причина провала была описана, локализована и заключалась она во взаимодействии гипервизоров и Операционных Систем.
Признаваться самому себе в том что ты не справился  - нелегко.
Но в тот раз было как-то спокойно - я знал, что я постарался сделать все.
И все знали.
И никто не сказал, что это время было потрачено в пустую.
Жизнь пошла дальше,а через полтора месяца я ушел работать в другую фирму.
Прошло три месяца после моего ухода, и ко мне в чат постучался Самый Главный Тестировщик из Самого Главного Проекта с предыдущего места работы.
Он сказал что вышла новая версия гипервизора, в которой вроде бы  не наблюдается тех глюков которые были ранее.
Я сказал нужно достать код с полки, попробовать.
Но этом все и кончилось.
Я не верил, что оно взлетит - слишком уж минорная была бага с точки зрения вендора гипервизора.
А вчера мне написал мой падаван из той фирмы и сказал, что оно взлетело.
Я сначала даже не понял про какой проект он говорил.
И что-то внутри меня щелкнуло.Переключилось даже.

К чему я это все.
1. Не все проекты R&D будут успешными. Это нужно понимать до того как вы их начинаете.
2. Из неудач выносится больше уроков чем из побед. И я это пишу потому что оно не взлетело тогда.
3. Пока есть человек которому ЭТО нужно вам есть на кого оперется. Имменно он - Самый Главный Тестировщик - сдвинул эту тему. Напомнил всем что надо попробовать на новом гипервизоре.
4. Ведите журнал исследования. Ведите, блеать!!! И перечитывайте его регулярно на трезвую голову. Вы можете замкнуться в своих исследованиях на одном пути, чего делать нельзя.
5. Выкладывайтесь!На 250 %! Если вам это исследование не интересно - оно не ваше.

PS. Viva la Tokenizer!!!