четвер, 26 червня 2014 р.

Архитектурные подходы к Тест Фреймворкам


Добрый день читатель!

В ходе разбора документов набрел на довольно старую идею свести все типы архитектур фрейморков для автоматизированого тестирования (и автоматизации в общем)
В автоматизации известны такие типы фреймворков:

  • Record & Play
  • Functional decomposition
  • Action Sets 
  • Data Driven
  • Keyword Driven
  • Behaviour Drivn
  • Model Based

неділя, 25 листопада 2012 р.

Майндмап книги "Язык телодвижений" Алана Пиза

Наконецто я закончил майндмап книги "Язык телодвижений". И Хочу с вами поделиться, милый мой читатель.


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

Замечательный сериал для ИТ человека.

Добрый день читатель хочу с вами поделиться замечательным сериалом о жизни ИТшников.  Это сериал IT crowd - компьютерщики.

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


Остальные серии вы можете найти здесь и здесь или поискав
Думаю, вам понравить сериал. 

середа, 31 жовтня 2012 р.

Философия BDD при создании фреймворка на PHP

В рамках конференции Automation Testing Days буду рассказывать о современном подходе к автоматизации тестирования - Behaviour Driver Development

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

    Приходите на конференцию по автоматизированному тестированию - будет весело и интересно.

П.С. Спешите, чтобы успеть на раннюю регистрацию

Test Automation Days - конференция по автоматизированному тестированию.


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

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

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

Однако не зря мы назвали это событие Test Automation Days, помимо конференции мы проведем серию тренингов по автоматизации и мастер-классов, что позволит Вам получить не только теоретический опыт, но и много практики.
Не пропустите свой  шанс поучаствовать в столь грандиозном событии в мире автоматизации!
Сейчас идет ранняя регистрация по самой низкой цене 600 грн. Кроме того, все участники конференции получают скидку на все тренинги 10%.

неділя, 7 жовтня 2012 р.

Конференция AgileEE отзыв

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

  В этом году на конференции все больше говорилось о продуктивности команды, внедрении практик Kanban-Lean на проекте, о самоорганизации, саморазвитии и изменениях (changes and transformation). Также затронулась тема, что будет после Agile? На конференции известные Agile практики делились своими примерами и советами.

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

неділя, 5 серпня 2012 р.

Как быстро стать менеджером

    Месяца три назад мне в руки попалась книга Фёдора Нестерова "Fast-Менеджмент". Скажу честно я немного польстился на название книги, как говорят "почему бы не попробовать"
Это книга для тех кто хочет быстро стать руководителем. Хотя на самом деле не все так быстро бывает. Вам придется очень тяжело над собой работать чтобы когда нибуть все таки добиться цели "Стать руководителем".

субота, 4 серпня 2012 р.

"Как я влияю на тебя"

    В современном мире достаточно много информационных потоков. Но Вы когда нибуть задумывались как они влияют на вас?Наверное Вы не раз замечали, что просмотрев рекламный ролик вы решали купить этот товар. Почему происходит такая реакция? Роберт Чалдини в своей книге "Психология влияния" описывает основные механизмы манипулирования людьми, объясняет их причины и взаимосвязи.

неділя, 20 травня 2012 р.

Page mapping + Yaml + PHP

Добрый день читатель.
Сегодня хочу с вами поделится интересным подходом для мапинга елементов UI интерфейса Web страниц.

Нам с вами понадобятся всего три вещи: небольшое знание языка программирования PHP, YAML и принципов наследования классов в Java.


неділя, 13 травня 2012 р.

Архитектура тестового фреймворка для Behat/Mink

Добрый день, читатель.

В текущее время, у меня на проекте внедряется подход Behavior Driven Development
Хочу с вами поделится архитектурным решениям для тестирования с помощью Behat

В архитектуре тестового фреймворка используется стандартный подход. Вот такой:


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

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

