четверг, 15 мая 2014 г.

Конспект книги Э.Голдратта "Критическая цепь"

Голдратт как всегда:
- читается захватывающе, на одном дыхании
- проповедует теорию ограничения везде и всегда
- приводит стопятьсот примеров для того, чтобы объяснить ключевые мысли

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


Конспект

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

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

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

— Что в нашей физической цепи эквивалентно проходу? Что определяется не только самими звеньями, а фактом их взаимодействия? Не вес. Если мы устраним все взаимодействия, все связи, если у нас останется только гора звеньев, вес останется прежним. Итак, какое качество характеризует цепь? Прочность цепи. Если сломается одно звено — всего-навсего одно звено — сломается вся цепь и прочность цепи упадет до нуля.

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

предположим, что необходимо измерить высоту здания. При использовании одного метода ответ получается десять ярдов, а при использовании другого метода — двадцать ярдов. Конфликт налицо. Вы думаете, что ученым в области точных наук придет в голову прийти к компромиссу? Что они скажут, что высота здания пятнадцать ярдов? Все ухмыляются.
— Что делают в точных науках, — продолжает Джонни, — когда возникает конфликт? Их реакция совершенно не похожа на нашу. Мы пытаемся найти приемлемый компромисс. А им такая мысль даже в голову не приходит. Их исходная точка никогда им этого не позволит: они не признают, что в реальности существуют конфликты. Вне зависимости от того, насколько широко приемлемы те методы, с помощью которых измеряли высоту здания, инстинктивное заключение ученых будет таковым, что за одним из методов лежит неверная исходная посылка. Вся их энергия пойдет на то, чтобы найти и исправить эту исходную посылку. Может быть, нам стоит сделать то же самое?

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

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

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

Локальная эффективность и отклонения (variances) являются неверными показателями.

— Что тогда является ограничением проекта? Что мы должны выбрать в качестве эквивалента бутылочному горлышку? — повторяю я мой вопрос.
— Критический путь.

— Мы перенесем всю подстраховку в конец критического пути.

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

Убеждение в необходимости сотрудничества совершенно необходимо. Времена, когда было можно диктовать, прошли. Если вы хотите, чтобы ваши люди думали и предлагали инициативы, вы не можете им диктовать.

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

[я] твердо верю в домашнее задание. В отличие от Джима мне нравится читать работы моих студентов. Это забирает много времени, но это единственный способ получить действительную обратную связь: чему я их научил как следует, где я поторопился, что ошибочно посчитал, что они должны бы знать. Я не нахожу это чтение скучным. Тем более что некоторые ошибки действительно смешные.

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

— Если существует конкуренция за ресурсы, — замечаю я, — критическая цепь может значительно отличаться от критического пути.

- Мы сейчас говорим о конкуренции за ресурс, — начинаю я объяснение. — Вы затрагивали эту проблему на лекциях по управлению производством?
- Конечно, — отвечает Брайен. — Каждый раз, когда перед станком есть очередь и приоритеты неясны, у нас возникает конкуренция за ресурс. Несколько заданий сражаются за то, чтобы быть обработанным тем же самым ресурсом в то же самое время.
— Именно, — подтверждаю я. — И как вы справляетесь с таким случаем? Вы учили, что глупо пытаться составлять график для каждого станка. Что вы должны делать?
— Определить бутылочное горлышко, — говорит Чарли.
— А потом?
— Потом максимально его использовать — сделать график работы для бутылочного горлышка.
— И этим, — говорю я, — вы устраняете любую конкуренцию в ограничении. Вы не просите ограничение сделать две вещи в одно и то же время. А потом? Чарли?
— А потом мы подчиняем. Подчиняем этому все остальные ресурсы.

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

Исходник в моей библиотеке: https://sites.google.com/site/pevgen/home/knigi/goldratt-kriticeskaa-cep

четверг, 8 мая 2014 г.

Настройка удалённого deploy для Tomcat c помощью ant

Сами задачи ant-а нормально описаны здесь : http://tomcat.apache.org/tomcat-7.0-doc/manager-howto.html#Executing_Manager_Commands_With_Ant
Но есть несколько дополнительных особенностей:

Дополнительные роли пользователей для deploy в tomcat-users.xml 

 В настройках пользователей Tomcat, в файлe .../conf/tomcat-users.xml для того пользователя, который будет указан в задачах ant-а для деплоя, добавить роль manager-script.
Т.е. для нужного пользователя строка в tomcat-users.xml будет выглядеть так :

<user name="manager" password="password" roles="admin-gui,manager-gui,manager-script" />


Ошибка PermGen при deploy

Настроить память PermGen при старте Java. Я не мелочился и ставил 256m для максимума. Настраивается в setenv.bat (или "в лоб" в catalina.bat).Если Tomcat стартован как widows-сервис, то настройка производится из пункта меню "Tomcat config"

-XX:PermSize=64m -XX:MaxPermSize=256m

Ошибка undeploy (не удаляется каталог и какие-либо библиотеки)

Суть в том, что при останове приложения часть библиотек (по разным причинам) не считаются Tomcat-ом выгруженными. Это может быть как из-за ваших утечек, так и из-за системных. В моём случае были проблемы с библиотекой oracle jdbc.
Лечится настройкой в файле .../conf/context.xml. Надо изменить строку как показано ниже : 

<Context antiJARLocking="true" antiResourceLocking="true">