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

суббота, 20 марта 2021 г.

Трёхмерность жизни

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

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

Ось ХОЧУ
Определю желание или цель стрелкой вверх и влево, потому что всё сейчас недоступное обычно весит высоко, а более притягательное почему-то на дороге влево. Вспомнить хотя бы ходоков к чужим жёнам или сладкий плод в раю. Они тоже где-то слева вверху. Мечту чаще называют "розовой", потому и цвет оси "ХОЧУ" придам тёплый. Если же не в житейской терминологии её именовать, а юридической, то более подходит слово "ЦЕЛЬ". Или же можно назвать эту ось "птица счастья", у великого баснописца она, кстати, была Лебедем.
Двухмерность мечты и возможностей
Но любая хотелка, как уже ранее было сказано, не может материализоваться без вложений, то есть возможностей мечтателя. Поэтому определю наши силы для осуществления мечты синей стрелкой вправо и вверх.  Синий цвет оси "МОГУ" ассоциируется с работой и водой.  В той же басне за возможности отвечала Щука, ведь "без воды и ни туды, и ни сюды". Но не смотря на то, что вода обычно снизу, ось стремится тоже ввысь, потому что увеличивая свои возможности мы приобретаем опыта больше, чем в последствии тратим сил. Те, кто не разделяет сказочные объяснения, а желает придать моей теории научность, могут именовать эту ось юридическим термином "ПРАВА", по аналогии с документом, известном всем как "договор".
Трёхмерность желания
Ещё раз напомню, что мы всегда находимся в обществе, и все наши желания как-то влияют на окружающих, а значит и они нам противодействуют. То есть любую мечту НАДО соразмерять с ОБЯЗАННОСТЯМИ перед тем самым обществом. Это чаще всего самый сильный сдерживающий фактор и не только в качестве мнения света, но и последующей ответственности за нанесённые действия. Поэтому стрелка тёмно-серая и направлена вниз. И по ассоциации всё с той же басней - под ней можно подразумевать Рака.
Расценки мечты
Итак, у нас получилась трёхмерная система координат жизни, которой мы придадим условное исчисление: от 0 до 3 или 10, как вам больше нравится.
Выделим в текущий момент жизни одну проблему, например, финансовый кризис после пандемии. Попытаемся начертить кривую для решения этой конкретной проблемы в системе координат наших желаний, возможностей и обязанностей.  Первым шагом сформулируем мечту или цель, которая должна быть адекватной, достижимой и конкретизированной. Например, выиграть миллион в лотерею - это неадекватная, слабо-достижимая мечта, но конкретизирована суммой. А вот желание "летний трёхнедельный отпуск провести на морском побережье и потратить двухмесячный оклад" отвечает всем условиям, потому что если на Карибское море вашей зарплаты может и не хватит, но на Чёрное или Каспийское - вполне. Тем самым мы укладываем свою мечту в рамки адекватности и достижимости, точно сформулировав конкретизацию. Поскольку мечта удовлетворяет всем трём условиям, то отмечаем её на цифре 3 своей оси. И начинаем считать возможности, то есть проводим линии до осей МОГУ и НАДО сначала к точке 1 или даже к 0, поскольку все три оси находятся во взаимосвязи, что поясню позже на примере законов физики.

Связь ХОЧУ-НАДО

Связь ХОЧУ-МОГУ
Если у вас есть регулярный доход (работа с ежемесячным окладом или вклад с квартальным причислением процентов), то по оси МОГУ можем встать на 1. Если вы нашли тур, который по цене совпадает с вашей зарплатой, то сдвигаемся на пункт 2. Если же работодатель точно даст вам дни отпуска в июле-августе, то смело сдвигаемся на цифру 3.

Если на время вашего отпуска на предприятии рабочий процесс не остановится или не развалится без вас, то ставьте точку на 1 оси НАДО. Если перемещаясь в другой регион вы не нарушите санитарные нормы, например, привились от COVID-19, то сдвигаемся по оси НАДО до 2.  Если вы гарантируете, что не нарушите в чужом месте никакие законы и благополучно вернётесь домой, например, не будете вывозить дары моря из Египта, то смещаемся до 3 по оси НАДО. То есть подчёркиваем, что общество дома, на курорте и работе не понесёт потерь от вашего осчастливливания.

А  теперь посмотрим на получившийся треугольник взглядом физика. Представьте, что верхняя сторона ХОЧУ-МОГУ - это планка качелей (или поднос в руках официанта, или дощечка в пирамиде эквилибриста), а вершина оси НАДО - точка её переката (основание кисти официанта, касания цилиндра и цирковой арены). Таким образом, мы определили величины левого и правого плечей рычага, а также точку приложения силы. Когда всего достаточно (ХОЧУ, МОГУ и НАДО на равном удалении от центра), то равносторонний треугольник покажет устойчивость положения, а значит и проблема решится как-бы сама собой.

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

Увеличение возможностей равняет качели мечты

Обязательства скатывают мечту с горки
Когда объём желаемого и возможного совпадает, но невелики при огромной задолженности перед обществом, например, должников по алиментам не пускают за границу, то острый равнобедренный треугольник на первый взгляд выглядит ровно, но его острота предупреждает о высокой неустойчивости положения. То есть внутри страны может вы и поездите, но недалеко и недолго. А значит и полного удовлетворения получить не сможете.
Обильный долг не ширит мечту и силы
Встречается и ещё один вариант равнобедренного треугольника, когда ХОЧУ и МОГУ достигают максимума, а НАДО не растягивает фигуру в правильную (равносторонний треугольник - самая жёсткая фигура геометрии). Физик вам сразу напомнит, что малейшее приложение силы к одному из длинных плеч рычага начнёт качание. То есть при минимальных обязательствах перед обществом расширение мечты на один шаг сократит возможности чуть ли не вдвое, например, девицы лёгкого поведения автостопом не всегда попадают к морю, а чаще в подпол лесной избушки.
Так живут безалаберные люди
Вот так, мы можем теперь рассмотреть любую проблему. Визуализировать её и проанализировать по прогнозам. Жизнь можно декомпозировать и запрограммировать простейшими алгоритмами, если знать элементарные законы естествознания. Попробуйте приложить к вашему уникальному случаю всем известные правила, и он разрешится как в вашу пользу, так и сохранит статус-кво окружающих. Живите счастливо сами, даря счастье близким. 


вторник, 3 декабря 2019 г.

Глобалы

Глобальными модулями в группе разработки продуктов компании ConquestSS называются такие компоненты трёх смежных приложений, код которых равнозначно применим в каждой программе. Например, самостоятельная библиотека OSD.DLL с полноценным интерфейсом и функционалом, интерфейсное окно ABOUT с информацией о продукте, текстовый парсер для сбора данных анализатора кода. Соответственно задачи, которые касаются только таких модулей, а не их внедрения в продукт, называются "глобалами". Для удобства фильтрации такие задачи объединены были в отдельный "продукт в BTS".
SQLDetective, ClearSQL, ClearDB - интерфейсные продукты, написанные в основном на Delphi. Но поскольку была внедрена система LFT, то многие стандартные элементы не могли удовлетворить требования, выработанные этой командой. Поэтому программисты ConquestSS вынуждены были дописывать или переделывать интерфейсные компоненты. Например, для выставления своих фонтов и отступов в ckeck-box, radio-button, list-view, плавное расцвечивание в progress-bar и многое другое. Переработка компонента оформлялась как глобал, а его внедрение в определённый продукт - задачей на конкретное приложение и его модуль. Но в большинстве своём задачи по внедрению в конкретный продукт игнорировались, не оформлялись, подразумевая процесс внедрения в рамках одной задачи-глобала.
Со временем появилась необходимость вести версионность некоторых глобальных модулей. До сих пор сохранилось отображение версии только для анализатора кода. Её номер вы можете увидеть в комментариях к отформатированному коду. Парсер кода - часто меняющийся в последнее время модуль, поскольку обязан поддерживать все новшества базы данных Oracle. Поэтому все три продукта вполне могут выпускаться регулярно, обновляя лишь один глобальный модуль - анализатор кода. А вот версионность другого глобала - OSD.DLL - помогла лишь однажды, когда он кардинально был переработан для работы отладчика. Но, к сожалению, не все старые версии смогли на лету сработаться с библиотекой, поэтому простое копирование файла в рабочую папку приложения не спасало положение, и для полноценной отладки приходилось пересобирать весь продукт с изменённой библиотекой. Не так давно OSD переместили в core продуктов и его версионность отжила свою надобность. У всех остальных модулей-глобалов вообще не велась версионность, достаточно было версий основных продуктов, в которые внедрялись эти глобалы. А при закрытии задач в BTS эти их внутренние версии вообще никогда не имели смысла.
Исходники продуктов, как и положено, хранятся в системе контроля версий (VCS), каждый в своей ветке. Для глобальных модулей была выделена самостоятельная ветка. При этом сборка каждого продукта, автоматизированная со временем, выбирала файлы не только из своей продуктовой ветки, но и мониторила обновления по дате редактирования ветку глобалов. Когда dev-ops реализовал полезняшку (подкинутую мной идею о добавлении комментариев в задачи Jira с номером билда, в который вошёл фикс), то это значительно упростило работу тестировщика, часто сомневавшегося "стоит ли начинать тест? перебилден ли продукт с требуемой версией глобала?". VCS Perforce связана с Jira через FishEye, а сборщик билдов написан на Python, поэтому кроме нотификаций в Slack о готовом билде, dev-ops легко реализовывал и многие другие важные для команды разработки напоминания и уведомления. Да, пока сборка велась в ручном режиме слишком силён был человеческий фактор и часто забывали включить в билд нужную версию глобала, либо ошибались с датами фиксов и накладывали старые баги на новый функционал. И тогда мы получали весьма жуткие временные баги от корявой сборки.
Конечно, такой вынос одинакового кода и интерфейса в отдельную папку VCS был весьма удобен программистам. Ведь у них значительно поубавилось работы. Код не приходилось триплить во все продукты, а лишь сделать одну правку. Но, к сожалению, не всегда задачи в BTS оформлялись на каждый конкретный продукт. Поэтому тестировщику приходилось в каждом из трёх продуктов проводить одни и теже тесты, да ещё удваивать (а то и утраивать) их из-за необходимости поддерживать несколько версий продукта (опубликованный, предыдущий опубликованный, разрабатываемый по спец.заказу или общий будущий). Программист комментировал свои фиксы только в VCS, по которым собирались внутренние Release Notes, то есть единожды. А тестировщик обязан был отметить фиксы в каждом продукте и его версиях. Поэтому пришлось в самописной BTS создать дополнительную таблицу (child для основной таблицы задач)  для таких отметок. Самописную BTS вполне удавалось заполнять в SmartDataset гриде своего же продукта SQLDetective, поскольку в основном это были обычные таблицы с набором справочников. Но для отметок глобалов в SD не сгодилась даже утилита DataDependencyAnalyzer. И после недолгих упрашиваний dev-ops смастерил мне формочку на пару гридов (parent - all_bugs, child - global_checks) со справочником версий продуктов. Да, такой дополнительный список усложнял сбор Release Notes для пользователей, поскольку РМ раньше фильтровал только общую таблицу задач, а теперь ему приходилось частенько припоминать о глобалах.
Когда же самописную BTS сменили на Jira, то систему глобалов не упразднили. Самостоятельный продукт Global Modules (GM) так и продолжил своё существование, но его ни минули пара революций. Команда разработки росла и новым тестировщикам тяжко было как понять систему глобалов, так и поддерживать её в актуальном состоянии. Некоторые модули имели реализацию только в определённых продуктах. Например, CRUD2 матрица или браузерный отчёт анализатора (CS Project Report, CDB Docu), которые формируются сразу для нескольких объектов базы, а потому не приемлемы для единичных объектов в SD. Участились отвлекания старожилов на разъяснения, поскольку даже пояснения к модулям, которое возможно заполнить в справочниках Jira, не отображается для выбираемых компонентов в процессе оформления задачи. Так что моя одноразовая акция по проставлению в комментариях каждого компонента продукта GM списка поддерживаемых продуктов не сильно помогла. Пришлось проводить проверку каждой новой задачи GM на применимость в продуктах и дописывать в Description важные примечания для разработчиков и тестировщиков, если фикс не должен был быть в каком-то из продуктов или его реализация имела продуктовые особенности. Тех.писательница, собиравшая Release Notes, тоже постоянно забывала упомянуть об изменениях за счёт глобалов, либо добавляла лишние пункты, не применимые в продукте, либо текст по опечатке содержал упоминание соседнего продукта. В продукте GM приходилось админу Jira дублировать версии конкретных продуктов после каждой сборки. Тогда ещё не был полноценно дописан авто-билдер, поэтому добавление производилось вручную после публикации, а поскольку не редки были случаи забывчивости, то чек-лист публикации пришлось пополнить отдельным пунктом для админа Jira. Даже РМ, собиравший бэклог публикации в Jira Structure, не всегда вспоминал, что стоит добавить и уже закрытую по другим продуктам GM-задачу, но ещё не внедрённую по текущему спринту. Эти неудобства послужили аргументом к прекращению поддержки GM. Несколько месяцев трёх тестировщиков было потрачено на перенесение имевшихся GM-задач в конкретные продукты. Спасибо, в Jira есть фичи клонирования и переноса задач из одного продукта в соседний, поэтому имевшиеся задачи разносились более менее быстро. А вот новые иногда забывались клонироваться. По окончании этой работы взвыли программисты, которые забывали открыть в Jira слинкованные одноимённые задачи, сменить им статус и отметить затраченное время, забывали в VCS упомянуть авто-фиксы по всем продуктам. Но те проггеры, которые не забывали про лишние телодвижения, были рады резкому скачку их производительности, ведь она утроилась по времени и количеству задач! Итак, тестировщики обрадовались конкретике, тех.писательница успокоилась при сборе Release Notes из-за уменьшения фильтра, но РМ в большей степени прислушивался к мнению программистов, которые ленились отмечать свою работу в клонированных задачах. Из-за этого РМ вопреки мнению большинства своим "царским указом" возобновил поддержку в Jira глобалов. Да притом изменил путь статусов на жёсткую схему, и один статус TESTING был разбит на несколько (сначала три, а потом и четыре) по количеству разрабатываемых продуктов TESTING_Prod1, TESTING_Prod2, TESTING_Prod3, TESTING_Prod4. Статусы можно было сменить только в обозначенном порядке, что очень осложнило работу тестировщикам, которые были закреплены за конкретными продуктами. Но РМ на это неудобство ответил распоряжением самоуправца и закрепил глобалы за одним тестировщиком из числа новичков. Юный тестировщик не возражал, так как не знал, что столкнётся с более сложной проблемой. На тот момент продукт ежедневно собирался при наличии фиксов в своей ветке, а поскольку какие-то из продуктов были "заморожены", то тестировщик не мог закрыть проверенную в продуктах 1 и 4 задачу, не имевшую реализации в продуктах 2 и 3 ввиду отсутствия нужного билда. Dev-ops-у пришлось опять менять авто-билдер, чтобы даже временно отложенные продукты всё равно ежедневно собирались, но лишь для тестирования. И РМ-у было наплевать на то, что некоторым задачам абсолютно не нужно было проходить хоть какую-то проверку в определённых продуктах, то есть авто-билдер гонялся впустую, тестировщик безрезультатно искал исполнения в пустом продукте, а тех.писательница опять стала ошибочно вносить "чужие" фиксы в Release Notes.
Из обеих революций для большинства членов команды разработки был вынесен единый вывод: "Глобалы - это зло!", но поскольку мнение ленивых и приближённых к РМ-у программистов перевешивало демократизм, то о каком бы-то ни было компромиссе мечтать не стоит. Кое-как соглашусь, что в VCS глобалы есть смысл сопровождать в собственной ветке, но и здесь не мало проблем с внутренней и общей версионностью. А в BTS никак не стоит объединять глобалы, поскольку они первые в числе забываемых. Если у вас Jira, то клонирование и перенос задач между продуктами легко снимут с вас проблемы актуализации багов и фич. Кабы в нашей старой самописной BTS была фича клонирования багов и разработок в другие продукты (SmartDataset в SD может дублировать строки только в одной таблице, а значит не давал полноценного клонирования по справочникам, да и не видно было потом линкованного исходника для клонов), то моя идея глобальных модулей ограничилась бы только VCS и в BTS не отразилась.

суббота, 4 мая 2019 г.

Облегчаем чемодан

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

среда, 12 сентября 2018 г.

How to ask

Алгоритм тестировщика для задавания вопроса программисту

Шаг 1
Сформулируйте (на бумаге или в уме) вопрос так, чтобы ответ на него был однозначным: да/нет или пронумеруйте варианты.
Для практического закрепления возьмём "Пример 5" из статьи "Практикум корректности". Варианты главного вопроса:
- Надо ли учитывать размер всех вложенных папок и файлов при подсчёте размера отчёта?
- Что должно входить в размер отчёта:
a) размер файла "[НаименованиеОтчётаПроекта]_timestamp.html";
b) размер файла "[НаименованиеОтчётаПроекта]_timestamp.html" плюс объём файлов в иерархичных папках "[НаименованиеОтчётаПроекта]_timestamp";
c) раздельно две величины - размер головного файла и размер файлов в папке документа;
d) иной вариант (переименовать колонку).
Если самостоятельно не можете выбрать, то
Шаг 2
Там же (на бумаге или в уме) обрисуйте ситуацию в деталях: продукт, условия (система, настройки, данные), произведённые действия.
В рамках практики: продукт - "ClearSQL" последней версии, модуль - "Project Report Assistant", закладка - "Report History", колонка- "Report File Size".
Если собственные мысли не сложились в ответ, то
Шаг 3
Поищите подобные ситуации в литературе и публикациях по теме продукта. Изучайте буквари - это Ваше развитие, укрепление профессионального мнения и подтверждение трудоспособности.
Повысить свою компетентность можно заглянув в аналогичные списки иных продуктов. docuVIEWER на закладке со списком доступных для просмотра документов показывает общий объём файлов в колонке "Docu Size".
Если совокупность знаний всё ещё вызывает сомнения, то
Шаг 4
В списке сотрудников и их компетенций выбираем наиболее подходящего по Вашему мнению специалиста. Чаще всего им оказывается программист, на которого была возложена тестируемая задача для кодирования.
Если нет списка компетенций или в списке не нашлось подходящего соответствия по теме вопроса, то
Шаг 5
Выберите главного или старейшего программиста/начальника.
В команде Gitt для этого существует "ответственный за фичу".
Шаг 6
Запишитесь на приём или дождитесь, когда внимание программиста оторвётся от кода.
Из собственной практики:
- когда у меня был соседний/проходной с программистами кабинет (не видели друг друга, но всё слышали), то достаточно было дождаться момента, когда обсуждение кода перерастало в бытовые споры. Переключить болтовню с нерабочей темы на профессиональную - долг трудоголика, так что смело шагайте и вливайтесь в беседу;
- когда офис объединял в одном помещении и программистов и тестировщика, то разворот от своего монитора в сторону разработчика через несколько секунд давал положительную реакцию и готовность общаться;
- в случае раздельных помещений и распределённой команды в личном чате публиковался главный вопрос или из "Шага 7".
Шаг 7
Обратитесь  с первым вопросом так, чтобы ответ был только положительным. Это чистая практическая психология, налаживающая позитивное общение.
Пример вопроса, повышающего авторитет программиста: "Можете помочь тупому тестировщику?"
Шаг 8
Переключите мысли отвечающего на тему основного вопроса:
- Ты же работал с продуктом "Х"?
- Знаешь о существовании модуля "У"?
- У меня тест проходил при условиях "Z" и получилось "Бла-Бла-Бла".
Задайте основной свой вопрос (см. "Шаг 1"), например, "Это баговое поведение?".
Шаг 9
Получите однозначный ответ или уточняющие вопросы, для ответа на которые помогут "Шаг 2" и "Шаг 3".
На этом этапе у программиста есть возможность отыграться за все пятёрки "Зачем?", заданные вами ранее и упущенные на этапе планирования.
Шаг 10
Поблагодарите за потраченное на Вас время и упомяните консультанта в задаче (если ответ о новом баге был положительным, то в новооформленной, иначе в тестируемой). Ссылка в описании или комментариях бага на разработчика защитит Вас от разбирательств при выяснении корректности задачи. Во многих командах планирование новых задач основывается на залогированном времени выпущенных фич, поэтому обе стороны диалога должны добавить затраченные на обсуждение минуты в одну и ту же задачу.

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

Учтите, что отвлекая сотрудника на две минуты подготовленного разговора Вы крадёте у него от четверти до получаса мыслительной деятельности. Поэтому предпочитаю пользоваться отложенными сообщениями в чате, а не созвонами или болтовнёй вживую.
Из личного опыта:
- диалог в одной комнате затягивается до получаса и перескакивает на отвлечённые темы;
- через Skype, TeamViewer вопрос решается за 20-50 минут, включая время установления стабильного соединения (слышимость, видимость монитора, запуск приложения для воспроизведения проблемы);
- через личные каналы чата решается от трёх до пяти вопросов за 20 минут переписки, поскольку алгоритм сокращается на шагах 1-8. Но такой вариант совсем не нравится заядлым стартаперам, которые собираются в команду не для производства продукта, а лишь пообсуждать новые гаджеты, автомобили или цветочки.

пятница, 27 июля 2018 г.

SAQSII meeting

Мнемоника SAQSII предназначена участникам любых обсуждений для снижения временных затрат и превращения каждого собрания в эффективное.
Участники совещания делятся по ролям:
организатор (участник команды, у которого возникла проблема, обращается к руководителю проекта или скрам-мастеру с необходимостью провести обсуждение),
ведущий (руководитель проекта/продукта/feature-main-man или scrum-master, который назначает время собрания, зазывает необходимых участников и следит за соблюдением протокола встречи),
эксперты (члены команды или внешние консультанты, готовые помочь в разрешении поднятой проблемы),
дополнительно можно пригласить секретаря для ведения протокола и сбора итоговой инфы, либо поручить эту работу самому организатору. Не стоит выбирать Секретаря из списка Экспертов, так как он является заинтересованным лицом в продвижении собственного мнения.



Subject - тема собрания оглашается его Ведущим и дублируется в приглашениях (объявление в чате, назначенная встреча-задача в e-mail или календаре, иным способом).

Aim - цель совещания оглашается Организатором. Исходные данные и главный вопрос для обсуждения формулируются кратко и в доступном для всех участников совещания формате (устно или с фото-видео примерами).

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

Suggestions - часть советов от Экспертов Организатору. Каждый Эксперт высказывает своё мнение о проблеме и её возможном решении, даже если это "поддерживаю идею [Name] выступавшего". Организатор может задавать свои дополнительные вопросы, накопившиеся в предыдущем шаге для уточнения собственных последующих действий, либо назначает дополнительную встречу для расширенного и углубленного обсуждения деталей предложенного решения.

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


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

понедельник, 16 апреля 2018 г.

Что читать?

С 2006 года мои пристрастия пополнились прослушиванием художественных произведений на конкурсах чтецов сначала в качестве члена жюри, а потом постоянным секретарём орг-комитета.
Поскольку видны-слышны были абсолютно все выступления, являюсь постоянным участником обсуждений жюри, то претенденты конкурса обращаются ко мне за советом при выборе произведения. Хотя состав жюри меняется почти на каждый конкурс, но критерии выбора лучших в большинстве совпадают. Выигрышными получаются произведения не из школьной программы, редко исполняемые. Для победы с широко-известным прочтением необходимо иметь огромную внутреннюю силу и уверенность в понимании высказанных слов. Художественное чтение и театр - это два разных направления искусства, поэтому не каждый актёр способен прочесть произведение правильно и достойно награды. Одним из критериев выбора произведения должно быть соответствие возрасту исполнителя.
Конкурс художественного слова "НАШЕ СЛОВО" в городе Кольчугино проходит в шести возрастных категориях, отдельно отмечаются литературно-музыкальные композиции и авторские произведения.
В качестве подсказок при выборе произведения можете воспользоваться нижеследующими списками, составленными по результатам конкурсов "НАШЕ СЛОВО - 2016" и "НАШЕ СЛОВО - 2018". Произведения разбиты по возрастным категориям и победным.
В конце статьи читайте подсказки для подготовки к конкурсу художественного слова.

Дети до 12 лет включительно:
"Что мешает женщине почувствовать себя женщиной"
«Мы с приятелем вдвоём» по стихам детских писателей
«Школа прикола» по произведениям Артура Гиваргизова
А. Аверченко "Рыцарь индустрии"
А. Твардовский "Рассказ танкиста"
А. Чехов «Радость»
А.С. Пушкин "Сказка о попе и о работнике его Балде"
А.С. Пушкин "Сказка о царе Салтане.."
Агния Барто "В театре"
Агния Барто "Мама болельщица"
Агния Барто "Однажды я разбил стекло"
Агния Барто "Первая любовь"
Агния Барто "Снегирь"
Александр Блок "Скифы"
Анатолий Молчанов "Тихвин, 14 октября 1941г."
Андрей Введенский "КТО?"
Б. Заходер "Буква Я" (ЗАМЕНА - Дж.Родари "Почему я - это я")
Б. Заходер "Клей", Н. Гумилёв "Крыса"
В. Драгунский "20 лет под кроватью"
В. Драгунский "Куриный бульон"
В. Железняков "Чучело"
В. Осеева "Бабка"
В. Постников "Жених из 5-б"
Виктор Голявкин "Как я писал стихи"
Виктор Голявкин "Сплошные чудеса"
Виктор Голявкин "Эх, Катя, Катя!"
Виктор Драгунский "Бы"
Виктор Драгунский "Заколдованная буква"
Виктор Драгунский "Реки Америки"
Всеволод Рождественский "Русская природа"
Г. Остер "Вредные советы"
Давид Самойлов «Слонёнок пошёл учиться»
Дора Хайкина "Бабушкины годы"
Е. Благинина "Письмо на фронт"
Е. Евтушенко "Армия"
Е. Евтушенко "Непрявда"
Е. Евтушенко "Сказ о русской игрушке"
И. Мазунин "Уродливый кот"
И. Пивоварова "О чем думает моя голова"
Игорь Новоселов "Консилиум" (ЗАМЕНА - В.Берестов "Кошкин щенок")
Ирина Гурина "Шахматная история
Ирина Пивоварова "Весенний дождь"
Ирина Пивоварова "Как меня учили музыке"
Ирина Пивоварова "Рассказы Люси Синицыной"
Л.Н. Толстой «Филиппок»
Леонид Филатов "Про Федота-стрельца, удалого молодца"
Любовь Воронкова "Девочка из города"
Н. Хаткина «Боялка»
Н.А. Некрасов "Железная дорога"
Николай Заболоцкий "Некрасивая девчонка"
Николай Некрасов "Саша"
О. Прокофьева "Ученик волшебника"
Ольга Фокина "Подснежники"
Ольга Фокина «Черёмуха»
Пётр Ершов "Конёк-Горбунок"
Р. Рождественский "Человеку надо мало.."
С. Маршак "Багаж"
С. Маршак "Дом, который построил Джек"
С. Маршак "Сказка о глупом мышонке"
С. Михалков "Детский ботинок"
С. Никитин "По ягоды"
Сергей Михалков "Мой щенок"
Сын артиллериста по стихотворению Константина Симонова и песен военных лет
Т. Александрова "Домовёнок Кузька"
Т. В. Овчинникова "Диалог с Добром"
Т. Демидович «Эх, Ромашкин!»
Т. Кудрявцева "Детство Лёки"
Ф. Кривин "Полуправда"
Э. Асадов "Трусиха"
Э. Асадов "Яшка"
Э. Успенский "Разноцветная семейка"
Ю. Лихолетов «Галка и джентльмен»
Юлия Друнина "Ёлка"
Я. Вилькова "Облако по имени Ваня"

Подростки от 13 до 15 лет включительно:
А. Бухов "Таня и Татьяна"
А. Гоголев "Млечный путь"
А. Куприн «Фиалки»
А. Молчанов "Памяти ленинградских детей"
А. Молчанов "Тихвин"
А. Савина "Где ты, мама"
А. Чехов «Спасть хочется»
А.П. Чехов "Из дневника одной девицы"
А.С. Пушкин "Цветок"
Александр Твардовский, отрывок из поэмы «Василий Тёркин», глава «Тёркин- Тёркин»
Андрей Платонов "Корова"
Андрей Платонов «Юшка»
В. Гарус "Судьба"
В. Драгунский "Бы"
В. Драгунский "Тиха украинская ночь"
В. Екимов "Говори, мама, говори"
В. Маяковский "Необычное происшествие бывшее с В. Маяковским на даче"
Владимир Солоухин "Счастье"
Г. Остер "Праздник непослушания"
Генри Манро "Открытая дверь"
Д. Мамин-Сибиряк "Притча о молочке и кашке"
Да здравствует Театр! по мотивам рассказов Ирины Андриановой-Голицыной
Е. Евтушенко "СССР-ФРГ. Репортаж из прошлого века"
Е. Евтушенко "Непрявда"
Евгения Осетрова "Краса ненаглядная"
К. Паустовский «Жёлтый свет»
Константин Ваншенкин «Мальчишка»
Л. Мартынов "Дым отечества"
М. Зощенко "Не надо врать"
М. Шолохов "Нахалёнок"
М. Штольц "Странно и только"
Монолог «Легко летать» автор не известен
Н. Ачараева «Волчица»
Н. Ласточкина "Сына мать качала"
Н. Тэффи "Жизнь и воротник"
Нина Беленицкая Письмо первое из моно пьесы «Письма к тятеньке»
О. Фокина «Подснежники»
Отрывок из моноспектакля по повести Альберта Лиханова "Мальчик, которому не больно"
Р. Бредбери "45 градусов по Фаренгейту"
Р. Рождественский "Война" (отрывок из поэмы "210 шагов")
Р. Рождественский "Вслушайтесь! Вглядитесь! Убивают время!"
Р. Рождественский "Историческое отступление о крыльях" (отрывок из поэмы "210 шагов")
Роберт Рождественский , отрывок из поэмы «210 шагов», глава «Историческое отступление о крыльях»
С. Боровский "Илья Муромец"
С. Есенин "Есть одна хорошая песня у соловушки"
С. Михалков "Десятилетний человек"
С. Одинокая "Фотография вложена в старую книжку"
Степан Писахов "Перепилиха"
Т. Овчинникова "Почему Петушки зовутся Петушками"
Татьяна Анисимова "Вспоминаю, тяжесть поднимаю"
Э. Асадов "Баллада о ненависти и любви"
Эрнесто Бонивур «Ищите своих людей»
Ю. Яковлев «Багульник»
Юрий Коваль "Картофельная собака"
Юрий Леднёв «Пётр Великий по Вологде ходит»
Юрий Погорельский "Сказ о русской балалайке"
Ярослав Смеляков "Хорошая девочка Лида"