Как видно с рисунка, то базовый клас имеет несколько зависимостей - зависимость на модель вашего приложения и на утилитный клас PageHelper. Последний будет расматриватся в следующем посте.  Зависимость на модель призвана облегчить Given шаги.

Вас наверное интересует, почему именно такая архитектура? Обоснования следующие:

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

субота, 12 травня 2012 р.

Тестирование скорости загрузки полной страницы на JMeter

Добрый день, читатель.

Последнее время меня просят проверить производетельность приложения и учитывать все внутрение ресурсы страницы.

Есть несколько способов добится своей цели: простой и сложный.

Простой способ состоит в том, что в JMeter подобная возможность уже встроена. При добавлении HttpRequestSampler к вашему тест плану, нужно выбрать чекбокс "Retreive all Embedded  recources from html files".



Сложный способ состоит в том, чтобы в ручную выбирать внутрение ресурсы с помощью средств XPath Extractor и формировать запросы следующим способом: Сначала нужная странца, и отдельные запросы по картинкам, CSS, JS



Отличия первого и второго способом состоят в том как выполняются запросы и как они сохраняются.

В первом случае загрузка "внутреностей" страницы происходит как подзапросы текущего.  При этом JMeter запишет результат в таком виде

<httpSampler lb="mypage" url="page.html" t="546">
    ...
   <httpSampler url="myimg.png" t="24"/>
</httpSampler>

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

<httpSampler lb="mypage" url="page.html" />
<httpSampler lb="mypage - myimg.png" url="myimg.png"/>

Последние результаты нужно будет еще дополнительно обрабатывать и группировать, чтобы получить значение полной загрузки странцы, когда в первом мы получаем эго в готовом виде (об этом побеспокоится сам JMeter)

неділя, 1 квітня 2012 р.

Мой календарь событий на Апрель



Этот месяц выглядит довольно насыщеным по сравнению с мартом.
Вот следующие мероприятия:
  • 9 апреля - проведу воркшоп на тему "Нагрузочное тестирования с помощью JMeter". (анонс: ссылка 1 ссылка 2 )
  • 10 и 11 апреля - буду слушать конференцию Fun ConfeT&QA (программа)
  • 20 апреля - выступлю с докладом по нагрузочному тестированию на посиделках АТ.Инфо.
  • 21 апреля - посещу конференцию Entrepreholic 
  • 28 апреля - проведу тренинг "Нагрузочное тестирование. Что? Как? Почему?" (регистрация)
Каждый день что-то меняется, по-этому  календарь может измениться.  Если вы хотите быть в курсе всех событий - рекомендую подписаться на мой твиттер

Отчет за март 2012

Добрый день.

Пришло время подвести итоги прошедшего месяца.


Март месяц не был богат на события, но кое-то все таки получилось осуществить:
  • С 12 по 14 марта  - послушал конференцию Chief ConfeT&QA 2012 (программа)
  • 23 марта  - побывал на мастер-класса Радислава Гандапаса "Пан или пропал. Идеология Лидера" (Отчет)

В общем март месяц был "затишьем перед бурей", то есть событиями которые произойдут в апреле.
Смотрите расписание в моем следующем посте.

неділя, 25 березня 2012 р.

Пан или пропал. Идеология лидера - идеология победы

Добрый день, мои читатель!
   
    В пятницу 23 марта мне удалось попасть на тренинг известного оратора и предпринимателя Растислава Гандапаса на тему "Пан или пропал. Идеология лидера - идеология победы"

 Тема не заурядная и заставляет задуматся над тем, кем являюсь Я?

Хочу поделится мыслями на тему:
                  Я являюсь лидером, потому что...

     ...Так называют человека, который есть самим собой и включает в себя качества:
  • благоразумен
  • мужественен
  • эмоционален
  • справедлив
     У меня развиты все четыре качеств, хотя над некоторыми нужно еще очень много работать. Например, мне необходимо работать над эмоциональность, потому что это качество должно быть внутреним, а не внешним. Для мужества необходимо преодолевать страх, что не дает двигатся вперед. Движение одно из сильных проявлений лидера. Если лидеру предстоит выбор в ситуации неопределенности, он выбирает - действие. И то что делает лидер - это хорошо!

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

