суббота, 15 июня 2013 г.

[life.photo] Бэтмен в Гомеле!

Снимок сделан всего пару часов назад в центре Гомеля. Хотя это скорее Бэтгёрл ;)


2/50mm, ISO 640, f=5.6, 1/320

[life.wow] Еще из воспоминаний Б.Е.Чертока. Ремонт шланга подачи жидкого кислорода подручными средствами

Невозможно не опубликовать этот фрагмент из мемуаров Б.Е.Чертока "Ракеты и люди". Это будет похлеще байки про две лошадиные задницы и диаметр ракеты-носителя :) Из описания истории первого пуска новой ракеты P-9 (9-го апреля 1961-го, за три дня до исторического старта Юрия Гагарина на одной из модификаций предшествующей ракеты P-7):

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

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

— Я выйду осмотрю. Осташев со мной, остальным из бункера не выходить!...

...Я и Мишин наблюдали через перископ. Двое, не торопясь, шли к окутанному белыми парами стартовому столу. Воскресенский, как всегда, в своем традиционном берете...

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

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

В 12 часов 15 минут ракета окуталась пламенем, разбрасывающим стартовый мусор, и, взревев, резко ушла навстречу солнцу. Первая ступень отработала положенные ей 100 секунд. Телеметристы по громкой связи доложили: «Прошло разделение, сброшен переходной отсек».

На 155-й секунде последовал доклад: «Сбои, сбои!.. В сбоях видна потеря стабилизации!»

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

— Пойду поищу берет, — как-то неопределенно сказал Воскресенский, направляясь к «нулевой» отметке.

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

— Надо бы простирнуть.

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

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

пятница, 14 июня 2013 г.

[life.photo] Из утренней прогулки в окрестностях спортбазы в Раубичах

25- и 26-го мая я был в Раубичах на третьем международном турнире Дартс-Весна 2013. В день приезда, 25-го, погода была неважная, пасмурно, прохладно, периодически шел дождь. Зато на следующий день с самого раннего утра ярко светило Солнце. И я не удержался и около 6-ти утра выполз из номера на фотопрогулку по окрестностям спортбазы.

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


50/1.4D, ISO 200, f=13, 1/160

четверг, 13 июня 2013 г.

[life.photo] Пока без названия

Снимок сделан сегодня в парке Гомеля:


80-200/2.8 170mm, ISO 280, f=5.6, 1/200

[work] Еще из воспоминаний Б.Е.Чертока. Об эффективности маленьких команд

Позволю себе еще одну цитату из мемуаров Б.Е.Чертока "Ракеты и люди":

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

ИМХО, отлично раскрыты причины успешности и эффективности маленьких стартапов. Именно это я наблюдал в Интервэйле в первые годы его становления. И вокруг этого у меня затем были жесткие разногласия с новым ТОП-менеджментом, который, с одной стороны хотел командовать коллективом посредством "выдачи постановлений правительства" и "контролем за сроками, графиками и всяческими показателями..." Но с другой стороны, требовал эффективности, которая достижима разве что в маленьких группах, не связанных жесткой отчетностью и прочим формализмом.

среда, 12 июня 2013 г.

[prog] Вспомнил про свою статью об использовании embedded DSL на Ruby

В Google+ увидел ссылку вот на это небольшое обсуждение. Немного улыбнуло. По-моему, в Рунете заговорили об использовании DSL уже довольно давно, никак не позже 2007-го. Вспомнил про свою статью, которую в 2008-м написал как раз для того, чтобы поделиться опытом использования DSL на Ruby для облегчения одной из моих тогдашних задач: Пример использования Ruby для генерации C++ кода в библиотеке разбора EMI протокола.

Статья довольно большая. Я в ней не делал явного акцента на том, в чем именно выгода от DSL. В статье рассказывается обо всем понемножку: от исходной задачи к аргументам в пользу DSL и альтернативам, а так же немного деталей устройства самого DSL и его использования. Так что ответ на вопрос "А в чем именно выгода от DSL" нужно будет искать в нескольких ее местах.

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

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

Упомянутый в статье DSL использовался для описания структуры пакетов прикладного протокола UCP/EMI. Из этого описания затем генерировались C++классы для работы с этими пакетами в C++ программах. Пример описания одного пакета и фрагментов сгенерированного кода находятся под катом.

вторник, 11 июня 2013 г.

[prog.process] Несколько вещей, которые не могу для себя прояснить

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


Первая вещь -- это эффективность специализации при разработке ПО. Я начинал работу программиста в тяжелые для этой отрасли на просторах СНГ времена (середина 90-х), в развалинах одной из крупнейших в СССР контор по разработке ПО. Поэтому тогда программисты были многостаночниками во всех смыслах. Начиная от спектра технологий и заканчивая выполняемыми обязанностями. Программист был и проектировщиком ПО (архитектором по нынешним меркам), кодировщиком (т.е. программистом в современном представлении), тестировщиком и техническим писателем. А в некоторых случаях (времена были голодные и каждый коллектив выживал как мог) опытный программист выступал и в качестве bisiness analyst-а + solution architect-а + project manager-а. Все в одном флаконе. Ну и как бы ничего, справлялись. У кого-то были проблемы с написанием документации, у кого-то в общении с клиентом. Но такие вещи решались в рабочем порядке, зачастую по принципу "глаза боятся, а руки делают".

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

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

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

Или же эффективность узкой специализации воспринимается как "общеизвестный" факт и сомнениям не подвергается?


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

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

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

И еще один момент мне не очень понятен по поводу аутсорса в РФ и РБ. Когда на аутсорс к нам передают разработку из США или Западной Европы -- это понятно, мы пока еще дешевая рабочая сила. Но вот когда российская фирма отдает на аутсорс кусок проекта российской же фирме -- вот это не очень понятно. Особенно когда обе базируются только в Москве и не имеют разработчиков в регионах :)

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


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

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

Соответственно, моральная мотивация сотрудников продуктовой компании выглядит достаточно очевидной: "Мы выпускаем лучший в мире продукт!" или "Наш продукт самый востребованный!" или "Наш конкурент выпустил действительно удачный продукт X, но ведь мы можем сделать свой Y намного лучше". Понятное дело, что чем крупнее становится продуктовая компания (например, масштабов Philips или Sony), тем хуже работает такого рода мотивация. Но деление на "свой" и "чужой" все равно очень четкое и на том, что "свое" должно быть лучше, чем "чужое", можно и нужно играть.

Но вот в чем мотивация людей в аутсорсинге? Причем меня в меньшей степени интересует мотивация людей на низких уровнях иерархии (вроде разработчиков, тестировщиков, дизайнеров, бизнес-аналитиков и т.д.). Тут может быть все что угодно: от страстного стремления научиться и набраться опыта до простого желания спокойно писать код с 9 до 18 в крупной стабильной компании с нормальным социальным пакетом. Но вот поднявшись чуть выше по иерархии, до тим-лидов, начальников подразделений и т.д. На чем играть?

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

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

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

понедельник, 10 июня 2013 г.

[life] Еще из воспоминаний Б.Е.Чертока. Просто из воспоминаний

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

А так цитата взята из мемуаров Б.Е.Чертока "Ракеты и люди". Речь идет о завершающем этапе подготовки к самому первому старту ракеты P-7. До этого на ее подготовку уже было потрачено несколько месяцев, а предшествующие первому пуску недели вообще проходили в жутком авральном режиме. Это нужно учитывать, читая следующий фрагмент воспоминаний:

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