Закрыть
Авторизоваться через пароль



Забыли пароль?
Авторизоваться через OpenID

 

Архив за 2008

5 советов по управлению проектами

Mourner передал мне эстафету: 5 советов IT-специалисту — советы по управлению проектами…
Давать советы кому-то абстрактному не хочется: ведь подойдут они не всем, потому в этой заметке будут советы, которые я нынешний дал бы самому себе четырехлетней давности.

  1. Управление проектами — это работа с людьми. Умение завоевать уважение команды и клиентов в тыщу раз важнее умения рисовать диаграммы Ганта. Ни в коем случае не поддавайся рассказам всяких менеджеров-теоретиков, считающих PMBOK важнейшей книгой для управленца: эти клоуны могут долго рассуждать о преимуществах и недостатках методологий RUP, CRYSTAL или XP, но понятия не имеют, что делать, если разработчик длительное время работал с нормальной эффективностью, а потом резко «опустился», они не чувствуют, когда стоит делегировать полномочия, а когда этого делать нельзя.
  2. Постоянно учись, читай, постоянно экспериментируй, постоянно сомневайся в себе, совершай ошибки и исправляй их последствия. Ошибок не допускает только тот, кто топчется на месте. Да, постоянные изменения и нескончаемое обучение означают постоянный стресс — и с этим ничего не удастся поделать, но со временем начинаешь спокойнее относиться к собственным ошибкам и неудачам, легче переносить стресс.
  3. Бери на работу только тех людей, которые эту работу обожают: тех, кто с гордостью рассказывают о своих заслугах, интересуются твоей компанией, следят за новинками в отрасли. Если этого не соблюдать — легко получишь обыкновенный ленивый офисный планктон, который работает «из-под палки», самостоятельно не обучается и довольно медленно растет в профессиональном плане. Людей, которые в целом любят свою работу, и мотивировать гораздо проще, и работать с ними интереснее. Тебе не нужен сисадмин, мечтающий заниматься журналистикой, или разработчик, который на самом деле хочет быть дизайнером, а код писать ненавидит и каждый раз «переступает через себя», чтобы выполнить новую задачу. Тебе нужны такие люди, которых сам будешь выгонять из офиса, чтобы не просидели до ночи, изучая новую технологию. На эту тему немало эссе написал Джоэль Спольски.
  4. Учись отступать и проигрывать. Очень важно уметь вовремя остановить провальный проект. Иногда необходимо отказаться от проекта, иногда — даже уволиться. Запятнанную репутацию нелегко «отбелить». Как ни крути, а у жизни тоже есть свой дедлайн, потому не инвестируй временной ресурс своей жизни в мертворожденные проекты, эти инвестиции не окупятся.
  5. Хочешь выстроить четкую систему в работе, наладить процессы, чтобы все было четко и без сюрпризов? Начни с себя: без жесткого контроля собственного времени никак не обойтись. GTD — не только модный акроним, но и реально полезная методология, которая при грамотном обращении поможет убивать в себе оптимизм и не забывать ничего важного. Учись мгновенно принимать правильные решения, много решений… Если не выходит — устанавливай дедлайн принятия решения: и руководство/клиенты, и подчиненные будут тебе за это благодарны.

Интересно, как я буду смотреть на эти советы через 5 лет?


Веб-дизайн — цена эксклюзива

Встречаются как-то два психолога. Первый начинает разговор за жизнь:
— Я себе недавно купил навороченный Феррари…
А второй сначала косо смотрит на первого, а потом и говорит:
— Слушай, мы же все-таки профессионалы. Давай просто расстегнем брюки и померяемся!

Есть у меня приятель, занимающийся мелкооптовой торговлей бельем — типичный представитель мелкого бизнеса. Его компании потребовался сайт в интернете, и приятель попросил меня подсказать, где лучше его заказать, а также спросил об ориентировочных ценах. Когда я назвал приблизительную стоимость разработки несложного сайта-визитки в надежных Киевских веб-студиях, приятель в ужасе схватился за голову: он не мог представить, что это может стоить так дорого! Когда приятель узнал, что все это можно сделать и дешевле, но либо в «шарашках», либо у фрилансеров, где нет никаких гарантий — совсем расстроился…

Знаете, это реальная проблема на территориях пост-совка: к сайту компании у нас принято относиться не как к инструменту зарабатывания денег, но как к красивым картинкам и просто фактору престижа. Такой сайт приятно показать друзьям, коллегам, клиентам, жене, в конце концов… но стоит ли он вложенных средств? Да, сайты в экс-СССР стоят очень дорого, как для стран 3-го мира: совершенно реальна ситуация, когда компании, торгующие, например, сантехникой, платят за разработку сайта в Киеве или Москве дороже, чем их коллеги в Нью Йорке или Сан Франциско. Уверен, вы сразу подумали о Студии Лебедева, но на самом деле я имею в виду не только ее, а множество компаний. Кроме того, за рубежом САЛ знают, в основном, как компанию, занимающуюся промышленным дизайном, а не сайтами… Ну, не привыкли там платить за дизайн больше, чем он может принести. Как вы думаете, многие ли компании в России и Украине думают о том, какой ROI будет у их сайта: как быстро сайт окупится и окупится ли вообще?

При таких высоких ценах сайты ухитряются делать с отвратительного качества CMS‘ками, подчас слабее бесплатных Joomla и Drupal, а часто выбирают и просто отвратительный Bitrix…

В интернете можно найти минимальные цены ведущих веб-студий России за 2006 год, как вы понимаете, сейчас эти цены повысились.
А что делать? Ведь нужно платить дизайнерам, которые сделают эксклюзивный дизайн (возможно, и несколько макетов на выбор)… Скорее всего, макет еще придется дорабатывать — и утверждение макета может растянуться надолго… И все это время нужно платить менеджерам, потом верстальщикам надо сверстать макет, еще позже макет нужно будет прицепить к CMS’ке, вполне возможно, что эту самую CMS’ку придется под конкретный сайт доделывать. В общем, не с потолка цены берутся…

Но задумывались ли вы когда-нибудь, что будет, если отказаться от эксклюзивности — если не придется разрабатывать новые макеты дизайна, не придется вносить в них правки и не придется утверждать дизайн, не придется верстать его и не придется подключать сверстанный дизайн к CMS, не придется доделывать эту самую CMS?

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