...Существует три категории мотивов для лидера:
  • прагматическая (деньги, время ради денег, карьера, власть)
  • невротическая (реализация чего-то, чего не хватает в личной жизни)
  • идеологическая (получения удовольствия от процесса)
Я склонен ко всем трем категориям, но больше к невротической и идеологической. Невротичность обьясняется постоянным контролем за своими действиями, "наказаниями" за проступки, не здоровым желанием работать через силу. Идеологичность, потому что получаю удовольствие от процесса достижения цели.

 ...каждый человек имеет свою картину мира. Она не идеальна, но у лидера она наиболее отвечает реальности. На картину мира влияют три вещи: окружение, опыт, убежденность. Лидер находится в постоянном расширении своей картины мира. А это достигается расширением своего окружения и опыта. А с убеждениями приходится боротся и побеждать. Борьба с последними - тупая, постоянная работа над своим умом.

... мои мотиваторы - это новые идеи, от которых получаю удовольствие=)

 ... препятствия с которыми нужно боротся (и побеждать) это:
  1. Расплывчаствость поставленых целей
  2. Нетерпение/ожидание быстрых результатов
  3. Боязнь новых ситуаций
  4. Боязнь проблем
  5. Поведение и ожидания окружающих
  6. Неверие в собственные силы
  7. Недостаточное умение и навыки
...лидер - это эндорфиновый и адреналиновый наркоман.
...моя жизнь - это революция хаоса и деньги в ней только средства.
...Я действую

вівторок, 20 березня 2012 р.

Workshop: Нагрузочное тестирование с помощью JMeter

Детали: 
Город: Киев
Адрес: уточняется
Дата и время: 09.04.2012, 18:00
Количество мест: 15
Стоимость:
200 грн при оплате до 28.03.2012,
300 грн при оплате до 09.04.2012,
400 грн при оплате в день тренинга: 09.04.2012

Зарегистрироватся на воркшоп
      В современном мире интенсивного развития многопользовательских интерфейсов и систем важно обеспечивать высокую скорость и работоспособность приложений. На этом нелегком пути возникает необходимость нагрузочного тестирования.
     Так как большинство систем работает на уровне протокола HTTP, то классическим и правильным инструментом для нагрузочного тестирования будет JMeter - простой, бесплатный, с удобным интерфейсом и гибкими возможностями.
     Как записать, сконфигурировать и запустить тест на JMeter? На протяжении 4 часов мы будем интенсивно работать за ноутбуками в группах. Начнем с 5% теории и ознакомимся с инструментом JMeter, а после попрактикуемся в создании сценариев, конфигурировании самой простой постоянной нагрузки и анализу полученных результатов.

Программа воркшопа:
  • Краткий обзор о нагрузочном тестировании, его целях и задачах. 
  • Познакомимся с инструментом JMeter и его возможностями 
  • Напишем несколько сценариев, запустим их и посмотрим результаты 
  • Немного усложним сценарии и проанализируем результаты с помощью Excel 

Наличие ноутбука обязательно! 

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

неділя, 18 березня 2012 р.

Формируем отчет о полной загрузке страницы

Задача:
Написать сценарий который будет загружать страницу со всем внутреним фаршем. В отчете отобразить суммарное время загрузки страницы со статикой.
Цель: 
Проверить скорость загрузки страниц на клиентской стороне при большой нагрузке

Теоретическая часть:
Загрузка страницы в бразер стостоит из нескольких запросов:
  • сама страница (HTML), 
  • картинки (PNG, JPEG, JPG, GIF, BMP), 
  • файлы разметки (CSS), 
  • файлы клиентского JavaScript (JS), 
  • другие об'экты (flash, video, audio, etc) 