Юноши и девушки от 16 до 20 лет включительно:
А. Аверченко "Смерть африканского охотника"
"Памяти Владимира Высоцкого"
А. Писахов «Подруженьки»
А. Толстой «Синица» (ЗАМЕНА - Е. Пономаренко "Леночка")
А. Чехов «Ушла»
А. Чехов "Из дневника одной девицы"
А.П. Чехов "Длинный язык"
А.П. Чехов "Спать хочется"
Аркадий Рывлин "Цветы от Маяковского"
В. Вересаев "Мать"
Василий Жуковский "Баллада оо старушке…"
Василий Шукшин "Сапожки"
Д. Рубина "Концерт по путёвке "Общества книголюбов"
Е. Евтушенко "СССР-ФРГ. Репортаж из прошлого века"
Евгений Евтушенко "Сватовство"
Иван Бунин "Маленький роман"
Константин Симонов "Горят города по пути этих полчищ"
М. Булгаков «Театральный роман»
М. Зощенко "Любовь"
М. Зощенко "Нервные люди"
М. Зощенко «Операция»
Максим Горький "Сердце матери" (ЗАМЕНА - В. Шукшин "Сапожки")
Михаил Жванецкий "Учителю"
Н. Гоголь "Как поссорились Иван Иванович с Иваном Никифоровичем (ЗАМЕНА - Е.Евтушенко "В день поэзии")
Надежда Тэффи "Экзамен"
Р. Рождественский "Кафе "Фламинго"
Римма Казакова "В юности мне ставили в вину"
С. Есенин "Исповедь хулигана"
С. Чёрный "Бал в женской гимназии
Сергей Есенин "Я иду долиной…"
Ф. Скиталец "Икар"
Фазиль Искандер "Детский сад"
Фёдор Достоевский "Из дневника писателя"
Ч. Айтматов "Материнское поле"
Ю. Друнина "Ёлка"

Молодёжь от 21 года до 27 лет включительно:
А. Вознесенский «Мастера»
А. Пушкин "Письмо Онегина к Татьяне"
А.П. Чехов "Спать хочется"
Дадзай Осаму "Листья вишни и флейта"
Константин Паустовский "Телеграмма"
Марина Цветаева "Если душа родилась крылатой…"
Михаил Зощенко "Кошки и люди" (ОТКАЗ УЧАСТИЯ)
Сергей Жучков "Легенда о холопе Никите"
Чингиз Айтматов "Плаха"
Ю. Павлов "От креста до креста"

Взрослые от 28 до 54 лет включительно:
А. Блок "Скифы"
Булат Окуджава "Цирк", "Песня о дураках", "Полночный троллейбус"
В. Высоцкий "Жил я с матерью и батей"
Е. Гришковец "Планета"
Е. Потехина, В. Тушнова "Монолог о счастье"
Ирина Ракша "За деревом было солнце"
М. Защенко "В театре"
М. Павич "Плакида"
М. Тарковский отрывок "Крик о сожженом доме" из повести "Тойота-Креста"
Марина Цветаева "Стенька Разин"
Николай Рубцов "Фиалки"
Ориана Фаллачи "Письмо ребёнку, которого нет"
Роберт Рождественский , отрывок из поэмы «210 шагов», глава «Историческое отступление о крыльях»
С. Антонов "Дело было в Пенькове" (ЗАМЕНА - С. Есенин "Письмо от матери и ответ")
С. Есенин "Чёрный человек"
Сергей Узун "Слабо"
Степан Писахов "Перепилиха"
Т.Е. Артемьева стихотворение о русском духе и гражданстве
Ф. Абрамов "Самая счастливая"
Эмиль Верхарн "Там"

Мудрые от 55 лет и старше:
А. Синягин, подборка авторских стихов
Аал Токомбаев "Сердце матери"
Джеймс Ривз "Тетушка Фло"
Л. Рубальская "Старые липы"
М. Лермонтов "Песнь о купце Калашникове"
Н. Седова "Баллада о русской фигне"
Надежда Тэффи "Демоническая женщина"
Роберт Рождественский "Поэма о разных точках зрения"
С. Кудинов "Мне снится ночью…", "Под ветром весенним"
Стихотворения Игоря Иртеньева: "Летающий орёл", "Во дни державных потрясений", "Кончался век", "Подайте, граждане, поэту", "Будь я малость помоложе"
Т. Артемьева, авторское стихотворение
Т.О. Киктенко (Мороз) "Баллада о звёздах"

Победными оказались:
«Школа прикола» по произведениям Артура Гиваргизова
А. Аверченко "Рыцарь индустрии"
А. Блок "Скифы"
А. Вознесенский «Мастера»
А. Писахов «Подруженьки»
А. Твардовский "Рассказ танкиста"
А. Чехов «Ушла»
А. Чехов "Из дневника одной девицы"
А.П. Чехов "Спать хочется"
Т. Артемьева стихотворение о русском духе и гражданстве
Агния Барто "Первая любовь"
Агния Барто "Снегирь"
Андрей Платонов "Корова"
Андрей Платонов «Юшка»
Б. Заходер "Клей", Н.Гумилёв "Крыса"
В. Гарус "Судьба"
Василий Шукшин "Сапожки"
Виктор Драгунский "Заколдованная буква"
Г. Остер "Праздник непослушания"
Да здравствует Театр! по мотивам рассказов Ирины Андриановой-Голицыной
Евгений Евтушенко "Армия"
Евгений Евтушенко "Непрявда"
Евгений Евтушенко "Сватовство"
Евгений Евтушенко "Сказ о русской игрушке"
Евгений Евтушенко "СССР-ФРГ. Репортаж из прошлого века"
Евгения Осетрова "Краса ненаглядная"
И. Мазунин "Уродливый кот"
Ирина Ракша "За деревом было солнце"
Константин Паустовский "Телеграмма"
Константин Симонов "Горят города по пути этих полчищ"
Л. Рубальская "Старые липы"
М. Булгаков «Театральный роман»
М. Зощенко "В театре"
М. Лермонтов "Песнь про царяя Ивана Васильевича, молодого опричника и удалого купца Калашникова"
М. Павич "Плакида"
Максим Горький "Сердце матери" (ЗАМЕНА - В. Шукшин "Сапожки")
Марина Цветаева "Если душа родилась крылатой…"
Михаил Жванецкий "Учителю"
Н. Седова "Баллада о русской фигне"
Н. Хаткина «Боялка»
О. Фокина «Подснежники»
Ольга Фокина "Подснежники"
Отрывок из моноспектакля по повести Альберта Лиханова "Мальчик, которому не больно"
Роберт Рождественский "Поэма о разных точках зрения"
Роберт Рождественский , отрывок из поэмы «210 шагов», глава «Историческое отступление о крыльях»
Русские мальчики
С. Есенин "Чёрный человек"
С. Чёрный "Бал в женской гимназии
Сергей Есенин "Я иду долиной…"
Сергей Михалков "Мой щенок"
Стихотворения Игоря Иртеньева: "Летающий орёл", "Во дни державных потрясений", "Кончался век", "Подайте, граждане, поэту", "Будь я малость помоложе"
Т. Артемьева, авторское стихотворение
Т. Кудрявцева "Детство Лёки"
Т. Овчинникова "Диалог с Добром"
Т. Овчинникова "Почему Петушки зовутся Петушками"
Ф. Абрамов "Самая счастливая"
Фазиль Искандер "Детский сад"
Чингиз Айтматов "Плаха"
Ю. Лихолетов «Галка и джентльмен»
Ю. Павлов "От креста до креста"
Юрий Коваль "Картофельная собака"
Юрий Погорельский "Сказ о русской балалайке"
Я. Вилькова "Облако по имени Ваня"

Основные шпаргалки при подготовке к конкурсу художественного слова:
- при выборе произведения опирайтесь на основную мысль автора, которую жаждите донести до слушателей. Только Ваше внутреннее чутьё может определить необходимость, своевременность, важность и сопоставимость конкретного произведения с Вами. Прочтение от души всегда имеет успех;
- произведение должно соответствовать возрасту чтеца, чтобы у выступающего было полное понимание тематики, содержимого и основной мысли произведения;
- произведение должно соответствовать полу чтеца, чтобы не пришлось перефразировать оригинальный текст или наряжать выступающего в унисекс;
- длинный оригинальный текст подлежит сокращению до заявленного в положении конкурса допустимого времени (обычно 6-8 минут), при этом не должна пострадать главная мысль произведения и основные моменты идеи автора;
- произведение не должно быть из числа школьной программы;
- не стоит брать часто исполняемые вещи (вышеперечисленные списки оградят Вас от повторений в рамках одного конкурса, а также Ваше прочтение обязательно будут сравнивать с предыдущими конкурсами всех годов и регионов);
- по возможности откажитесь от произведений или отрывков с ненормативной лексикой, о "чёрной" стороне жизни, убийствах, смерти;
- подготовку и репетиции проводите со специалистами по речи: преподавателем сценической речи, педагогом литературы в школе, режиссёром театра;
- позаботьтесь о внешнем виде выступающего: наряд и бижутерия, обувь, причёска должны соответствовать тематике произведения и возрасту чтеца;
- театральность через реквизит, декорации и чрезмерные жесты не приветствуются в художественном чтении;
- за полтора-два часа до выступления ограничьте/исключите приём пищи, чтобы свободная диафрагма Вам помогла на сцене;
- перед самым выступлением выполните артикуляционную и дыхательную гимнастику для восстановления нервного и физического баланса;
- если перед самым выступлением или конкурсным днём Вы решили сменить произведение, то проверьте списки или попросите ведущего обратить внимание жюри на замену произведения. В протоколе жури Вас легче искать по произведению, а не фамилии (Вы же не медийная персона). Поскольку прослушивания идут по системе нон-стоп, то в случае замены произведения внимание жюри на начале (а то и половине) Вашего выступления будет потеряно не в Вашу пользу;
- выйдя на сцену, убедитесь в наличии тишины и внимания к Вам зала и жюри. Начинайте выступление только после концентрации внимания на Вас;
- при исполнении глядите слушателям в глаза, рассказывайте конкретным зрителям, делитесь собой со всеми и удача будет Вашей!

среда, 22 ноября 2017 г.

Повтор, ещё повтор

Перед оформлением задачи в BTS (Bug Tracking System) тестировщика в большинстве компаний обязуют проверять список на наличие дубляжей.
Да, это правильно с точки зрения излишнего переполнения базы. Но если BTS не поддерживает функцию голосования за ускорение решения проблемы, то как раз дубликаты помогут увидеть руководству актуальность и серьёзность проблемы. Когда один и тот же баг проявляется у многих пользователей или с незначительными расхождениями в шагах, опциях, то это является важным поводом к повышению BV (Business Value). Если BTS не поддерживает голосование и линковку задач, а BV поднимать имеет право только старший сотрудник, то дубликаты багов - единственный выход из положения.
 

понедельник, 4 сентября 2017 г.

Решение проблем

Проблемы заставляют нас двигаться.
Решать проблемы дешевле по мере их поступления.
Ни одну проблему невозможно решить без исследования её причин.
Прежде чем обвинять всех окружающих, оцените свой вклад в проблему.
Ошибка аналитика - из уровня родительско-воспитательной: впитанное с молоком не вырубишь топором. Ошибка программиста - из уровня врачебной: убитого не воскресить. Какова цена ошибки тестировщика? Имеет ли тестировщик право на ошибку?
Правда всегда рано или поздно проявляется. Её содержимое на плечах тестировщика, а форма и время подачи на совести руководства.
Если все противостояния программистов и тестировщиков оформить в правила, то в команде с постоянным соблюдением устава конфликты исключены.