Представьте себе ситуацию: жители соседних деревень Виларибо и Вилабаджо открыли магазины авто-запчастей — с одинаковым ассортиментом, ценами и уровнем обслуживания. Вскоре оказалось: через интернет можно привлечь много новых клиентов. Деревня Виларибо обратилась в солидную студию веб-дизайна, где им за 100 наноюнитов в два месяца сделали сайт под ключ с эксклюзивным дизайном. По прикидкам жителей Виларибо, затраты на сайт должны окупиться через 12 месяцев. Жители деревни Вилабаджо быстро отреагировали: они пришли в студию поскромнее и заявили: «Пожалуйста, возьмите сайт магазина «Виларибо», измените название на «Вилабаджо», поставьте наш контент и все настройте». Через месяц всего за 25 наноюнитов владельцы авто-магазина «Вилабаджо» получили свой сайт — такой же, как у «Виларибо»…
Прошло полгода… В деревне Вилабаджо праздник — ведь их веб-сайт уже окупился и теперь стабильно приносит прибыль… А жители деревни Виларибо все еще «в минусе».

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

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

Конечно, дизайнеры не захотят со мной согласиться — ведь их основная работа состоит в том, чтобы производить эксклюзивный дизайн… Трудно признаться себе, что ты делаешь нечто переоцененное и ненужное… Мне кажется, сейчас отрасль находится на своем пике и года через 2-3 начнет двигаться в сторону упрощения и удешевления. В первую очередь, от этого пострадают дизайнеры, которых просто окажется слишком много — конкуренция на рынке повысится, а зарплаты, соответственно, снизятся.

Но это неизбежно в условиях, когда спрос рождает предложение. Подобные ситуации уже встречались в истории: к примеру, автомобили до Генри Форда тоже были дорогими и не-массовыми, но все мы знаем, что случилось потом…


Обзор rss-потоков, апрель 2008

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

Успешно прошли

  • LiveDev — интересный и приятный русскоязычный блог о веб-разработке, в том числе на Django. Побольше бы таких сайтов в рунете!
  • Психологический журнал «Искусство быть собой» — за последние год-два я еще не встречал настолько качественного сайта о саморазвитии и «популярной» психологии. В отличии от большинства подобных сайтов радует авторский контент и отсутствие «тупых понтов» у автора. Надеюсь, Олег Сатов, автор сайта, и дальше будет продолжать в том же духе.
  • Антикорпоратив.ру — сайт о бизнесе, корпоративной среде (вернее, о ее вреде), «лайфхаках». Наиболее полезен работникам больших бездушных компаний.
  • Управление проектами в картинках — интересный менеджерский блог, о нем я уже писал в прошый раз.
  • 4 конверта — блог о финансовом самоконтроле. Все сказано в названии. Интересный проект Макса Крайнова, недавно отделившийся от его основного сайта.
  • ContraMarketing — толковый блог с наблюдениями бывшего маркетолога. Искренний и циничный.

Не прошли карантин

  • SitePoint — крупное сообщество посвященное веб-разработке, управлениию небольшими интернет-проектами, маркетинге и дизайне в интернете. К сожалению, окончательно скурвился: минимум практических материалов.
  • LUK!Around — блог о путешествиях. Испортился: вместо блога о путешествиях превратился в блог о Берлине, где в каждом новом посте содержится совсем немного информации — складывается впечатление, что автору не о чем писать, потому он так поступает. Странно, что совпало это с активной рекламой у Давыдова. Надеюсь, в будущем сайт снова наберет обороты.

Временно в карантине

  • Иван Пирог в режиме онлайн — недавно открывшийся блог Ивана, организатора семинаров Exception. Он обещает писать статьи на темы самосовершенствования и самомотивации, IT-бизнеса. Пока что на сайте всего 3 статьи, но довольно познавательные. Уверен, сайт и дальше будет радовать качественным авторским контентом.
  • Agile-сообщество Беларуси — с одной стороны интересный сайт про agile-методологии. С другой — пока не могу понять, стоят ли его статьи затрачиваемого на чтение времени.
  • AGOGE — сообщество сильных. Блог с дурацким названием о личностном развитии современного человека. Пока не понятно, насколько он самобытен, время покажет.
  • David Cramer — интересный и полезный с практической точки зрения блог python-разработчика. Много информации о фреймворке Django и шаблонизаторе Jinja.
  • Mac OS от Винтика и Шпунтика — простой и забавный сайт о MacOS и софте для нее.
  • Пепелсбей.net — сайт о верстке с приятным дизайном. Негатива не вызывает, но статей на сайте пока слишком мало чтобы сформировать окончательное мнение.
  • Подлипенский Павел — Блог о технологиях и деньгах. В название все сказано. Молодой и интересный сайт об IT-бизнесе. Рекомендую!
  • MediaRevolutiuon — добротный русский сайт о маркетинге в средствах интернет-медиа. Радует обилие статистики вроде «Мужчины в возрасте 18-34 лет — наиболее активные зрители видеоконтента в Сети, 74% опрошенных заявили, что смотрят онлайновое видео по меньшей мере раз в неделю. Треть опрошенных мужчин в возрасте 18-24 лет смотрят онлайновое видео каждый день.».

Масштабируем Agile

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

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

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

  1. Пожалуй, самое главное, что удалось сделать — разделить один большой проект на целый пакет мелких и средних проектов, таким образом, каждая рабочая группа, состоящая из 2-5 человек, стала заниматься одним и только одним проектом.
  2. Вместе с разделением крупного проекта на мелкие изменилась и стратегия коммуникаций. Теперь команды разработки и их тимлиды регулярно взаимодействовали лишь с техническими руководителями в США, решая тактические вопросы и согласовывая API, а с локальными руководителями проектов вывяли текущие проблемы. В свою очередь, руководители проектов общались между собой и с высшим руководством сугубо о вопросах стратегии, рисков, интеграции проектов и изменения состава групп, а технические руководители между собой решали сложные архитектурные вопросы, утверждали API и следили за документированием технических решений. Отойдя от формальностей, можно сказать — главной задачей руководителей проектов и технических руководителей стало устранение преград на пути своих команд и интеграция проектов, но никак не отчетность.
  3. Часть команд стали проводить регулярные стоячие совещания, что было простым и дешевым способом для участников проекта «находиться на одной волне» и выявлять реальные и потенциальные проблемы своевременно. Без разделения «1 проект — 1 команда» это было бы невозможно.
  4. Длину итераций увеличили с одной до двух недель и стали планировать их так, чтобы в конце всегда оставался запас в пару дней. Это частично позволило избавиться от постоянной гонки, в которой все чувствуют себя проигравшими — когда работаешь в нормальном ритме, то и ошибок допускаешь меньше.
  5. Оценки сроков и планы перестали «спускаться сверху»: теперь оценки сроков задач проводилась их непосредственными исполнителями под присмотром тимлидов, после чего согласовывалась с руководителем проекта и техническим руководителем, которые, как правило, срок увеличивали, учитывая дополнительные риски и сложности.
  6. Стали использовать средства Continuous Integration. Полноценного TDD у нас все равно не получилось, но удалось заставить разработчиков тестировать свой код и более-менее стабилизировать качество билдов продукта.
  7. Ввели т.н. «development blogs», куда разработчики (реально — тимлиды) должны были каждый день записывать свои достижения и проблемы, с которыми они столкнулись. Эти блоги на некоторое время стали главным средством коммуникации удаленных команд (ведь они находились в разных офисах), кроме того, это заставляло разработчиков писать! Впрочем, когда объем взаимодействия между разными командами уменьшился, от блогов мы отказались для большинства проектов.
  8. Постепенно мы разработали различные автоматические средства отчетности и оценки сроков (используя идеи evidence based scheduling Джоэля Спольски), реализовав их как Jira plug-ins. Но постепенно отказались и от ежедневной формальной отчетности. Вести ее можно было разве что по собственному желанию, чтобы лучше ощущать «пульс проекта». Руководитель проекта теперь отвечал строго за успешное окончание каждой итерации, а не за успешное бумагомарание.
  9. Стали проводить ретроспективы (к сожалению, они проводились между руководством разных проектов без участия разработчиков) в конце итераций. Это не произвело чуда, но помогло увидеть проблемы с разных точек зрения и, конечно же, не наступать на одни и те же грабли дважды.
  10. Ввели еженедельную оценку оффшорных команд людьми из главного офиса в США, где каждый мог по пятибалльной шкале оценить уровень коммуникации, качества кода и адекватного восприятия документации. Локальные руководители проектов получали информацию и видели, кто какую оценку поставил. Многим поначалу казалось, что это сделано с целью найти козлов отпущения и показать «вот мы тут белые-пушистые, а они там за океаном бездельники и мудаки». На самом же деле, все эти оценки позволяли увидеть, кто конкретно не доволен взаимодействием, после чего не гадать — а связаться с этим человеком и узнать, чем именно он не доволен и совместно с ним улучшить рабочий процесс. Медленно, но уверенно все это получилось. Как всегда в распределенной разработке, главная трудность — коммуникация, а самый трудно контролируемый фактор — фактор человеческий.

Выводы

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

А вы масштабировали agile-процесс? Если да, то как?


Неправильный Scrum

«То, что в первом приближении может очень походить на agile на самом деле может быть просто хаосом и способом траты денег, не имеющих четких целей и демотивирующих проектную команду.».

Алексей Кривицкий, тренер SCRUMguides

Гибкие (agile) методологии разработки ПО в последние годы активно набирают популярность. Они позволяют снизить риски проекта, уменьшить объем «бумажной волокиты» и попросту удешевить разработку.
Однако облегченность (например, в сравнении с «моделью водопада») этих методологий вовсе не означает, что их можно применять не разобравшись до конца в самой сути agile-процесса.

Данная история — пример хаоса, возникающего при неправильном обращении с agile-методологиями.
В прошлом году я участвовал в нескольких проектах, которые формально делались по методологии Scrum. Проекты были аутсорсинговыми, наш клиент продавал их своему клиенту как Scrum, соответственно, контракта с фиксированной оплатой не было, оплата шла повременная. Схема разработки была итерационной, каждая итерация включала в себя демо-версию продуктов и сессию планирования следующей итерации. Приоритеты требований менялись в зависимости от результатов демо. Так что же было не так?

  1. Начнем с того, что проекты были крупными и распределенными. Над одним проектом могло работать 35-45 человек, находящихся в разных офисах в разных городах в разных часовых поясах. Согласитесь, серьезное осложнение для процесса, где по канонам все должны работать в одном офисе (в идеале — в одной комнате), ведь живое общение — одна из основ agile-процесса: именно живое общение снижает уровень бумажной бюрократии.
  2. В первую очередь, наши клиенты восприняли Scrum с его ежедневными «стоячими совещаниями» как отличный способ получения отчетности (одна из величайших проблем крупного бизнеса в том, что отчитаться о проделанной работе часто важнее, чем эту самую работу качественно выполнить). Выглядело это так: каждый день для общения по телефону собирались руководители разработки из разных офисов и докладывали американскому руководству о состоянии текущих задач и дальнейших планах, после чего координировали работу со своими командами. Но у этих руководителей было по несколько групп разработчиков, а это в сумме — 20-25 человек на каждого… Реалистично отчитаться о задачах каждого из них — задача нетривиальная, потому к совещаниям вскоре подключили и руководителей команд. Даже для тимлидов не всегда было по силам досконально описать ситуацию в текущих задачах и способы ее решения, потому к совещаниям время от времени стали подключать и ключевых разработчиков. В итоге, большинство ключевых сотрудников стало отвлекаться на час-полтора каждый день, чтобы посовещаться. Это называлось «daily scrum» (который по правилам длиться должен не более 15 минут) и не могло не вредить общей продуктивности.
  3. Вскоре клиенты признали — такой подход не годится. Ведь больше всего о конкретных задачах проекта знают сами разработчики — значит они и должны отчитываться о своей работе, как это написано в книгах по Scrum’у. Но в команде проекта 30-40 разработчиков, притом, работающих в разных офисах, выслушать их всех и не потерять нить обсуждения крайне трудно. Выход был найден: вместо телефонных разговоров стали использовать групповой чат, логи которого всегда можно было перечитать. Но теперь уже не только ключевые сотрудники, но и вся проектная команда тратила ежедневно 1-2 часа на отчетность.
  4. Отчетность эволюционировала: когда стало понятно, что 1-2 из 8 рабочих часов ежедневно — это неприличная роскошь, схему пришлось изменить. Теперь разработчикам просто задавали подряд 3 классических для Scrum вопроса: «Что сделали за прошедший день?», «Что делаете теперь?», «Есть ли у вас препятствия на пути?», а разработчики должны были синхронно ответить на эти вопросы в чате. Больше никаких индивидуальных обсуждений… Позже американское руководство анализировало логи этих чатов… Зато все успевали «выговориться» за 15 минут. Было понятно, что подобные «daily scrum’ы» — чистый формализм, к счастью, разработчики воспринимали этот идиотизм с юмором.
  5. Впрочем, отчеты разработчиков вовсе не освобождали локальных руководителей разработки от собственных отчетов (еще более формальных) и за каждую итерацию, и за каждый день в отдельности. Я до сих пор не могу понять, где наши американские коллеги находили время для чтения всех отчетов.
  6. Все без исключений agile-методологии итеративны. В конце итерации (в Scrum они называются спринтами) мы получаем билд продукта, готовый к демонстрации. Создатели методологии XP предпочитают короткие итерации в 1-2 недели, Scrum — длинные в 1-2 месяца. Наш клиент решил сделать итерации максимально короткими — 1 неделя, то есть 5 рабочих дней. А иногда у нас бывали и микро-итерации — 2-3 дня… Клиент надеялся таким образом иметь больший контроль над процессом: ведь 1 неделя работы в неправильном направлении не так губительна, как две или даже четыре недели. Кроме того, если итерации недельные — значит и отчеты о результатах итерации можно получать каждую неделю. На практике же недельные итерации приводили к спешке: разработчики торопились, чтобы успеть закончить хоть что-то значимое в столь короткие сроки (впрочем, это скорее ошибка менеджмента), из-за чего уделяли минимум времени тестированию собственного кода. Осложняло ситуацию еще и то, что из 5 дней спринта реально на разработку оставалось всего 4, так как день уходил на «разворачивание» продукта, подготовку демо-версии и.т.п.. Каждый новый билд кишел глюками и мелкими недоработками.
  7. Роль тестировщиков в agile-процессе до сих пор слабо освещена. Клиента это нисколько не смущало, потому тестировщики у нас не были интегрированы в процесс разработки, а разработчики — в процесс тестирования. Если демо у нас в проектах проводилось каждый понедельник, то тестировщики (находящиеся не в тех же офисах, где работали разработчики) приступали к работе над тестированием нового билда лишь во вторник. Сессии планирования (стоит ли рассказывать, что, вопреки принципам Scrum’а, рядовые сотрудники в них не участвовали?) у нас проходили по четвергам, тестирование последнего билда в это время все еще длилось. Таким образом, просто не получалось составить план следующей итерации так, чтобы сначала исправлялись глюки, а лишь затем разрабатывался новый функционал. Можно было лишь предполагать что-то вроде «40% времени мы потратим на исправление ошибок». Такой подход вел к неконтролируемому распространению глюков.
  8. Сами заказчики продуктов были удалены от проектных команд. Такой инструмент гибких методологий как «пользовательские истории» тоже не использовался. Таким образом, заказчики и конечные исполнители не находились «на одной волне» и нередко воспринимали одни и те же требования по-разному. А ведь это одна из проблем, которую должны решать гибкие методологии.
  9. Не было и «ретроспектив». В конце каждого спринта команды не собирались вместе, чтобы обсудить слабые стороны итерации и решить, как можно улучшить процесс: распределенная природа разработки этого не позволяла. Иногда такие вопросы обсуждались руководителями на сессиях планирования, но решались лишь локальные вопросы — глобальные (а их было большинство) требовали многократного утверждения высшим руководством в США и «повисали» на неопределенный срок.

Думаю, читая об этих проблемах, вы подумали, что вся работа у нас провалилась. Это не так: мы закончили все проекты, некоторые даже в срок. Однако, это было сделано ценой переработок, понижения итогового качества продуктов, сильного раздувания бюджета проектов, а позже — сокращения части раздутого штата сотрудников. Кроме того, локально мы втайне от клиента проводили ежедневные стоячие совещания, ретроспективы, интегрировали в процесс собственных тестировщиков и прочими способами спасали (насколько это было возможно) проекты от вредоносного лжескрама.

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


Эволюция фотобанков

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

Махатма Ганди

Давайте мысленно вернемся в 2003-2004 годы: еще не существовало понятие AJAX, еще не было блога у каждой третьей студентки в большом городе, закругление уголков и зеркальное отражение логотипов еще не стало модной тенденцией веб-дизайна, а сайты с возможностью поиска одних пользователей другими еще не называли социальными сетями. В эти же годы со словом «фотобанк» в интернете ассоциировались Getty Images и Corbis.

Фотобанками пользовались и пользуются студии дизайна, рекламные и туристические агентства, издательства и многие другие, кому нужны фотографии на заданную тему, но не хочется (или нет возможности) нанимать для этой цели фотографов. В интернете фотобанки являлись логичной эволюцией информационных агентств вроде ИТАР ТАСС или Рейтерс.
Подход у этих служб был соответствующим: например, Corbis (основаный в 1989 году Биллом Гейтсом) не работал со сторонними фотографами, предпочитая все делать собственными силами, либо скупать традиционные информационные и фото-агентства. В Корбисе был целый штат аналитиков, следящих за мировыми тенденциями в политике, спорте, культуре, науке… и решающих, какие темы и стили фотографий будут наиболее ходовыми в ближайшее время. Наготове всегда был штат фотографов и моделей, светотехников, гримеров и костюмеров, экономистов и юристов. Если в Корбисе хотели снять фотосессию на медицинскую тематику — они просто арендовали настоящую больницу на ночь, привозили туда оборудование, моделей, часть декораций и проводили сессию.
Как видите, накладные расходы получались астрономическими, но фотобанки компенсировали это высокой стоимостью самих фотографий. Сколько я помню, 100-200 баксов за фотографию в низком разрешении считалось нормальной ценой.

На фоне этих гигантов возник проект iStockPhoto — фотобанк, являющийся посредником между фотографами и потребителями фотографий. Его цены были мизерными по сравнению со старшими братьями и составляли всего 1-20$ за фотографию. Большинство серьезных фотографов, игнорировали фотобанк, считая ниже своего достоинства продавать фотографии за 1-20$ (не считая комиссионных iStockPhoto). Игнорировали его и «старшие братья». Но фотобанк рос, набирая базу за счет любителей и средненьких фотографов.
Оказалось, что «любительские» фотографии тоже сильно востребованы и нередко оказываются по качеству не хуже «профессиональных» при значительно меньшей стоимости.
Вскоре бизнес-модель iStockPhoto стали копировать и появились новые фотобанки, такие как Dreamstime, Shutterstock (предлагающий абонементы вместо поштучной оплаты фотографий). Вслед за ними на рынок вышли Fotolia, StockXpert, BigStockPhoto… Этот тип фотобанков назвали «Микростоками» (Microstocks), и являлись они типичными представителями того, что сейчас принято называть «web 2.0».

Осенью 2005 года Киеве проходила презентация Zefa/Corbis. В это время я руководил разработкой Fotolia и, конечно же, хотел побольше узнать о конкурентах. Я спросил у представителя Corbis, как они относятся к конкуренции со стороны микростоков. Представитель улыбнулся и объяснил, что микростоки с их качеством фотографий не являются конкурентами Corbis и Getty Images.

Сейчас 2008 год. По данным Alexa iStockPhoto (проданый 2 года назад Getty Images) по своей популярности значительно обошел все остальные фотобанки — как микростоки, так и крупные. Затем идет Getty Images, с небольшим отрывом от нее следуют Fotolia и ShutterStock. Замыкает пятерку Corbis, запустивший собственный микросток — Snap Village.

Именно так энергичные стартапы побеждают «корпоративное зло», простые гибкие методологии разработки постепенно вытесняют бюрократизированные так же, как динамические языки программирования вытесняют статические.


Обзор rss-потоков, март 2008

Вслед за февральским обзором сайтов, прошедших через мою RSS-читалку, с небольшим опозданием публикую мартовский.

Успешно прошли

  • Блог Henrika’а Kniberg’а — лучшее из всего что видел за последний год по теме гибких методологий разработки ПО. Хенрик умещает все основы методологии Scrum в один mindmap, описывает схемы работы с системами контроля версий при итеративной разработке, интеграцию тестировщиков в agile-процесс и многое другое.
  • Микромаркетинг — очень приятный сайт о маркетинге и бизнесе. Все написано простым понятным языком. Прочитал этот сайт «от корки до корки».
  • Ukrainian SCRUM Portal — продолжатель дела Agile Ukraine. Наиболее качественный украинский сайт со статьями о гибких методологиях разработки.
  • Персональные вопросы — интересный блог о тонкостях работы кадровых отделов (в IT).
  • Интернет нового века — автор этого блога недавно выступал на семинаре Exception 07, его доклад мне показался поверхностным и непродуманным… в то же время его блог о разработке с использованием фреймворка Django оказался значительно глубже и статьи несут практическую пользу.
  • Блог об IT бизнесе — интересный и толковый авторский сайт об IT, один из лучших подобных сайтов, как мне кажется. Минус всего один — автор болен «синдромом блоггера»: пишет довольно часто, но разбавляет классные продуманные статьи откровенной халтурой. Если бы статей стало в 3 раза меньше и оставались только хорошие — стало бы гораздо лучше.
  • Дедлайн как стиль жизни — толковый менеджерский блог. Освещаются темы управления проектами, мотивации, самоорганизации и различных «лайфхаков». К сожалению, как и большинству других менеджерских блогов, этому не хватает одного — изюминки.

Не прошли карантин

  • Urbansheep — пишет только в LJ. Там его и читаю.
  • Amazing development — никакой активности вот уже месяц, думаю, сайт сдох.
  • GeoSpot — «много букф». И сайт явно рассчитан больше на туристов чем на путешественников.
  • Agile Ukraine — теперь все полезное идет на scrum.com.ua.
  • Аналитика Cnews — сухая подача материала из мира больших корпораций.
  • How To Change the World — уже пару месяцев от Гая Кавыасаки никаких практических материалов, никакой пользы.
  • IT и Бизнес, сайт превратился в помойку «корпоративных новостей» крупных компаний бывшего СССР.
  • Overclockers Software — новости о софте для виндовс больше не интересуют.
  • Алена C++, наверное, я слишком далек от мира C++ и компьютерных игр, потому что посты жены Сагалаева совсем не цепляют.
  • Блог про Google Apps — все это и так публикуется на Хабрахабре.
  • The Meanwhile — словил себя на мысли, что в последние месяцы читаю блог Ильи Бирмана «на автомате», а чего-то полезного для себя не нахожу.
  • Agile Dokuwiki — проект морально устарел на пару лет и почти не обновляется.
  • Sitepoint Blogs PHP — мало аналитики, много информации для новичков PHP. Мне такое не нужно.
  • Блогбастер — блог о блогах. Довольно слабый и с малым количеством собственного контента.
  • ITC.ua — сайт о компьютерах. С одной стороны новостей много и адекватных, с другой — тут вперемешку и новости «софта», и «железа», и интернета, что прилично раздражает, хочется читать только определенную тематику.
  • XHTML.RU — сайт о верстке. Ничего плохого, но о самых интересных вещах все-равно читаю на «Хабре».
  • У Wadа — об этом сайте я уже писал в прошлом обзоре. Увы, автор мешает интересные статьи о бизнесе, обществе потребления и.т.п. с историями «как я катался по Америке на авто»… последнего, к сожалению, больше.
  • GUI.RU — неплохой сайт о юзабитили, но все его материалы, как оказалось, дублируются на «Хабре», так зачем же плодить сущности?

Временно в карантине

  • Популярная веб-механика — довольно перспективный, на первый взгляд, блог о веб-разработках, но с мизерным количеством контента. Посмотрим: умрет ли сайт или будет жить.
  • SitePoint — известный ресурс о веб-разработках: дизайне, верстке, программировании, управлении проектами и маркетинге. Читаю его уже 4 года, но в последнее время толковых статей становится все меньше и меньше, в основном публикуют довольно поверхностные материалы уровня «для чайников».
  • Пепелсбей.net — сайт о верстке с приятным дизайном. Негатива не вызывает, но статей на сайте пока слишком мало чтобы сформировать окончательное мнение.
  • Антикорпоратив — интересный блог о бизнесе, корпоративной среде (вернее, о ее вреде), «лайфхаках». Наиболее полезен работникам больших бездушных компаний. Серьезно смущает, разве что, обилие ненужных картинок к постам.
  • Управление проектами в картинках — забавный менеджерский сайт. Картинки со схемами с него мне нравятся, а вот тексты — так себе…

Обзор wiki-сервиса Google Sites

В прошлом я пользовался разными «standalone» wiki-системами: WackoWiki, MediaWiki, DokuWiki, Confluence (по работе пользуюсь ей и сейчас).
Постепенно решил отказаться от использования standalone wiki в личных целях. Вначале перевел большую часть информации в Google Docs & Spreadsheets… Но вскоре выяснилось, что информацию в нем удобно редактировать, хотя ориентироваться в ней неудобно – D&S все-таки офисный пакет, а не wiki. Вскоре я нашел сервис WikiDot. Сервис показался довольно качественным, и через него можно было даже повесить wiki на собственный домен через DNS. Однако с удобством навигации в WikiDot явно прогадали: вместо иерархической структуры страниц авторы предпочли плоскую + теги… да и дизайн часто раздражал своей неаккуратностью.
В общем, я все еще искал альтернативу.

Около месяца назад в Интернетных Штучках написали о запуске нового сервиса Google Sites — и я решил попробовать.

  • Google Sites обладает приятным внешним видом, хотя и без изысков. На выбор дается несколько тем оформления. На мой взгляд, тема по умолчанию наиболее приятна.
  • Сама Google не позиционирует Sites как wiki, потому здесь нет wiki-разметки, зато есть удобный и функциональный WYSIWYG-редактор.
  • На выходе WYSIWYG дает HTML-код, который можно редактировать и вручную.
  • Текст на страницах можно размещать как в одну, так и в две колонки.
  • Sites может вставлять в страницы оглавление (table of contents) — это очень удобно, когда у вас в wiki находятся страницы с большим количеством разных подзаголовков.
  • Кроме оглавления, можно вставлять множество объектов из других сервисов гугла: Calendar, Docs&Spreadsheets, youtube, Picasa Web Albums
  • На мой взгляд, это особенно удобно для вставки данных из Google Spreadsheets.
  • Также можно вставлять и гаджеты iGoogle — будь то прогнозы погоды, свежие ролики с youtube или новости сайта wired.
  • Система ссылок в редакторе хорошо продумана — в модальном окне можно выбрать внутреннюю страницу либо ввести внешний адрес.
  • Управление главным меню сделано схожим образом — из дерева разделов мы можем выбрать основные ссылки.
  • Помимо простых страниц, в Sites можно создавать страницы новостей «Announcements», файлохранилища «File Cabinet», страницы-агрегаторы типа «Dashboard» и страницы списков «List».

    Если с первыми двумя все понятно, то о последних двух стоит рассказать подробнее. Dashboard представляет собой страницу с несколькими местами для вставки гаджетов iGoogle и прочих внедряемых компонентов, как в меню «Insert» wysiwyg-редакторв. List позволяет создавать списки с разными наборами полей и сортировать их: это удобно для списков задач, покупок, сотрудников и.т.п.

  • Как и WikiDot, Sites можно прикрутить через DNS к вашему домену, правда, вас все равно перебросит на http://sites.google.com/a/siteaddress.
  • Есть в Sites и серьезные недостатки. Главный, как мне кажется, — невозможность изменить URI страницы: представьте, что вы создали страницу «GoodPage» — адрес для нее будет вида http://sites.google.com/a/siteaddress/sitename/goodpage/. Если сменить название, например, на «BadPage» — адрес страницы все равно останется прежним — http://sites.google.com/a/siteaddress/sitename/goodpage/. С русскими названиями страниц проблем еще больше — приходится сначала давать странице название латиницей для URI, а затем переименовывать на русский. Думаю, это ограничение в гугле ввели, чтобы упростить работу с деревом сайта, но с точки зрения пользователя оно очень мешает. Надеюсь, что в будущем ограничение уберут.
  • Второй серьезный недостаток — негибкая система прав доступа. Вы можете менять права доступа на разные Site’ы, но управлять правами конкретных разделов и страниц нельзя. Конечно, можно немного смягчить эффект, используя несколько «сайтов», например, публичный и частный. Но это всего лишь «костыль» и целиком проблему не решает.
  • Третий недостаток — продукт является частью Google Apps (for your domain), потому недоступен бездоменным.
  • Странно, что Google не внедрила в Sites такие свои сервисы, как Analytics и AdSense.

Итог

У Google (или JotSpot?) получился качественный и «человечный» продукт для малого бизнеса (для среднего и крупного бизнеса я рекомендовал бы Confluence) и частных лиц. Продукт, рассчитанный, в первую очередь, на обычных пользователей, а не гиков… Сервис очень хорош — более удобной wiki-системы я не встречал, но советовать его всем и каждому не стану из-за мелких недоработок и ограничений функционала.


Как программисту стать тимлидом

Приходит Петька к Василию Ивановичу: «Васильываныч, хочу быть тимлидом!..»

Неоднократно мне приходилось читать (например, на DOU), как при обсуждении той или иной IT-компании, люди хвалят или ругают работодателей за их отношение к профессиональному росту персонала: «Отличная компания, я пришел сюда разработчиком, а недавно стал тимлидом!» или «Лучше сюда не идите, в компании стараются брать руководящие кадры со стороны вместо того, чтобы повышать своих рядовых сотрудников».
Я успел побывать как в роли повышаемого, так и в роли повышающего. Потому уверен, что подобные заявления достаточно наивны. На самом деле, в большинстве IT-компаний (кроме самых маленьких) проблема состоит не в том, что расти программисту некуда, а в том, что «двигать» некого.

Работодатели

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

Что делать?

Итак, вы все-таки хотите стать тимлидом:

  1. Для начала подумайте, нужно ли вам это? Если вы очень любите программировать — знайте, что на программирование у вас останется гораздо меньше времени. С расширением полномочий уровень ответственности тоже увеличится: придется отвечать не только за себя, но и за всех членов своей команды. Стрессов станет побольше, особенно, в первое время и при сдаче проектов. А зарплаты тимлидов, замечу, не выше обычно, чем у ведущих специалистов.
  2. Вам придется научиться говорить «нет», проявлять твердость характера: кому нужен тимлид, которому сотрудники «садятся на голову»?
  3. Беритесь за организационную деятельность: неважно — будет ли это нечто связанное с текущими проектами, общим рабочим процессом компании или банальной организацией «пьянок» для сотрудников. Главное — чтобы это приносило пользу компании.
  4. Необходимо не только проявлять активность, но и брать на себя ответственность: подход «все пидорасы — один я д’Артаньян» вряд ли приблизит вас к поставленной цели.
  5. Помните, что ваше руководство — не телепаты: сообщите им о своем желании стать тимлидом. В этом нет ничего зазорного или унизительного. Зато руководство будет знать о вашей цели и может посодействовать — подсказать, чему стоит подучиться.
  6. Необходимо качественно выполнять свою текущую работу: если вы регулярно нарушаете дисциплину, срываете сроки и недобросовестны — вас скорее уволят, чем повысят.
  7. Постарайтесь заслужить уважение коллектива: если «коллеги по цеху» не считают вас профессионалом и приятным человеком — не воспримут и как реального руководителя.
  8. Очень важно хорошо говорить и писать. Как правило, в полемике выигрывает лучший оратор. Руководитель, слабый в дискуссиях и спорах, легко может растерять авторитет.
  9. Учитесь не только программированию, но и методам управления. Для этого придется штудировать, кроме книг по «паттернам» проектирования и языкам программирования, также книги и статьи по менеджменту, методологиям разработки, работе с рисками, несомненно, по человеческому фактору…
  10. Тимлиду в аутсорсинговой компании может понадобиться и свободное владение английским.

Такого набора качеств и действий, в принципе, достаточно, чтобы вас заметили и повысили.
 Дерзайте!


iTunes — музыкальный костыль

Компания Apple всегда поражала меня своим подходом к бизнесу и маркетингу в частности — им удается делать как замечательные продукты, так и откровенную халтуру, сбагривая ее под лозунгами «инновационное» или «думай иначе»!
У Apple есть верная армия фанатов, готовых с пеной у рта доказывать, будто продукт не халтурный и не переоцененный. А ты — архаичный консерватор индустриального общества, не понимающий великого iСтиля.

Давайте на минуту отойдем от Apple и поговорим о восточных учениях. На востоке существует такая замечательная вещь — Йога: средство, научиться управлять своим телом и сознанием, она помогает обрести физическое здоровье и жить в гармонии с миром.
Все это замечательно и я с радостью занялся бы йогой, если бы не одно но: чтобы йога давала нечто большее чем эффект плацебо нужно радикально перестроить свою жизнь, свою систему ценностей… я слишком люблю свою жизнь такой, какой она есть чтобы радикально что-то менять.

Аналогичная ситуация и с iTunes. Всякий раз, когда жалуюсь кому-нибудь из мак-фанатов на качество этого «плеера» — выслушиваю лекцию о том, что к музыке нужно относиться как к музыке, а не как набору файлов. Всей оцифрованной музыке необходимо указывать ID3-теги и, вообще, нужно ее сортировать, а не держать свалкой на винчестере. Каждый порядочный мак-юзер обязан потратить N дней на указание ID3-тегов к своей музыке, а затем наслаждаться.
Только после этих монологов мне удается, наконец, рассказать, что вся (или 99%) музыка в mp3/ogg у меня снабжена тегами, рассортирована в формате исполнитель/год – альбом/номер трека – название песни, а сборники лежат отдельно и отсортированы по тому же принципу.

Увы, iTunes не позволяет легко и красиво с ней работать.

Как же выглядит работа iTunes с организованной коллекцией музыки? Первым делом «тюнс» пытается скопировать мои 70 гигабайт музыки к себе в папку. Какая разница, что они находятся не на сменном носителе?
Затем вся музыка импортирована и… о ужас! что случилось со всеми сборниками? В них стало очень тяжело ориентироваться, ведь в сортировке «по исполнителю» каждый сборник превратился в 10-15 песен разбросанных по плейлисту. Оказывается, необходимо выделить все эти песни и указать в настройках, что они являются частью одной компиляции. А когда слушаешь сборники — надо переключаться в режим сортировки музыки не по исполнителю, а по альбому (если в сборнике у всех композиций одинаковое поле «Альбом»). Еще менее прилично ситуация обстоит с музыкантами, которые нередко выпускают композиции в соавторстве: конечно же, Black Sun Empire, Black Sun Empire VS Concord Dawn и Black Sun Empire feat Illy Emcee — разные исполнители, плевать, что они все находятся на одном альбоме. Конечно, можно переключиться в режим альбома и нормально видеть все эти треки, но в этом случае неудобно будет пользоваться остальным плейлистом.

В iTunes, банально, нет возможности отсортировать музыку в том порядке, в каком файлы лежат в файловой системе (например, в WinAmp такой режим сортировки присутствует наряду с остальными) — мы, ведь, не должны думать о файлах, мы должны думать о музыке! Конечно же, музыку желательно не выкачивать с «торрентов», не «грабить» с дисков, а покупать в iTunes Store… Затем удобно сортировать в iTunes, сделать плейлист и закачать его для прослушивания в свой iPod.

Но я не хочу заново сортировать музыкальную коллекцию, не хочу указывать, какие песни входят в сборники, не хочу переключаться между разными режимами сортировки коллекции, не хочу создавать десятки плейлистов и не хочу выкачивать обложки альбомов из iTunes Music Store. Моя музыкальная коллекция и так в порядке. Я просто хочу список всей своей музыки, отсортированный по ее местоположению в файловой системе и удобный поиск по этому списку — все!

В отместку за все мои страдания шлю Эпплу, его маркетологам и Стиву Джобсу лично луч свирепой диареи!


Программы MacOS на каждый день

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

  1. Mail app + Адресная книга MacOS. С 2005 года это мой любимый почтовый клиент. Конечно, после выхода Thunderbird 2, Mail уже не кажется на голову выше всего остального, тем не менее, остается самым удобным почтовым клиентом из всех, что я видел. Смущают в программе только 2 вещи: настройки папок IMAP не всегда находятся в логичных местах, кроме того «из коробки» в программе не поддерживаются приоритеты писем (только «флаг», как в Gmail), решается эта проблема специальным плагином.
  2. Adium — великолепный многопротокольный IM-клиент. Сделан на том же движке, что и Pidgin, но Pidgin крайне убог в плане дизайна и эргономики, Adium же радует глаз, интуитивен и функционален. Ближайшим аналогом является Trillian в Windows, но, в отличии от триллиана, Adium не глючит с кодировками в ICQ. Есть у Adium’а и серьезный недостаток, доставшийся ему по наследству от Pidgin’а — нет возможности управлять ignore/visible/invisible-списками в ICQ.
  3. Skype — Скайп, он везде скайп. Правда, внешний вид у него в MacOS мне нравится больше чем в Linux-версии и намного больше чем в Windows. Еще одним важным для меня плюсом является поддержка Yugma, которой в Linux-версии Skype попросту нет.
  4. OmniWeb — очень качественный и быстрый коммерческий броузер, его можно считать аналогом Opera, но на движке Safari. Единственный ощутимый минус — нет функции «undo close tab».
    Многие используют в MacOS родной броузер Safari: мне кажется, Safari — броузер быстрый и простой, но функционально находится на уровне IE 7.
    Firefox 2-й версии в MacOS представляет из себя тормозную поделку глючащую с русскими шрифтами. Но, уже неделю я пользуюсь последней версией Firefox 3 beta, он работает почти так же быстро, как и OmniWeb, выглядит как родное mac-приложение, быстр в работе и глюков с русскими шрифтами нет. Однако, еще не все плагины нормально работают в 3-й версии, а некоторые сайты (например, Google Docs & Spreadsheets) здесь глючат. Я полностью откажусь от OmniWeb, когда выйдет финальная версия Firefox 3.
  5. Unison — клиент для конференций Usenet (протокол NNTP). Не скажу, что в восторге от программы, но удобнее ничего не нашел. В отличии от большинства NNTP-клиентов программа позволяет прикреплять файлы к сообщениям и отдельно выводить список файлов конференции, что является несомненным плюсом. С другой стороны — нет возможности посмотреть сводку о новых сообщениях во всех конференциях на одной странице.
  6. Vienna — качественная бесплатная программа для чтения RSS/Atom. К сожалению, для конфиденциальных потоков приходится использовать ее, а не Google Reader. Но сама программа, однозначно, хороша.
  7. Transmit — добротный двухпанельный FTP-клиент. Все работает легко и стабильно. Не хватает, только, возможности использовать несколько вкладок, как в FTPRush.
  8. Calculator — без комментариев.
  9. iTunes + Last.FM — аудио-плеер. Пожалуй, самая спорная программа Apple. Я всячески пытался найти ей альтернативы, 4 недели использовал сыроватый Cog, но в итоге пользуюсь iTunes. Вскоре напишу о нем отдельную статью.
  10. Visual Paradigm — кросс-платформенный инструмент для UML-моделирования. О нем тоже будет отдельная статья.
  11. iWork — офисный пакет производства Apple, совместимый с MS Office и Open/NeoOffice. В отличии от MS Office простой и удобный в использовании, при том внешне iWork больше похож на Windows-версию офиса, чем на mac-весию. Умеет проверять русскую орфографию. В отличии от бесплатного NeoOffice красиво выглядит. В состав входят Pages (аналог Word), Numbers (аналог Excel) и Keynote (аналог PowerPoint). Numbers я не использую, так как хватает Google Spreadsheets, Keynote не нужен вовсе, а вот Pages активно использую, когда нужно писать тексты и важна проверка правописания.
  12. Dictionary — стандартный словарь входящий в поставку MacOS. Был бы ничем не примечательным, если бы не словари Lingvo 12, которые я туда интегрировал.
  13. MacPorts — MacOS, это ведь unix-система. Мак-порты — это упрощенный аналог портов во FreeBSD. Через порты я ставил Python, Mercurial, Midnight Commander, Wget (хотя, последнее время, чаще пользуюсь iGetter’ом).
  14. VMWare Fusion — виртуальная машина, о ней можно почитать в предыдущей статье.
  15. FreeMind — кросс-платформенное средство для рисования MindMap’ов.
  16. MuCommander — двухпанельный файловый менеджер, аналог Total Commander’а. Инструмент нормального geek’а, Finder’ом для активной работы с файлами пускай пользуются «гламурные блондинки». Удивительно, но бесплатный MuCommander понравился мне значительно больше платного DiskOrder.
  17. TextMate — самый удобный и приятный из всех программистских текстовых редакторов, которыми я пользовался (для честности скажу — Vim не осилил). За счет встроенных плагинов (они называются bundles) обладает богатым функционалом. Подкупает обилие встроенных цветовых схем, большинство из которых предполагает работу со светлым текстом на темном фоне. Редактор мне понравился так сильно, что дома в Windows стал пользоваться его клоном — E-TextEditor.
  18. AppZapper — честное удаление программ. Многие знают, что удалять программы в MacOS очень просто, для этого достаточно перетащить иконку приложения из папки applications в корзину. Но, лишь, немногие знают, что большинство приложений оставляют за собой мусор в виде кеша, файлов настроек, логов… При удалении программ через AppZapper это проблема решается.
  19. Disco — простое и удобное средство записи CD/DVD-дисков.
  20. iGetter — менеджер закачек, аналог ReGet/FlashGet/Download master. В паре с плагином FlashGot для Firefox показывает чудеса удобства (как и Reget в Windows).
  21. Transmission — удобный и простой в использовании Bit Torrent клиент. Сильно напоминает uTorrent в Windows. Большинство программ для MacOS я выкачиваю из торрентов.
  22. CHMox — просмотрщик CHM-файлов. Apple посчитала лишним включать в систему поддержку стандартного формата help’ов из Windows. Однако, большинство электронных книг представлены именно в этом формате.
  23. Perian — набор кодеков для Quick Time. Вместе с ним Quick Time превращается из чего-то убого-платного в полноценный удобный видео-плеер.
  24. KeyboardRemap — небольшая утилита, позволяющая расширить функционал клавиатуры. Я с ее помощью отключил NumLock в MacOS.
  25. JumpCut — небольшая утилита, сохраняет историю буфера обмена. Аналог Ditto в Windows.
  26. Jing — великолепное бесплатное средство для и захвата снимков и видео с экрана. Мне понравилось больше чем SnagIt. Тут отличный интерфейс, удобный захват снимков, удобные средства подписей этих снимков, а самое главное — кроме сохранения файлов-скриншотов Jing умеет закачивать их на Flickr или на сайт программы.
    Хотя, многие вполне довольны связкой встроенного в ОС средства скриншотов и фотошопа.
    На сайте сказано, что существует версия Jing и под Windows.
  27. ClamXav — бесплатный антивирус для MacOS. О вирусах в этой системе я уже слышал. Учитывая, что часто качаю патчи для программ из неблагонадежных источников — время от времени проверяю систему на наличие вирусов.
  28. Porrasturvat — игра, румынский симулятор сбрасывания человека с лестницы. Отличное средство чтобы расслабить мозг. Есть версия и для Windows.
  29. TeeWars — снова игра, снова кросс-платформенная. Двухмерная мультиплеерная аркада, очень веселая. Опять же, отличное средство отвлечься на 5-15 минут.

Единственная программа, которая нужна мне каждый день и аналога которой я не нашел для MacOS — Punto Switcher. Если быть точным — аналог есть, RuSwitcher но у меня в Leopard он не заработал.

Выводы из статьи делайте сами.


MacOS без фанатизма

С MacOS я знаком давно, еще, будучи учеником, в школе работал два года за старенькими маками (MacOS, кажется, т