Сценарий: 
Записывается запрос для самой страницы. В нем с помощью Post-Processor выкусывается вся статика. Дальше в цикле выполняем запросы по всем статическим ресурсам.
Все результаты сохраняются как XML файл.

Проблемы: 
1) Как идентифицыровать, что статика принадлежит именно нашему запросу
2) Как сгруппировать запросы в отчете.

Решение: 
1) Используем Parametrised Controller + Module Controller для отправки запроса. Параметры: название страницы, протокол, URL страницы, GET, POST. Название страницы добавляем к названию запроса в статике
2) Пишем следующее XSL преобразование:
<xsl:template name="create-pagelist">
            <xsl:for-each
                select="/testResults/*[not(@lb = preceding::*/@lb) and not(contains(@lb , '.jpg') or contains(@lb, '.png') or contains(@lb, '.gif') or contains(@lb, '.css') or contains(@lb, '.js'))]">
                <xsl:variable name="uniqueLabel" select="@lb"/>

                <uniquelist><xsl:attribute name="lb"><xsl:value-of select="@lb" /></xsl:attribute>

                <xsl:for-each select="/testResults/*">
                    <xsl:if test="starts-with(@lb, $uniqueLabel)">
                        <value>
                            <xsl:attribute name="lb"><xsl:value-of select="@lb" /></xsl:attribute>
                            <xsl:attribute name="t"><xsl:value-of select="@t"/></xsl:attribute>
                            <xsl:attribute name="ts"><xsl:value-of select="@ts"/></xsl:attribute>
                            <xsl:attribute name="s"><xsl:value-of select="@s"/></xsl:attribute>
                            <xsl:attribute name="tn"><xsl:value-of select="@tn"/></xsl:attribute>
                            <xsl:attribute name="by"><xsl:value-of select="@by"/></xsl:attribute>
                            <xsl:attribute name="rc"><xsl:value-of select="@rc"/></xsl:attribute>
                            <xsl:attribute name="rs"><xsl:value-of select="@rs"/></xsl:attribute>
                            <xsl:attribute name="rm"><xsl:value-of select="@rm"/></xsl:attribute>
                            <assertionResult><failureMessage><xsl:value-of select="assertionResult/failureMessage" /></failureMessage></assertionResult>
                            <binary><xsl:value-of select="binary" /></binary>
                        </value>
                    </xsl:if>
                </xsl:for-each>
                </uniquelist>
            </xsl:for-each>
    </xsl:template>

Данное преобразование формирует XML ввиде
 <uniquelist lb="/promo/professions">
        <value by="15141" label="/promo/professions" rc="200" rm="OK" rs="" s="true" t="2535" tn="Scenario 1 1-5" ts="1330891472753">
            <assertionresult>
                <failuremessage>
            </failuremessage></assertionresult>
            <binary>
        </binary></value>
        <value by="55290" label="/promo/professions - /resources/styles/client.new/style2.css?v=634653478841984398" rc="200" rm="OK" rs="" s="true" t="462" tn="Scenario 1 1-15" ts="1330891485595">
            <assertionresult>
                <failuremessage>
            </failuremessage></assertionresult>
            <binary>
        </binary></value>
        <value by="923" label="/promo/professions - /resources/images/client.new/soc-vk-s.png" rc="200" rm="OK" rs="" s="true" t="269" tn="Scenario 1 1-2" ts="1330891485861">
            <assertionresult>
                <failuremessage>
            </failuremessage></assertionresult>
            <binary>
        </binary></value>
    </uniquelist>



Но для формирования отчета нам понадобится еще одно XSLT преобразование:


<xsl:template name="pagelist">

        <h2>Pages</h2>
        <table class="details" border="0" cellpadding="5" cellspacing="2"
            width="95%">
            <tr valign="top">
                <th>URL</th>
                <th>Requests count</th>
                <th>Failures</th>
                <th>Success Rate</th>
                <th>Average Time</th>
                <th>Min Time</th>
                <th>Max Time</th>
            </tr>

            <xsl:for-each select="uniquelist">
                <xsl:variable name="label" select="@lb" />
                <xsl:variable name="count" select="count(value)" />
                <xsl:variable name="failureCount"
                    select="count(value[attribute::s='false'])" />
                <xsl:variable name="successCount"
                    select="count(value[attribute::s='true'])" />
                <xsl:variable name="successPercent" select="$successCount div $count" />
                <xsl:variable name="totalTime" select="sum(value/@t)" />
                <xsl:variable name="averageTime" select="$totalTime div $count" />
                <xsl:variable name="minTime">
                    <xsl:call-template name="min">
                        <xsl:with-param name="nodes" select="value/@t" />
                    </xsl:call-template>
                </xsl:variable>
                <xsl:variable name="maxTime">
                    <xsl:call-template name="max">
                        <xsl:with-param name="nodes" select="value/@t" />
                    </xsl:call-template>
                </xsl:variable>
                <tr valign="top">
                    <xsl:attribute name="class">
                    <xsl:choose>
                        <xsl:when test="$failureCount &gt; 0">Failure</xsl:when>
                    </xsl:choose>
                </xsl:attribute>
                    <td>
                        <xsl:if test="$failureCount > 0">
                            <a>
                                <xsl:attribute name="href">#<xsl:value-of
                                    select="$label" /></xsl:attribute>
                                <xsl:value-of select="$label" />
                            </a>
                        </xsl:if>
                        <xsl:if test="0 >= $failureCount">
                            <xsl:value-of select="$label" />
                        </xsl:if>
                    </td>
                    <td>
                        <xsl:value-of select="$count" />
                    </td>
                    <td>
                        <xsl:value-of select="$failureCount" />
                    </td>
                    <td>
                        <xsl:call-template name="display-percent">
                            <xsl:with-param name="value" select="$successPercent" />
                        </xsl:call-template>
                    </td>
                    <td>
                        <xsl:call-template name="display-time">
                            <xsl:with-param name="value" select="$averageTime" />
                        </xsl:call-template>
                    </td>
                    <td>
                        <xsl:call-template name="display-time">
                            <xsl:with-param name="value" select="$minTime" />
                        </xsl:call-template>
                    </td>
                    <td>
                        <xsl:call-template name="display-time">
                            <xsl:with-param name="value" select="$maxTime" />
                        </xsl:call-template>
                    </td>
                  </tr>
            </xsl:for-each>
        </table>
    </xsl:template>





Итого результат будет в следующем ввиде:
(Я упустил секции для формирования Summary, но я думаю читател сможет догадатся как их реализовать по аналогии)



неділя, 26 лютого 2012 р.

SeleniumCamp: Отзыв докладчика

Во второй раз прошла уникальная конференция посвященная только одному инструменту Selenium. И это конференция SeleniumCamp

В этот день около 350 участников собралось в БЦ Парус для того чтобы поделится/получить опыт(ом) использования инструмента тестирования Selenium. Организаторы не разочаровали участников представив много полезных техник и отличных докладчиков.

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

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

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

И как выразился Алексей Солнцев "Слава не заставила себя ждать". Во время кофебрейка жалуемсяобсуждаем проблемы проектов:

---
А теперь погорим о знаниях и идеях вынесеных с конференции.
Утром, я хотел пошлушать Девида Бернса, по этому пропустил доклад о том, как Денис Чернилевский работает с 10000 тестов на селениум. Так как отзывы участников положительны, я послушаю данный доклад на видео. Дальше я остался в кулуарах и пораспрашивал Девида о JsonWiredProtocol и ошибках в нем (это наболевшая тема), а также немного о будущем инструмента. Девид также расказал с какими проблемами они стыкаются при процесинге багов. Ближе к обеду были оооочень скучные доклады __на_замусоленую_тему__ по распараллеливанию с помощью TestNg/Selenium-Grid и приготовлению бутербродов на Selenium. Второй доклад я слушал в полуха, тк готовился к своему выступлению после обеда, но услышал и утвердился в следующем: архитектура selenium docs -> page docs -> pages -> elements -> actions -> tests все чаще и чаще встречается (хотя с небольшими вариациями и пропусками). Мне кажется, что данный подход становится стандартом для написания автоматизированых UI тестов. Это радует.

Вторая половина дня прошла в "отходняке" от доклада и "лучах славы". =))

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


P.S. И последнее: К докладам нужно готовится, тогда все будет замечательно.

субота, 11 лютого 2012 р.

25 февраля Selenium Camp 2012 в Киеве

На просторах родного города Киев произойдет одно из знаменательных событий в мире автоматизации - конференция посвященная инструменту автоматизации тестирования Selenium.



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

Приходите будет весело!

субота, 21 січня 2012 р.

О Теории Ограничений.

Недавно прочитал книги Элияху Гольдрадт "Цель", "Цель 2" и с них началось мое знакомство с Теорией Ограничений.


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

Расмотрение книг начну пожалуй с предстваления процесса по TOC (theory of constrains)

1) Определить "узкие места" системы
2) Решить как експлуатировать "узкие места"
3) Подчинить все остальное принятому решению. (Сделать так, чтобы все остальные ресурсы шли в ногу с ограничениями)
4) Увеличить пропускную способность "узких мест" с помощю избыточных ресурсов, что могут делать тоже, что и "узкие места"
5) Если узкое место перестало быть узким местом, вернутся к пунтку 1 и повторить процедуру.

Итак, есть описание, процесса (в книге к этому процессу герои подходят постепенно, решая массу сопуствующих проблем)

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

1) Принятие решений на основе деревьев действительной реальности
2) Принятие решений на основе деревьей будущей реальности
3) Разрешение конфликтов с применением техники "грозовых туч"
4) Техника логического принятия решений основаная на принципе "Если .. то"
5) Почему, как, и зачем работает принцип "Барабан-буфер-канат"

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

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

Линки:
http://www.tocpeople.com/index.php/2011/07/uproshhennaya-sistema-baraban-bufer-kanat/
http://gaap.ru/articles/80182/

Управляем изменениями (С) Ицхак Адизес

Недавно прочитал книгу бизнес тренера Ицхака Адизеса "Управление изменениями". Даная книга заставила очень о многом задуматся, переосмыслить себя как руководителя, а также к личностным качествам руководителя.


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

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

Любое изменение приводит к возникновению проблем, а проблемы в свою очередь нуждаются в управлении.  Роль управления сводится к двум факторам. Это принятие решения и его осуществления. В современном мире принято считать, что решения должны обладать руководители. Но для того чтобы руководитель мог принять решения то ему необходимо обладать характерными свойствами
  • Предпринимательсва (E)
  • Производительности (P)
  • Администрирования (A)
  • Интегрирования (I)
Но один человек не может обладать всеми четырьмя свойствами, тк они находятся в конфликте между собой. Поэтому необходимо иметь комплементарную команду. Команда которая сумарно бы давала максимальную комбинацию EPAI . Минусами такой команды будут медленность решений и различные стили управления, что будет приводить к конфликтам. НО самым важным моментом в такой ситуации будет общее доверие и уважение внутри команды.

После принятие любых решений необходимо очень быстро осуществлять эти решения. И для этого любому руководителю нужно обладать достаточными полномочиями, влиянием и властью (или capi) . 


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

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

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

Еще одним важным моментом, о котором еще необходимо помнить, есть взаимосвязь того что у нас есть, того чего мы хотим и того что мы должны делать, т.е. принцип Есть, Хочу, Должен

Давайте посмотрим на схему, что у нас получилась: