Показаны сообщения с ярлыком мозг раком. Показать все сообщения
Показаны сообщения с ярлыком мозг раком. Показать все сообщения

пятница, 9 апреля 2010 г.

IP в шестнадцатеричном виде

С недавних пор у нас на собеседованиях обязательным является вопрос на знание того, как выглядит IP-адрес (IPv4). Обусловлено это, во-первых, тем, что специфика нашей системы требует таких знаний, хотя раньше этот факт не наталкивал нас на такие вопросы ибо все думали, что в наше время человек варящийся в сфере ИТ не может не знать как выглядит IP-адрес, а во-вторых, после случая с одним кандидатом который на просьбу написать какой-нибудь IP-адрес из головы написал дословно 632.7201.12. Скажу Вам, что многие кандидаты приходящие даже не на 30 000 пишут хоть и правильный IP-адрес, но со скрипом.

Так вот придя с одного собеседования, зашёл разговор о том, что кандидаты не знают, как выглядит IP-адрес и один гуру, сказал, а чтобы Вы делали, если кандидат написал IP в виде 7f000001. По сути ничего необычного, всего лишь IP-адрес в шестнадцатеричном виде, но я лично не мог подумать или просто никогда не задумывался, что браузеры спокойно "хавают" такое написание….

К примеру:
localhost - http://0x7f000001
Я.Ру - http://0x4d581508

четверг, 25 февраля 2010 г.

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

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

Ну вот объясните мне люди добрые, зачем же называть задачу - тикетом, почему нельзя использовать, например, "методом свободного поиска" (с) Баранцев вместо эксплорайшн или эксплоратори?!


Я конечно понимаю и отчасти соглашаюсь с людьми, которые говорят "куда ты прёшь без инглиша в IT", но опять же, тот факт, что мы развиты меньше наших англоговорящих коллег в области того же тестирования, не значит, что мы должны превращать гидромассажную ванну в "джакузи"...

Может коряво сформулировал, писатель из меня некудышный :) но прям режет ухо когда мне говорят про всякие там тикеты в системе баг трекинга....

Кстати....
Для русского языка, напомнил президент Государственного института русского языка имени А.С.Пушкина академик Виталий Костомаров, типичны заимствования, которые мгновенно входят в систему речи. Об этом писал еще Пушкин: "Русский язык общежителен и переменчив". Однако к таким неизбежным заимствованиям следует относиться осторожно и обдуманно.
По мне, так использование чёрт бы его побрал :) тикета необдуманно ибо масса слов которые могли бы быть использованы с большей пользой.
По словам академика, сейчас же невооруженным глазом видна массовая "американизация" языка, который просто не успевает "переваривать" новые слова и выражения.
Я, кидайте же в меня камни, один из тех, кто с трудом успевает переваривать новые слова и выражения. Хотя скорей не хочет, чем не успевает.

суббота, 30 января 2010 г.

Конвертация базы данных MySQL из одной кодировки в другую

Начальным условием является наличие базы MySQL в кодировке latin1 данные из которой криво отображаются при просмотре, такая ситуация, например, возникает при установке Mantis. Кодировка как правило обнаруживается не сразу, но т.к. в базе данных уже есть данные, то выход один - конвертировать. Базу требуется переконвертировать в UTF8 дабы решить вопрос с отображением.
  • Создаём бэкап вашей базы выполняя команду: mysqldump -uUSER -Pport -hHOST -pPASSWORD > dump_name.sql
  • Открываем, в моём случае Microsoft Office Word 2003
  • Открываем в Word'е дамп базы, т.е. dump_name.sql
  • Word предлгает выполнить преобразование открываемого файла из формата «Кодированный текст»
  • По умолчанию Word предлагает выбрать кодировку Другая -> UTF8. Как правило дамп базы создаётся в кодировке UTF8 в независимости от кодировки данных.
  • Соглашаемся
  • Документ открылся и мы видим «кракозябру» в тех местах где должны быть кириллические символы
  • Переходим в пункт меню Сервис и далее Исправить повреждённый текст...
  • В исправленном тексте заменяем все «latin1» на UTF8
  • Сохраняем исправленный документ
  • Создаём базу выполнив скрипт: CREATE DATABASE `bd_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 
  • Заливаем наш исправленный дамп в базу выполнением команды: mysql -uUSER -Pport -hHOST -pPASSWORD bd_name < dump_name.sql
Наслаждаемся!

В случае если вам требовалось конвертировать базу из latin1 в cp1251, то соответственно необходимо выполнять шаги с заменой UTF8 на ср1251.

вторник, 12 января 2010 г.

Что же такое баг?!

Давайте, наконец, разберёмся, что же такое баг.

Теория
Баг (от англ. bug - насекомое, жук; жарг. дефект, ошибка, сбой в аппаратуре, компьютерной программе) - выявленная ошибка в программе или в документации.

Википедия говорит:
«В программировании баг (англ. bug — жук) — жаргонное слово, обычно обозначающее ошибку в программе или системе, которая выдает неожиданный или неправильный результат.»
Зачастую можно услышать и употребление этого термина в женском роде, т.е. бага, но я предпочту этот вариант использования отмести и забыть про него, т.к. считаю режущим при произношение слух.


Из истории возникновения
По легенде, 9 сентября 1947 года учёные Гарвардского университета, тестировавшие вычислительную машину Mark II Aiken Relay Calculator, нашли мотылька, застрявшего между контактами электромеханического реле. Именно тогда Грейс Хоппер произнесла этот термин. Извлечённое насекомое было вклеено скотчем в технический дневник, с сопроводительной надписью: «First actual case of bug being found» (англ. «Первый фактический случай обнаружения жука»). Этот забавный факт положил начало использованию слова «debugging» в значении «отладка программы».

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

Действительность
Многие рекомендуют использовать термин ошибка, но как быть в случае, если, например, сутью bug report’а, занесённого тестировщиком в систему отслеживания ошибок, является не отчёт об ошибке, а отчёт с дополнением?! Думаю, не стоит приравнивать определения термина баг к определению термина ошибка.

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

Если же брать определение в виде баг - это когда фактический результат не равен ожидаемому результату, то на защиту этого варианта встаёт ГОСТ Р 51904-2002 «Программное обеспечение встроенных систем. Общие требования к разработке и документированию» который гласит:
«8.3.6 .......
в) результаты тестирования: гарантировать, что результаты тестирования корректны и что расхождения между фактическим и ожидаемым результатами объяснимы»
отсюда можно сделать вывод, что всякое необъяснимое расхождение между фактическим и ожидаемым результатами и есть баг! Хотя в этом случае возникают вопросы, например «А если расхождение будет объяснимым, то уже не считается багом?»… наверно не стоит буквально понимать слово «необъяснимое», авторами видимо имеется ввиду не задокументированное расхождение, т.е. расхождение которое нельзя объяснить согласно ТЗ и прочей документации на систему. Многие специалисты также говорят: «Не всегда. Пользователь может ожидать от программы всего чего угодно, но это не значит, что если он не нашел этого значит это баг программы. Бывает и такое, что пользователь плохо умеет считать и ожидает, что результат будет 2+2=6, а ему выдает 4 . Разве это баг?». Осмелюсь возразить и в доказательство скажу, что любая система производится для кого-то и для каких-либо нужд, т.е. если систему производят для пользователей считающих, что 2+2=6, то в такой системе результат 4 будет являться багом. Из выше сказанного можно сделать вывод, что баг – это расхождение фактического поведения системы и описанного в ТЗ, АЗ, спецификации и т.д., т.е. верного, принятого верным...

Что касается ожидаемого результата, то не стоит забывать и о «Вообще-то ожидаемый результат, это не результат, который ожидает пользователь, а результат описанного в документации действия, с описанным методом «появления» результата. Если ожидаемый результат противоречит логическому методу решения проблемы, то это баг документации. Т.е. если в документации написано 2+2=6, и метод получение заявлен арифметический результат двух слагаемых, то понятно, что это будет ошибка документации т.к. используя данный метод и слагаемые, примёненные в нем получается другой результат.»

Вы, наверное, скажите: «А если нет ни ТЗ, ни АЗ, ни спецификации, нет принятого верным поведения, и заказчика даже нет…». Если же нет заказчика или разработка ведётся для себя и точность действий системы не критична, то в этом случае при тестировании необходимо пользоваться логикой и тогда баг – это расхождение видения, понимания, подсказок логики тестировщика с реально работой системы. Если же заказчика нет, но систему планируется продавать, то суть определения термина баг будет ясна из цитаты «Всё же видимо рынок как-то изучался, технико-экономическое обоснование прикидывалось. И какое-то (пусть и не формализованное описание) есть. А уж если все готово, и настало время выходить на рынок - какой-то минимальный комплект документов делать придется. Где и будет описание - что продукт делает.»

Итог
Подводя итог всему вышесказанному и исходя из определения термина «качество», сформулированного Филиппом Крухтеном, звучащим так: «Качество - это соответствие продукта ожиданиям пользователя (заказчика)», смею обозначить наиболее приемлемое, по моему мнению, определение термина баг, звучащее так: «Баг - это когда фактический результат не равен ожиданиям пользователя (заказчика)». В подтверждении такого определения цитирую IEEE Std 829-1983
«Тестирование — это процесс анализа ПО, направленный на выявление отличий между его реально существующими и требуемыми свойствами (дефект) и на оценку свойств программного обеспечения.»
Т.е. очевидно, что требуемые свойства - это ожидания пользователя, т.к. всякий продукт делается для кого-то. Но подведя аналогичный итог на форуме с обсуждением проблемы термина баг, я с толкнулся с возражениями выраженными в приведении примера:
«Пусть пользователь требует реализовать функцию тангенс, как известно tg(x)=sin(x)/cos(x). Чем мы и воспользуемся, реализуя сначала sin и cos. Как хорошие разработчики мы проводим модульное тестирование и проверяем функции sin и cos. Но как мы можем найти в них баг если пользователь не высказал и не обозначил другим способом свои ожидания по этим функциям? Никак. Аналогия с реальными системами понятна?»
Но эти возражения, по моему мнению, не совсем отражают действительность, т.к. в приведённом примере функции синус и косинус должны работать так, чтобы удовлетворять конечному требованию... т.е. «если пользователь не высказал и не обозначил другим способом свои ожидания по этим функциям», то они должны работать так, чтобы результат операции sin(x)/cos(x) был равен именно tg(x), а не ctg(x) например.

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


Источники

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

Что же такое юзабилити?!

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

Прочитайте эти предложения:
  • «Юзабилити этой программы стоит улучшить».
  • «У этого сайта недостаточно хорошее юзабилити».
  • «Это совершенно неюзабильный интерфейс».
Если по прочтении:
  • вам не хочется смеяться или плакать,
  • ваше лицо не искажено гримасой возмущения или скорби,
  • внутри не пылает огонь ненависти и презрения,
  • вы не наблюдаете у себя ни одного из вышеперечисленных признаков, но по-прежнему считаете себя специалистом,
  • вы вспомнили, что вставляете подобные обороты при каждом удобном случае,
поздравляю — вы дилетант, потому как только дилетант может без всяких душевных страданий и с ужасающим постоянством использовать термин так, как он не может использоваться в принципе.

Определение по ISO 9241-11 гласит:
Юзабилити — степень эффективности, трудоемкости и удовлетворенности, с которыми продукт может быть использован определенными пользователями при определенном контексте использования для достижения определенных целей/мотивов.
Usability — the extent to which a product can be used by specified users to achieve specified goals with efficiency, effectiveness and satisfaction in a specified context of use.

Простого взгляда на этот текст достаточно, чтобы понять, что:
  1. Юзабилити — это степень нескольких показателей. Юзабилити не может быть хорошим или плохим. Юзабилити нельзя улучшить или ухудшить. Юзабилити можно повысить или понизить.
  2. Не существует никакой общей степени юзабилити. Термин содержит в себе метрики, которые вполне могут противоречить друг другу (например, скорость обучения и скорость работы не могут быть равновысокими).
  3. Юзабилити — не синоним слов «удобство», «дружелюбность», «интуитивность», «понятность» и им подобных.
Возьмем для примера «дружелюбность». По определению Ушакова это: 
Дружески относящийся к кому-л., доброжелательный, приязненный.
Ни намека на степень эффективности, трудоемкости и удовлетворенности. Иными словами, у слова «юзабилити» нет синонимов (и не будет до тех пор, пока уважаемое сообщество не договорится вкладывать в любое понравившееся ему слово — мне, например, всегда нравилось слово «кокамидопропилбетаин» — ровно тот же смысл, что и в слово «юзабилити»).

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

Источник

среда, 30 декабря 2009 г.

Чёрные и белые обезьяны. Некоторые выводы из многолетних наблюдений в естественных условиях

Бороздя просторы всемирной паутины в поисках чтивы об отношения в коллективах и в особенности коллективах сферы IT наткнулся на прекрасную книгу, читая её понял, что на примере обезьян показаны до боли знакомые и налюдаемые мной изо дня в ндень ситуации... И оказалось, что прочитав всего лишь эту маленькую, но мудрую книженцию можно сделать выводы, поменять модель поведения и получить довольно интересные результаты!



Предисловие

"Ко мне обратились с просьбой написать это предисловие три недели назад. Я решил, что три недели - как раз тот срок, который надо выждать, прежде чем дать ответ. Ответить сразу - означало бы нарушить и без того хрупкое иерархическое равновесие, сложившееся между черными и белыми обезъянами.
Мне оказали честь, попросив высказаться об этой книге. Вплоть до настоящего момента я так и не пойму, стоит мне быть польщенным, - или ужасаться тому, насколько знакомые чувства меня охватывают при чтении этих проницательных рассказов.
Независимо от цвета обезьян, их поведение зачаровывает. В данной работе непревзойденным образом схвачены детали жизни на плантации, часто остающиеся за кадром. Я призываю вас прочесть эту увлекательную историю с улыбкой на лице и в сердце.
Стоило мне перечитать книгу заново, как на меня опять нахлынули воспоминания, и я еще больше укрепился в понимании одного очевидного факта:
При написании этой книги, - и я точно это знаю, - не пострадала ни одна обезьяна.
P .S . Если бы предисловие написала черная обезьяна, то вы бы уже прочитали не менее двадцати трех страниц."

Адриан Марли

Пролог

Эта книга не о расе, национальности или должности. Эта книга – о природе, поведении и отношении.

История возникновения

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

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

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

Основные принципы существования 
  1. Черная обезьяна ведет себя как черная обезьяна, потому что она знает, что она - черная обезьяна. Если черная обезьяна не знает, что она черная обезьяна, то она все равно ведет себя как черная обезьяна и не становится белой обезьяной.
  2. Черная обезьяна любит говорить «Нет». Белая обезьяна любит слышать «Да».
  3. Задача черных обезьян – собирать бананы. Задача белых обезьян – делать так, чтобы бананы были собраны.
  4. Черные обезьяны публично кусают друг друга. Белые обезьяны никогда не делают этого при черных обезьянах.
  5. Если черная обезьяна собрала много бананов, то ей доверят собрать еще больше. Если белая обезьяна загубила много бананов, то ей доверят загубить еще больше.
  6. Как только способные черные обезьяны самостоятельно и по собственной инициативе поднимут с нуля плантацию бананов и добьются рекордных урожаев, к ним пришлют белую обезьяну с отсталой запущенной плантации. Белая обезьяна возглавит черных обезьян и будет учить их тому, как растить бананы. Так будет продолжаться, пока урожайность не упадет, во всем будут обвинены черные обезьяны, белая обезьяна залезет на вышестоящую ветку и забудет на время о преподавательской работе. И тогда вновь черные обезьяны, одержимые желанием стать белыми и переселиться с плантации на дерево, вырастят рекордный урожай, о чем белая обезьяна поведает другим белым обезьянам как о своем выдающемся достижении руководителя. Черных обезьян пошлют на отсталую плантацию еще раз доказать свои способности.
  7. Черная обезьяна не может быть одна, ей надо кого-то ненавидеть, иначе ей становится скучно. Белая обезьяна может жить одна и развлекаться зрелищем черных обезьян, ненавидящих друг друга.
  8. Иногда черная обезьяна нанимает белых обезьян, чтобы другие белые обезьяны думали, что черная обезьяна белая.

Детали быта 

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



Черные обезьяны живут на плантации. Основное желание черных обезьян – это стать белой обезьяной, не собирать бананы, не жить на плантации и не разговаривать с другими черными обезьянами. Чем меньше бананов собирает черная обезьяна, тем больше она гордится этим и демонстрирует другим черным обезьянам: «Смотрите, какая я белая!». Многие черные обезьяны в это верят и тоже стремятся собирать поменьше бананов. Когда ситуация разрастается и это начинает угрожать общему сбору бананов, то тут-то и нужна белая обезьяна: ведь только она может напомнить зарвавшимся черным обезьянам, что они черные. Черных обезьян приглашают собраться вместе и обсуждать вопросы сбора бананов на языке белых обезьян и под их присмотром. Соблюдая правила, черные обезьяны должны убедить друг друга в необходимости дружно собирать еще больше бананов. Они долго толкут воду в ступе, и так как черные обезьяны никогда не могут договориться друг с другом ибо каждая черная обезьяна норовит считать себя белой обезьяной, то настоящая белая обезьяна говорит им: «Хватит ругаться. А теперь идите и собирайте бананы!». И тут все вдруг становится на свои места: черные обезьяны уходят на плантацию, еще больше ненавидя друг друга, а белая обезьяна остается довольной сидеть на дереве, в очередной раз удостоверив свою белизну. Белая обезьяна также может позвать черных обезьян съесть вместе банан рядом с деревом неподалеку от плантации. Дерево нужно, чтобы черные обезьяны видели, как на нем хорошо и по-прежнему хотели на него залезть. Плантация нужна, чтобы они не забывали, откуда они пришли и куда они уйдут. Банан нужен, чтобы через его вкус подчеркнуть, что путь с плантации на дерево лежит только через дружный сбор бананов.



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

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

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

Характерное поведение в типовых ситуациях 

Когда белая обезьяна читает газету и в комнату врывается черная обезьяна с криком: «Сэр! Огромная проблема, пожар, пожар!!! Мы горим, все в огне!!!», то белая обезьяна отвечает, не отрываясь от чтения газеты: «А ты вызвал пожарных?» и продолжает невозмутимо читать газету.

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

Черным обезьянам обязательно нужно, чтобы их постоянно хвалили, говорили какие они умные, и что без них ничего работать не будет. Белым обезьянам это не нужно. Они и так это знают.

Для того, чтобы подчеркнуть, как хорошо она разбирается в бананах, черная обезьяна всегда предупреждает, что отвечает исключительно за кожуру. За другие составляющие: черенок, удобрения или полив пальмы, отвечают другие черные обезьяны, которые плохо работают и мешают бананам правильно созревать. Среди черных обезьян всегда много главных специалистов по отдельным вопросам. Такие глубокие познания и ограниченная ответственность настораживают и пугают белых обезьян. Им справедливо кажется, что черные обезьяны набивают себе цену, вместо того, чтобы собирать бананы. И тогда белые обезьяны говорят: «Мы занимаемся простым делом. Мы всего лишь срываем бананы с ветки и кладем их в коробки». Черная обезьяна шокирована, но ей нечего возразить по существу.

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

Встречаясь, белые обезьяны часто называют имена других белых обезьян, деревьев, на которых кто и когда сидел, и спрашивают друг друга: «А ты знаешь ли такую-то белую обезьяну с такого-то дерева?». На этот вопрос очень редко отвечают «нет». Вместо этого говорят: «по-моему, я что-то слышал о ней, напомни мне, кто она». И тогда все равно находятся общие знакомые среди белых обезьян. С помощью таких расспросов белые обезьяны убеждаются в подлинности друг друга и степени белизны. Вывод: настоящая белая обезьяна знает много других настоящих белых обезьян и гордится этим.

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

Встречаясь между собой в свободное время, черные обезьяны разговаривают о сборе бананов, потому что они только этим и занимаются. Белые обезьяны не разговаривают о сборе бананов, потому что они этим и не занимаются. Черные и белые обезьяны не встречаются между собой в свободное время, потому что им просто не о чем разговаривать.

Черные обезьяны всегда кидаются защищать свою плантацию, говоря: «Этого не может быть. Мои обезьяны никогда не могли так сказать (сделать).» Белая обезьяна говорит: «Спасибо за подсказку. Надо проверить. От этих черных обезьян всего можно ожидать.»

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

Если черные обезьяны ненавидят друг друга, - а это их постоянное состояние, - то они начинают кидаться дерьмом. Очень быстро они уже вымазаны дерьмом по уши и кричат, привлекая внимание белой обезьяны: «Это ты первая начала! Нет, это ты!». Когда белая обезьяна, нехотя, обращает на них внимание, то черные обезьяны бегут к ней жаловаться и норовят прислониться для получения сочувствия. Белая обезьяна от этого не в восторге, она говорит: «Фу, какие грязные и вонючие эти черные обезьяны. Мне все равно, кто в кого, чем и почему кинул первым. Вы все в дерьме и так не сможете собирать чистые бананы. Идите, отмойтесь и принимайтесь скорей за работу».

Черные обезьяны часто копируют повадки белых обезьян. Они пытаются хлопнуть по плечу и весело крикнуть «ОК!», или пнуть под зад другую обезьяну, угрожающе прорычав «Шевелись!», или рассыпаться в благодарности и приветствиях, трогательно заглядывая в глаза и шелестя: «Уж как мы рады! Да, да, да, да. Все будет сделано!» Но черные обезьяны вечно путают, перед кем и как себя вести, так как не могут сразу отличить, кто перед ними: – белая или черная обезьяна и поэтому попадают в неприятные истории, послав не того, кого надо, или прогнувшись перед последней черной обезьяной со страусиным пером в заднице. Белая обезьяна ведет себя одинаково со всеми, руководствуясь тем, что с ней происходит, а не тем, кто перед ней стоит.

Когда черная обезьяна хочет подлизаться к белой обезьяне, то она заходит, как бы между прочим, посоветоваться по какому-нибудь пустяковому вопросу, ответ на который и так ясен как божий день. Черная обезьяна говорит: «Вот я разработала выход из очень сложной ситуации и хотела посоветоваться с Вами как очень мудрым руководителем. Вот ведь если так, так и так, то я считаю, что нужно делать эдак, эдак и эдак, а Вы как считаете?» Оторопевшая белая обезьяна отвечает: «Да, конечно, именно так и надо делать.» Тогда черная обезьяна уходит, думая: «Какая я умная! Даже белая обезьяна вынуждена была вслух признать это и теперь еще больше ценит меня!» Тогда белая обезьяна думает: «Ах, какая глупая черная обезьяна. Сама не может определиться по такому пустяковому делу. Да, действительно, не могут эти черные обезьяны жить без подсказки белой обезьяны. Для этого мы им и нужны. Не даром свой хлеб едим!»

Некоторые черные обезьяны, как им кажется, особенно смышлены в том, чтобы произвести впечатление главных специалистов на белых обезьян. Когда к ней обращается белая обезьяна и просит сорвать банан, такая черная обезьяна говорит: «Хорошо, я сделаю это в четвертом квартале, у меня очень много работы». Белая обезьяна говорит: «Мне всего лишь нужен один банан. Принеси его сегодня». Черная обезьяна возражает: «А что ты знаешь о бананах! Это тебе не сидеть в лесу на дереве. Бананы растут высоко на пальмах; чтобы туда залезть, нужна лестница, которая всегда занята. И даже если удастся ее достать, то когда дует сильный ветер, недолго свалиться вниз без должной сноровки, а она приходит с годами трудной повседневной работы от зари до заката, в поте лица, не жалея себя и всецело отдаваясь любимому делу. А я ведь ловко собирала бананы на самых крупных плантациях. Окончив с отличием Академию бананов на Северном полюсе, я всегда пользовалась заслуженным уважением коллег Академии банановых наук, которые и по сей день помнят мои трудовые подвиги и советуются сто раз на дню по всем вопросам и т.д.» Белая обезьяна может терпеливо выслушать, а может и сразу сказать: «Будь реалистичной. Мы занимаемся простым делом – сбором бананов. Отныне ты будешь собирать в сто раз больше бананов, в десять раз быстрее и за половину сегодняшней зарплаты. А если тебе не нравится – пошла вон с плантации прямо сейчас». И самое интересное, что черная обезьяна действительно идет и делает больше, быстрее, дешевле. При этом она очень сильно обижается, что ее глубокие знания не оценены по достоинству. А ведь нужно-то было просто сорвать один банан.

Когда белой обезьяне нечем заняться, потому что все бананы уже собраны черными обезьянами, то белая обезьяна думает: «А почему бы не послать своих черных обезьян на соседнюю плантацию, где очень плохой урожай, белая обезьяна мается от скуки, а черные – заплыли жиром и не хотят работать. Пусть мои смышленые обезьяны, которых именно я так правильно воспитала, что у них все получается, помогут своим собратьям правильно организовать работу». Услышав приказ, черные обезьяны ретиво принимаются за дело и внезапно высаживаются на соседней плантации, где их никто не ждет, так как белая обезьяна забыла поставить в известность соседнюю белую обезьяну о своих дружеских планах. Активные черные обезьяны начинают кусать жирных ленивых черных обезьян, пытаясь загнать их на пальмы для сбора бананов. Но поскольку лезть на пальму трудно и обидно, жирные черные обезьяны бегут жаловаться своей белой обезьяне на незваных помощников, критикуя их за упущения на собственной плантации. И действительно, поскольку активные черные обезьяны все силы отдавали помощи соседней плантации, один их собственный банан оставался несобранным. Тогда белые обезьяны созваниваются по телефону друг с другом и обсуждают вчерашний футбольный матч. После этого жирные черные обезьяны радостно продолжают нежиться на солнце, а активные черные обезьяны получают два выговора: первый - за нетактичное поведение на чужой плантации и второй - за один несобранный банан на собственной плантации. На следующий день черных обезьян вместе пошлют на курсы по методам улучшения показателей за счет проявления инициативы и дружной работы в команде.

Если черная обезьяна затягивает сбор бананов, ссылаясь на очередные трудности и отсутствие ресурсов (времени), то белая обезьяна может запросто сказать: «Ну что же, тогда я это сделаю сама». Перспектива увидеть белую обезьяну, лично срывающую банан, несмотря на все сложности, настолько ужасает черную обезьяну («А вдруг и вправду сорвет в легкую и глазом не моргнет, в другой раз уже не отмажешься!», что черная обезьяна с воплем «не надо, не надо, что вы, что вы!» быстро кидается выполнять поставленную задачу, к глубокому удовлетворению белой обезьяны (и за бананом лезть не пришлось, и трюк удался).



Качественный и стабильный сбор бананов на больших площадях плантаций возможен лишь при массовом вовлечении черных обезьян в этот процесс изо дня в день. Некоторые черные обезьяны достигают мастерства в сборе бананов и становятся индивидуальными рекордсменами в скорости, качестве и надежности. Увидев, что им нет равных, такие черные обезьяны приходят (рано или поздно) к белой обезьяне и говорят: «Нам слишком мало платят, мы слишком много работаем и слишком сильно устаем. Придётся собирать все больше бананов, остальные черные обезьяны совсем глупые, ленятся и работают плохо. Если не будет таких специалистов, как мы, то плантация загнется и весь урожай погибнет. Прислушайся к нашим требованиям, ты, белая обезьяна, и тогда тебе не влетит за плохой сбор урожая от большой белой обезьяны. Найми по три помощника каждому из нас, удвой зарплату, - как говорят, это уже всем сделали на других плантациях, - пошли нас на курсы Мастеров Банановой Администрации и возьми на работу мою сестру на должность Обезьяны по Исследованию и Отслеживанию Бананов». Такие разговоры очень напрягают белую обезьяну, ибо отрывают ее от подготовки презентации о рекордных показателях на плантации. Белая обезьяна, в отличие от черных, хорошо понимает, что сбор урожая в целом зависит не от отдельных рекордсменов, а от того, будут ли все вместе черные обезьяны сообща собирать бананы, пусть даже и не показывая высоких индивидуальных результатов, – слишком большая плантация, и слишком много на ней бананов, чтобы положиться всего лишь на нескольких передовиков. И тогда белая обезьяна приказывает повесить на плантации лозунг: «Больше командной работы!», а также просит приспособившихся черных обезьян, которые сами не собирали бананы, но готовы этому остервенело учить других, чтобы избежать возвращения на плантацию, провести серию занудных и дорогих семинаров. На этих семинарах черные обезьяны рисуют круги, треугольники и квадраты, их бесплатно кормят и поят, а также играют с ними в игры, где не может быть ни выигравших, ни проигравших. Все это настолько мучительно, долго и примитивно, что, в конце-концов, для большей части черных обезьян становится понятно: если ты достиг мастерства, то надо с улыбкой заставлять других работать не хуже, а если это не получается, то самому собирать за них бананы, не загружая подобными мелочами белую обезьяну. Какая разница, кто собрал бананы, если они собраны, и какая разница, кто не собрал бананы, если они не собраны. Ведь бананы должны быть собраны. С теми немногими тупыми рекордсменами, которые продолжают настаивать на своей исключительности, несмотря на инвестиции в их развитие, поступают просто. Их «отдают на съедение» стаду черных обезьян, сказав: «Посмотрите на эту черную обезьяну! Она считает, что умнее и лучше вас. Неужели она права?». И тогда обезьяна-рекордсмен, желая доказать свою правоту, из последних сил кидается собирать все больше бананов, а остальные обезьяны говорят, что она делает не так. Потом, однако, стадо старается угнаться за рекордсменом. Показатели сбора бананов лишь повышаются, что и нужно белой обезьяне. От безысходности и переутомления черная обезьяна-рекордсмен перестает ставить рекорды, но продолжает хорошо и молча собирать бананы. От тоски такая обезьяна может даже попытаться переползти на соседнюю плантацию, но там ее ждет то же самое. Ведь везде и всегда бананы должны быть собраны, и нигде и ничто не должно помешать белой обезьяне сделать об этом презентацию.

среда, 2 декабря 2009 г.

Миф о том, что из тестировщика вырастает программист

Бытует мнение, что карьерным и не только ростом для тестировщика является переход в ряды программистов... по моему это заблуждение!


Вот к примеру обсуждение сего вопроса в одном из блогов

Алексей Лупан 
…Также следует помнить, что работа тестировщика НИКАК не способствует становлению программиста…

Zmei 
Не соглашусь. Тестировщику легче переквалифицироваться в программера нежели человеку начинающему с нуля. … и следовательно чем круче тестировщик тем ему легче. ИМХО

makeenkov 
Мне кажется, чем круче тестировщик или когда он уже по праву QA, тем ему сложнее стать программистом… ибо мышление программиста и тестировщика – это разные вещи. Например то, что тестировщик считает, что везде есть баги, а программер считает, что его код идеален и багов нет… думаю эти подходы друг в друга не трансформируются по крайней мере с пользой!

Алексей Лупан 
Для успешного программирования нужна склонность а алгоритмическому мышлению.
Для успешного тестирования нужна склонность к аналитическому мышлению.
Это как две реки с разными фарватерами. Обе требуют изучения.
У некоторых людей развиты оба эти типа мышления.
У большинства – нет, развиваться получается только в одном направлении.