25 февраля 2009 г.

О продуктивности ИТ специалистов

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

С приходом Глобализации (или для нас скорее Гуглизации) важным показателем продуктивности стало умение быстро найти ответ на интересующий Вас вопрос в Интернете. И в частности знание Английского языка, стандартной ИТ терминологии (в первую очередь англоязычной) и умение и желание общаться на англоязычных форумах (stackoverflow, twitter-ах, nabble-ах, листах рассылок и т.д.).

Все три вышеозвученных критерия являются необходимыми, но не достаточными: т.е. если человек слабо ориентируется в Английском, не знает стандартной ИТ терминологии и не признает stackoverflow, nabble & Co, то он, с большой долей вероятности, не превратится в хорошего ИТ специалиста. Обратное, к сожалению, не верно.

Чем плох Русский? Он не плох, он даже хорош, но ИТ не его область. Приведу только один перевод: термин "impersonation" звучит как "олицетворение". Наверное, к этому можно привыкнуть.

Чем плохи sql.ru, rsdn.ru и другие русскоязычные ресурсы - они не плохи, они даже хороши, но как Вы знаете, все инновационные в ИТ вещи происходят не в Русскоговорящих странах (к счастью, есть Питерское исключение из этого правила). Соответственно вероятность найти ответ на интересующий Вас вопрос на англоязычных форумах гораздо выше.

Зачем знать стандартную ИТ терминологию объяснять не буду. Надеюсь это очевидно.

Почему искать нужно Google-ом, а не Yandex-ом, Rambler-ом или другим поисковиком? Также ответ достаточно очевиден - Google, на сегодняшний день, наиболее качественно ищет по англоязычному контенту.

Как изучать стандартную ИТ терминологию (англоязычную)? Читайте книги. Англоязычные. По ИТ. Не верьте переводам, они близки к тексту, содержат ошибки, создают такие "шедевры" как "олицетворение" и "брендмауэр" (один из официальных переводов firewall на Русский) и опаздывают на всегда. Т.е. к часто к моменту выхода русского перевода книги она уже не актуальна (вышла новая версия, продукт умер и т.д.).

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

Какие книги читать? Вопрос сложный. Почитайте review или спросите совета на форумах (например, здесь).

Где их брать? Покупать или "брать почитать". "Брать почитать" можно на Safari. Покупать можно электронные версии (они зачастую доступны прямо на сайтах издательств до выхода по мере написания глав и продаются за это с существенными скидками; т.н. early access version).

Зачем я это пишу? Чтобы стало больше хороших ИТ специалистов.

23 февраля 2009 г.

Git for geeks?

Не так давно (примерно в начале 2008 года) на горизонте ИТ появился новый buzzword - DVCS (distributed version control systems). Особенно часто в контексте DVCS упоминаются Git, Mercurial и Bazaar.

Зачем они нужны и как коррелируют с традиционными VCS (SVN, CVS, VSS и др.) неплохо изложено в статье на InfoQ.

Я хотел бы задать ряд вопросов читателям этого блога:
  1. Есть у кого-то практический опыт перехода с традиционной VCS (например, SVN) на DVCS?
  2. Есть ли смысл в использовании DVCS для небольших и средних проектов?
  3. Как обстоят дела с безопасностью в DVCS (исходя из беглого знакомства с Git - в рамках одного репозитория все пользователи видят все)?

22 февраля 2009 г.

TED: Think broader

Начиная с 1984 года в Monterey, California проходит ежегодная конференция TED (Technology Entertainment Design). TED - это действительно уникальное событие: на нем Bill Gates рассказывал про борьбу с москитами, малярией и о развитии образования, Gustavo Dudamel - про дирижирование оркестром, David Perry - про историю видеоигр, Rivers - про историю одной девушки, David Gallo - про подводный мир, Robert Lang - про оригами, Isabel Allende - о себе, Gever Tulley - о детях, Arthur Benjamin - о mathemagic. Это далеко не полный список лучших, на мой взгляд, выступлений опубликованных за 2008-2009 годы.

Почему я пишу об этом в ИТ блоге? Это message всем тем, кто считает, что в off-line-e нет жизни. Смотрите на мир шире. Оставайтесь всю жизнь любознательными детьми.

16 февраля 2009 г.

Microsoft: Free software for startups

Недавно компания Microsoft начала программу BizSpark, которая направлена на предоставление startup-ам бесплатного доступа к программному обеспечнию Microsoft: Visual Studio, MSDN Subscription, Windows Vista, Microsoft Office, SQL Server и многого другого.

Краткая информаци про программу:
BizSpark ™— новая инновационная программа компании Microsoft, направленная на поддержку начинающих компаний (стартапов) и частных лиц, разрабатывающих программное обеспечение и сервисы. В рамках этой программы Microsoft предоставляет доступ к лицензиям на средства разработки, технической поддержке и другие преимущества. Таким образом, начинающая компания или частное лицо, которые, как правило, не имеют свободных средств на построение качественной IT-инфраструктуры, получают хорошую возможность для старта и успешного развития бизнеса. Регистрация в программе бесплатна.

Программа действует для участников из России, Украины, Белоруссии, Казахстана, Узбекистана, Азербайджана, Армении и Грузии.

Требования к участинкам программы:

В программе BizSpark могут участвовать частные лица, индивидуальные предприниматели без образования юридического лица и юридические лица, являющиеся непубличными компаниями (то есть в форме ООО и ЗАО).

Для участия в программе BizSpark необходимо выполнить все следующие условия:

  • вы (физическое лицо или компания) должны разрабатывать программный продукт или услугу, основанную на программном обеспечении, который(-ая) будет являться ключевой компонентой собственного бизнеса соответствующего физического лица или компании;
  • если вы – компания, то компания должна быть частной;
  • менее 3 лет в бизнесе;
  • годовой оборот менее 500 тысяч долларов США.
Некоторые особенности программы:
  • Вход рубль - выход сто: участие в программе бесплатное, а вот при выходе с вас захотят 100$ (не представляю как Microsoft и партнеры планирует контролировать этот процесс)
  • Сумма годового оборота зависит от страны регистарции компании или проживания частного лица. Для стран СНГ - 500 тысяч долларов США, а вот для Китая, к примеру, - 750 тысяч долларов США, а в Турции всего 250 тысяч долларов США
  • Регистрация проводится не только напрямую в Microsoft, но и через сеть партнеров (например, Softline или Softkey).
Личные умозаключения:
  • В общем-то, BizSpark является логичным продолжением программы Microsoft Action Pack Subscription, ориентированным на более узкий сегмент ИТ индустрии - на startup-ы
  • Скорее всего, появлением данной программы это продолжение также и темы т.н. Express версий Visual Studio, SQL Server-a, а до этого - Microsoft Jet-a
  • Зачем это все нужно Microsoft? Я бы охарактеризовал это как снижение стоимости входа на рынок разработок для платформы Windows/.Net. Т.е. для того чтобы разрабатывать под Windows нам нужно: как минимум лицензия на Windows для каждого разработчика, некоторым из них нужен Microsoft Office, неплохо было бы иметь систему контроля версий, а для нее нужен Windows Server и т.д. В результате даже для небольшой команды из 2-3 разработчиков начальные инвестиции в программное обеспечение Microsoft могут достигать нескольких тысяч долларов (даже с учетом использования т.н. Express версий продуктов). Альтернатива очевидна - использование бесплатных (читайте open source) продуктов в качестве замены дорогостоящим аналогам от Microsoft: Linux вместо Windows, SVN/Git/Mercurial вместо Team System и т.д. Но на Linux не так удобно разрабатывать под .Net так что следующийм логичым шагом будет отказ от платформы Microsoft в пользу, к примеру, Java, LAMP или другой платформы, стоимость входа на которую будет ниже.

15 февраля 2009 г.

Manager and Career tools

На протяжении последних 3-х лет Mark Horstman и Mike Auzenne выпускают два замечательных podcast-a: Manager tools и Career tools. У каждого из них своя целевая аудитория: Manager tools ориентирован на менеджеров в первоначальном значении этого слова (я не имею в виду "менеджеров по уборке", "менеджеров по охране" и "менеджеров по продажам" - это уборщики, охранники и продавцы), а Career tools - на всех сотрудников (в том числе потенциальных), которых могут заинтересовать изменения в карьере. Оба podcast-a на английском языке.

Лучшие из прослушанных podcast-ов Manager tools:
Лучшие из прослушанных podcast-ов Career tools:

13 февраля 2009 г.

Внедрение – проект или процесс?

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

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

Попробуем проанализировать основные ошибки, которые допускаются при внедрении ПП:

1. Битвы проигрываются за столом

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

2. Есть ли у вас план, мистер Фикс?
Внедрение начинается с планирования. План внедрению нужен для того, чтобы в любой момент времени знать на каком этапе находится внедрение ПП, сколько еще осталось до момента его запуска, что уже сделано и что еще предстоит сделать. Для составления первоначального плана внедрения лучше использовать специализированные инструменты такие как Microsoft Project или Project Workbench. Их основное преимущество по сравнению с Microsoft Excel, возможность задания связей между задачами (например, обучение не может начаться, до окончания фазы настройки и т.д.), автоматическое отслеживание выходных дней (правда Вам все равно придется помнить о локальных праздниках, сезонах отпусков и т.д.) и возможность сравнения предполагаемого плана внедрения и текущего (например, в Microsoft Project, есть возможность задать т.н. baseline, и по мере внесения изменений с ходом проекта в план, сравнивать его с baseline). Зачастую, на этапе планирования просто не возможно предусмотреть «подводные камни» и задачи, которые «подразумевал»бизнес и которые не были отображены в первоначальном плане внедрения. В любом случае, чем детальней план, тем больше вероятность того, что Ваш проект будет выполнен вовремя. Под термином «детальный план», я подразумеваю «разумную» степень детализации, т.е. с точностью до логически неделимой задачи (например, обучение пользователей, подготовка определенного отчета и т.д.). Обязательно сделайте запас в плане внедрения: помните, что мгновенное переключение сотрудников с одной задачи на другую невозможно. Есть и объективные факторы, которые следует заложить в план внедрения. Например, переезды между офисами, зависимость от внешних поставщиков (например техники или коммуникационного оборудования) и т.д. Наш обычный запас времени в проекте колеблется в диапазоне 10-30%.

3. Внедрение - процесс или проект?
В чем разница между проектом и процессом внедрения? Сколько раз нам доводилось слышать, что компания XYZ внедряет систему ABC уже третий год и уже совсем почти внедрила. Это процесс внедрения: известно что внедряют, известно где внедряют, известно (по крайней мере кому-то) зачем внедряют, но вот конца проекта все нет. Мне доводилось слышать про проекты, которые длятся более пяти лет, которые внедряет уже третья по счету ИТ команда и пр.

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

Зачем нужны процессы внедрений?
Насколько я знаю, они служат разным целям: например, увеличению стоимости компании. К примеру, Вы объявляете о начале внедрения продукта ABC, подписываете с фирмой поставщиком договор на приобретение лицензий и внедрение продукта на 1 млн.$. Часть этой суммы платится сразу (предположим 25%), оставшаяся часть поэтапно по ходу окончания проекта (например, ежеквартально). Что произошло с точки зрения стоимости компании в которой начат процесс внедрения ABC? Она подорожала. В идеале на 1 млн.$, а то и больше. Вы заплатили за начало внедрение 250тыс$, ваша компания подорожала на 1млн.$ - надо ее скорее продавать :), что мы и видели в банковской системе Украины на протяжении последних нескольких лет: как только банк объявляет о подписании договора о внедрении "Большой системы", можно ожидать новостей о его продаже. Если продать компанию сразу не удается, а платить за внедрение нужно, дорогостоющую команду внедренцев распускают и набирают новую "не хуже, но дешевле". Главное для руководства компании максимизировать разницу между увеличением стоимости комапнии и стоимостью внедрения.

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

И последний тип - внедрения, которые никому не нужны или которые явным образом саботируются сотрудниками компании, где происходит внедрение. Давным давно, когда я еще занимался , достался мне проект внедрения бухгалтерии на одном из отечественных телеканалов. В бухгалтерии работала стайка бухгалтерш душ до 10, которые что-то бойко и долго считали
в Excel-e. У каждой из них был свой участок работ (например, расчет зарплаты, начисление амортизации и т.д.), которым они занимались практически целый месяц. Неделе на второй внедрения стало понятно, что назревают проблемы: амортизация вместо 20 дней считалась минут за 40, зарплата с учетом всех самых зверских начислений-удержаний вписывалась дня в 3-4. После этого проект перешел в процесс. Сотрудницы, которые еще вчера бойко что-то вводили в сегодня потеряли к проекту всякий интерес. Нашлось несколько десятков причин почему "программа плохая" и чем "Excel лучше". Они поняли, что с внедрением в их отделе грядут сокращения. Быть сокращенным никто не хотел и по-этому начался откровенный саботаж проекта. Мой пример не единичный, не раз видел внедряемые решения, которые захотел (подставить нужное: директор, испольнительный, финансовый или еще какой директор), которые не приносили рядовым сотрудникам никаких "added values" (как это сказать по русски :), а наоборот добавляли им хлопот, а то и напрямую грозили потерей рабочего места. К слову на телеканале мы месяцев через много таки внедрили, но работала она только на тех участках, где не грозилу увольнением персоналу.

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

9 февраля 2009 г.

Записки автоматизатора или сальдо мортале

Бессмертный опус Андрея Орлова "Записки автоматизатора" попал ко мне году этак в 2003. Несколько фраз и жизненных принципов из него применяемых на практике и прочно укоренившихся в моем обиходе:
  • Результатом автоматизации бардака всегда становится автоматизированный бардак.
  • Сотрудник, который знает свое непосредственное дело хуже Вас, - плохой сотрудник.
  • Если качество или производительность труда программиста можно повысить с помощью материального стимулирования, то этого программиста следует уволить.
  • Качество и производительность труда программиста всегда можно понизить с помощью отрицательного материального стимулирования. Например, понижая ему зарплату после каждого внедрения, можно добиться полного отсутствия уже третьего внедрения.
Про внедрение:
Я могу предложить другие признаки, по которым можно определить успешность хода внедрения.
  • Вы снова ночуете дома.
  • Вам удалось увидеть своих детей не спящими.
Отрадно видеть, что Андрей написал и опубликовал в 2008 книгу "Записки автоматизатора. Профессиональная исповедь", в основу которой легли наброски "Сальдо мортале" 2001 года.

8 февраля 2009 г.

Microsoft Excel как средство генерации кода

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

Предположим, нам требуется изменить данные так называемых справочников (dictionaries). Приведу простой пример, нужно заполнить справочник стран согласно стандарту ISO 3166. Их всего-ничего: 246 штук. Т.е. нам нужно подготовить SQL скрипт по вставке данных для этих стран. В простом случае у нас получиться около 246 строк SQL кода вида INSERT INTO countries (id, code) values ('UA', 'Ukraine'). Для автоматизации процесса генерации SQL кода я предлагаю использовать Microsoft Excel.

В данном примере нам потребуется три колонки: Код, Текст и SQL. В колонку SQL добавляем код вида =СЦЕПИТЬ("INSERT INTO countries (id, code) values ('";A2;"', '";B2;"')") (да, у меня Русский Microsoft Excel и я так и не научился использовать в нем английские названия функций). В результате получаем нужный нам SQL и копируем данную формулу для всех остальных значений колонки SQL.

Возможен и более сложный случай, например, названия стран у Вас локализируемые и тексты хранятся в отдельной таблице, тогда вставка должна проводиться в две таблицы: таблицу справочника вида id (integer), код (char) и таблицу текстов id(integer), язык (char) и текст (varchar). Итак, приступим к подготовке данных: добавим колонку id до code, переименуем колонку Text в EN и добавим колонку RU, переименуем SQL в SQL Countries и добавим справа от нее колонки SQL EN и SQL RU. Далее проставляем числовые коды в колонке id (1, 2, 3 и т.д.). Для этого используем возможность заполнения смежных ячеек. Меняем значение первой строки колонки SQL Countries на =СЦЕПИТЬ("INSERT INTO countries (id, code) values ('";A2;"', '";B2;"')"), колонки SQL EN на =СЦЕПИТЬ("INSERT INTO countries_test (id, lang, text) values ('";A2;"', '";$C$1;"', '";C2;"')") и колонки SQL RU на =СЦЕПИТЬ("INSERT INTO countries_test (id, lang, text) values ('";A2;"', '";$D$1;"', '";D2;"')"). Копируем формулы колонок SQL Countries, SQL EN и SQL RU для всех строк таблицы. Итак, за пару минут мы подготовили SQL для двух таблиц 246 * 2 = 492 строк кода.

Что еще можно делать с помощью этого подхода? Многое. Например, мой коллега генерировал части XML файлов, я - куски кода на Java. Недавно использовал этот подход для более сложной задачи: миграции данных плоских справочников в иерархические (около 10 таблиц, порядка 2000 строк SQL кода).

С моей точки зрения, огромное преимущество данного подхода заключается в возможности быстро перегенерировать полученный ранее код. Например, решили Вы нумеровать строки в справочнике стран не по порядку, а через 10 - изменили значения в колонке id, и вуаля - скрипты готовы. Или другой пример, в процессе тестирования решили мы перенести часть данных иерархических справочников из одних веток в другие, некоторые объединить и кое-что удалить. Делать это вручную в SQL-е долго и вероятность возникновения ошибок достаточно велика, а с помощью Excel-a это изменение заняло несколько минут.

Еще одним плюсом данного подхода является возможность генерации на основании одних и тех же данных кода для разных систем-платформ-версий: например, генерации SQL скриптов для Microsoft SQL Server, Oracle и MySQL, исходного кода на Java и C#, bat и sh файлов и пр.

7 февраля 2009 г.

Getting Things Done Light in Gmail

Недавно в GMail labs появилась поддержка, так называемых "Multiple inboxes". Для меня эта возможность совместно с "Superstars" позволила автоматизировать подход с к использованию GMail-a для GTD (getting things done).

Давайте начнем по порядку - что такое GTD. Для тех, кто желает ознакомится с предметом подробно отправляем их к автору и его книге. Для остальных это подход повысить свою продуктивность (в первую очередь для людей, которые занимаются одновременно несколькими деcятками дел). Зачем и кому это все нужно? Тем кто получает много писем :). Ради примера проанализировал свою почту на GMail-e за последнюю неделю - всего получил (без учета SPAM-а) и отправил 120 писем . На каждое из писем нужно как-то реагировать: удалить, переслать, ответить, что-то сделать, ожидать ответ, запланировать на будущее и т.д. Для упрощения этого процесса, как частного случая повышения эффективности работы, и может служить подход GTD. Да, я знаю, что GTD не имеет прямого отношения к GMail-у в частности, и к e-mail-у в целом. Здесь есть 2-а но: в нашей компании процесс построен так, что e-mail является одним из основных средств коммуникации и все задачи так или иначе отображаются в почтовом ящике, а если нужно совершить "нечто" не ассоциированное с e-mail-ом (что уже само по себе редкость), то никто не запрещает создать в GMail-е черновик (draft) письма, описать в нем задачу и использовать для него тот же подход.

В принципе, существует как минимум один plugin к Firefox-у, который позволяет автоматизирировать GTD в каноническом виде, как описано в книге. Но наверное, я слишком ленивый и привык по-старинке помечать письма флажками еще в Microsoft Outlook-e.

Итак, ближе к делу. Активируем "Superstars" и выбираем для себя "звездочки" и их legends (что каждая из них означает и для каких целей Вы будете их использовать).

Я использую следующий набор "звездочек":
У каждой "звездочки" есть название по которому можно найти все письма ею помеченные.
Слева напаво названия звездочек и мой legend для них (в скобках): yellow-star (требует внимания в будущем), red-star (требует действия с моей стороны), blue-star (ожидается ответаная реакция), red-bang (требует немедленной реакции).

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

Детальное описание "звездочек":
  • red-bang (требует немедленной реакции) - помечаются т.н. show stopper-ы (т.е. письма на которые нужно реагировать немедленно по возможности отложив все остальные дела). Количество таких писем у меня не превышало 3 (обычно 0).
  • red-star (требует действия с моей стороны) - помечаются письма требующие действия в штатном режиме на сегодня-завтра. Количество таких писем не превышает 10 (обычно 3-5). Я, зачастую, работаю над несколькими проектами в один день и это собственно мой план работы.
  • blue-star (действие выполнено, ожидается ответаная реакция). Выполнив какое-либо действие (red-bang или red-star) или задав уточняющий вопрос, Вы ожидаете ответа другой стороны (заказчика, коллеги, друга). Иногда ответ затягивается и хочется понимать "на чьей стороне в данный момент находится мяч". Также служит неплохим подспорьем для follow up (напоминаний на тему).
  • yellow-star (требует внимание) - помечаются все остальные письма, которые требуют Вашего внимания в будущем (т.е. те, которые не подпадают под предыдущие категории).
Итак как это работает:
  1. Рабочий день начинается с прочтения новой почты. Если письмо требует вашей реакции в будущем - yellow-star, имеет отношение к текущим проектам - red-star, требует мгновенной реакции - red-bang. На этом же этапе, если требуется, пишутся ответы на письма red-bang и red-star (вопросы, пояснения и пр.). Если вы ожидаете ответ на Ваше письмо - помечаете ответ как blue-star. Ни то ни другой ни третье - mark as unread, delete или archive.
  2. Следующий этап - follow up: проверка ответов на blue-star. Ответ получен - blue-star снимается, при этом оригинальное письмо может изменить свою классификацию. Пример, получили письмо от заказчика - поломался основной сервер на котором работает Ваша система (red-bang - show stopper), уточнили не устанавливали ли что-то новое и не пробовали ли перезапускать его (blue-star), ответ перезапустили - все ОК (сняли blue-star, red-bang, переписку в архив).
  3. Есть red-bang - за работу.
  4. Есть red-star - за работу.
  5. Нет ни тех ни других - проверяем новую почту и переходим на 1., нет новой почты - проверяем yellow-star. Выбираем следующий проект над которым будем работать и помечаем соответствующие письма red-star, переходим к 4. Почему письма, а не письмо? В идеале ваша переписка должна быть одним thread-ом (как это сказать по-русски :)?, цепочкой писем), но иногда, например, при переписке с пользователями Lotus Notes, GMail разрывает thread-ы. Получается у вас в GMail-е переписка выглядит как набор пар письмо-ответ. Для того чтобы с ними было проще работать я использую еще и labels (метки?). Иногда к проекту относится несколько переписок с разными людьми в разные периоды времени и т.д.
Я пока не сказал, как искать письма помеченные звездочками. Делается это очень просто - в строке поиска пишется has:название-звездочки. Например, has:red-star или has:red-bang.

Звездочки удобно задавать/убирать с клавиатуры с помощью механизма hot-keys. Последовательное нажатие клавиши "s" - задает письму звездочки в порядке их следования в списке "In use".

Что позволяет сделать "Multiple inboxes"? Он позволяет вывести на первом экране GMail-a письма помеченные звездочками по приоритетам. У меня это выглядит следующим образом: 4 панели со следующими критериями поиска has:red-bang, has:red-star, has:blue-star, has:yellow-star.

Результат будет примерно таким же как на картинке Google-a:


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

Почему мне не нравится подход с использование plugin-ов к Firefox-у для автоматизации GTD? Причин две - потенциальные сложности с обновлением Firefox-а и потенциальные проблемы при обновлении GMail-a с одной стороны и лень и нежелание менять то, что и так работает с другой (я не очень верю, что потери времени потраченные на настройку и импорт существующих данных в новый механизм GTD существенно увеличат мою продуктивность).

«Тепла зима»

Вчера ехал на работу и услышал по радио песню. Приехал в офис, скачал и слушал ее практически весь день :-)

Скрябин «Тепла зима». Ее можно слушать только ради одной строчки "в цій країні навіть снігу нема".

Проекты и водители

Вчера пришел список требований к новому проекту: тезисно, на 5 листов, без детализации пунктов, с требованием локализации на много языков, двуязычной документацией и неразумной ценой за проект.

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

Вакансия: водитель.

Требования: профессиональные навыки управления легковыми и грузовыми автомобилями, автомобилями с прицепом, автобусами, троллейбусами, трамваями, поездами метрополитена и фуникулера, экскаваторами и бульдозерами, спецмашинами на гусеничном ходу, боевыми машинами пехоты и современными легкими/ средними танками, находящимися на вооружении стран СНГ и НАТО.
Навыки раллийного и экстремального вождения - обязательны, опыт управления болидами F1 - приветствуется.
Знания и опыт ремонта поршневых и роторных двигателей, автоматических и ручных трансмиссий, систем зажигания, бортовых компьютеров, анти блокировочных систем, навигационных систем (GPS) и автомобильных аудиосистем ведущих производителей - обязательны.
Опыт проведения кузовных и окрасочных работ приветствуется.
Претенденты должны иметь сертификат Mercedes, BMW, General Motors, а также справки об участии в крупных международных ралли не более двухлетней давности.
Зарплата 1500 - 2500 грн, определяется по результатам собеседования.

5 февраля 2009 г.

Google at Stackoverflow

Говорят, что в Google работают классные IT специалисты. Очередной раз в этом убедился на Stackoverflow - увидел человека с рейтингом 33 тысячи, 6 золотыми, 101 серебрянной и 280 бронзовыми badges.

4 февраля 2009 г.

Stackoverflow

Не так давно Joel Spolsky и Jeff Atwood запустили новый проект Stackoverflow, который позиционирует себя как сайт вопросов-ответов разработчиков программного обеспечения.

Цель достаточно амбициозная, но пока она достигается - на сайте тысячи новых вопросов и ответов, которые прилично проиндексированны Google-ом. Самое главное, что удалось Joel-у и Jeff-у - привлечь и удержать тысячи разработчиков, которые с завидной периодичностью посещают ресурc и отвечают на вопросы.

Кстати, в отличие от аналогичных сайтов (Experts exchange, Google answers и т.д.) - ответы на вопросы бесплатные, но интерес отвечать на них заложен в т.н. системе репутации, которая фактически превратила проект в некий аналог компьютерной игры. Ты начинаешь на первом уровне с репутацией = 1, задаешь вопрос, за него кто-то голосует получаешь бонус +10 к репутации, если вопрос не нравится - получаешь -2 к репутации за каждый "vote down". Далее все как в играх - чем больше репутации, тем больше действий становится доступно (можешь сам голосовать за чужие вопросы, редактировать и удалять их), а чтобы было совсем интересно, Stackoverflow еще и присваивает т.н. badges (скорее всего правильный перевод будет "медали"). Они есть серебрянные, бронзовые и ... правильно золотые. Медаль дают в начале почти за все - проголосовали за твой первый вопрос получи "Student", первым ответил на вопрос и за тебя проголосовали - вот твой "Teacher". Но это все бронза, серебро получить сложнее, но реально, например, "Good Question" - вопрос, за который проголосовали 25 и более участников, золотые медали - большая редкость. Да, забыл написать, что при голосовании против, ты теряешь 1 своей пункт репутации. Также отмечу тот факт, что все дискуссии ведутся только на английском языке.

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

Одним словом, Welcome to virtual world of Stackoverflow from FoxyBOA.

HP Compaq 8510w (почему он такой быстрый !?)

Начало у истории не веселое - в командировке поломался мой старый и проверенный laptop IBM/Lenovo Z61m, который верой и правдой отслужил почти 2-а года. Начал перегреваться и самопроизвольно отключаться.

Сразу замечу, что настолько долго без ремонта как Z61m, у меня не прожил еще ни один laptop: Acer-a хватило почти на год, после чего у него заменили матрицу экрана, у обеих Toshib 14" и 17" примерно через год эксплуатации начались проблемы с креплением монитора (дешевый китайско-малазийский пластик не предназначен для ежедневной эксплуатации).

Перешел временно (так по крайней мере думал в момент перехода) на HP Compaq 8510w, который с пол года пылился без дела в офисе.

Compaq приятно удивил производительностью. Нашел его достаточно полный обзор здесь. Мне достался "зверь" помощнее чем в обзоре: Intel® Core™ 2 Duo Processor T9300 (2.5 GHz, 800 MHz FSB, 6 MB L2 cache), 4 GB 667 MHz DDR2 SDRAM, 200 GB 7200 rpm SATA.

Характеристики Lenovo Z61m следующие: Intel Core Duo T7200(2.0GHz, 667 MHz FSB), 3Gb 667 MHz DDR2 SDRAM, 120GB 5400rpm SATA. Также достаточно полный обзор Z61M здесь.

Итого получаем: у Compaq процессор быстрее на 0,5 GHz, L2 больше на 2Mb или 50%, шина 667 против 800, оперативки больше на 1Gb или 33%, HDD быстрее примерно на 50% (по тестам HD Tune).

На обоих компьютерах стоит Windows Vista 64bits (на Lenovo - Ultimate, на Compaq - Business).

Тесты Vista показывают оценку (score) 5.1 (Compaq) против 4.0(Lenovo), но мне кажется, что реальная разница на задачах, которые для меня критичны гораздо больше.

По субъективной оценке в процессе работы (компиляция и запуск Java проектов из под EclipseCompaq быстрее Lenovo процентов на 40-50.

Почему Compaq настолько быстрее, сказать однозначно сложно. Я связываю это с новым более быстрым процессором и гораздо более скоростным HDD.

Из явных промахов Compaq, которые стали видны в первый день работы:
  • легкий пластиковый корпус (легкий это хорошо, но после титаниевого Z61m, пластик выглядит хрупко)
  • плохая эргономика клавиатуры (хотя это конечно очень субъективный фактор)
  • странное решение с сенсорными кнопками (wifi, звук и т.д.) - они выглядят эффектно, но не очень надежно и не долговечно
  • уродский (это технический термин) интерфейс программ обновления драйверов, BIOS-a и т.д. Они не предназначены для того, чтобы их использовали без крайней на то необходимости. После one click button обновления от Lenovo, HP должен "нервно курить в сторонке".
К сильным сторонам Compaq следует отнести:
  • производительность
  • тишину (после громогласного Z61m его почти не слышно)
  • аккумулятор (3,5 часа с wifi; полностью не разряжал, может он потом передумает и больше часа не протянет...)

3 февраля 2009 г.

Office 2.0 полтора года спустя (follow up)

Как я и предсказывал, Microsoft Office ушел безвозвратно в Web: Google Docs, Microsoft Office Live. Следующим шагом, скорее всего, будут on-line хранилища файлов от Microsoft, Yahoo и Google, с возможностями поиска, в том числе по содержимому, совместным доступом (sharing, "как это правильно сказать по-русски" :) и native интеграцией с операционными системами. Некоторые из них уже работают или анонсированы: Google GDrive, Microsoft SkyDrive, Yahoo Briefcase (последний скорее пережиток прошлого и будет действовать до 30.03.2009).

Обратил внимание, что единственным офисным продуктом, которым я по прежнему пользуюсь на desktop-e остался Excel.

Кстати, Microsoft Excel оказался просто незаменимым продуктом при внедрении и тестировании различных ИТ систем (я имею в виду не веденее в нем bug листов и планов внедрения проекта). Постараюсь рассказать об этом через несколько дней поподробнее...

А где 2008 год !?

Как-то незаметно и суматошно прошел 2008 год: новые клиенты и проекты, прибавление в семействе.

В общем, как писал нетленный БГ, "не успели все разлить как пол жизни за кормою".

Постараюсь писать кратко но, часто.