Чудовищная верстка

Впечатлен o_O.

Наткнулся на сайт RBE Group, сделанный Студией Лебедева.

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

Йоптить.
Не ну не видели они что ли? На чем тестировали?

Мотивация IT-специалистов, 17 мая, Одесса, Конференция HR-IT

17 мая в Одессе на конференции HR-IT буду вести круглый стол на тему мотивации IT-специалистов. Предполагаю обсудить:

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

Буду рад встрече :).

Мой номер в Украине: +38 063 571-58-14


Update: Фотографии с конференции HR-IT.

Опыт продуктового менеджмента мобильного стартапа — мой доклад с ProductCamp

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

Почему нужно просить нормальных денег за работу

http://miumau.livejournal.com/980578.html

Читать всем фрилансерам (и заказчикам) в обязательном порядке :).

Футболки с котэ

Котэ

Не прошло и пяти лет, как я открыл магазин с футболками «Motivate me right!»— всем читателям моей хулиганской книжки про мотивацию посвящается :).

Я с самого начала хотел продавать футболки, и даже напечатал несколько в 2008 году, но дело не пошло, потому что времени не было всем этим заниматься. Но теперь такой магазин можно сделать всего в пару кликов с помощью Print Direct: далее реклама :)

Парсер OZON.ru версии 1.26

Парсер обновился. Теперь он не только поддерживает последние изменения на сайте ozon.ru, но и умеет делить кэш на несколько сайтов.

Скачать можно по адресу: Парсер OZON.ru (теперь он живет тут).

Решение найдено. (ex: Нужна помощь коллективного разума)

потому что мой уже трещит по швам :).

Неведомая фигня происходит на моем компе. У меня есть вот такая программка:

// a.c
#include 

int main (int argc, char** argv) {
  FILE* f = fopen("x", "w");
  fprintf(f, "Hello!\n");
  printf("Hello!\n");
  fclose(f);
}

Компилирую, запускаю:

a.exe > y

— файл "y" создается, а "x" — нет.

Windows 7, компилятор mingw (Visual Studio C++ тоже пробовал).

И такая хрень происходит с любым моим C'шным скомпилированным кодом — файлы не создаются. Потом вдруг рррраз, создались! А потом снова не создаются.

Update: Спасибо Лехе aka "Android", решение найдено. Это был Avast, мать его. Стоит выключить его файловый экран, все работает, включаю - перестает. И, блин, хоть бы он голос подал, что ему моя программа подозрительна. Так нет, он молча все делает - без намека на проблему. И, как пишут на форумах, эта проблема с Avast не только у меня появилась после его обновления до версии 7.

Почасовая ставка vs. Fixed price

Несколько мыслей о том, почему я люблю работать на почасовой ставке и не люблю проекты с фиксированной ценой.

На fixed price я заинтересован сделать проект как можно меньшими усилиями. Т.к. заказчики неохотно идут на увеличение бюджета fixed-проектов, я буду всячески сопротивляться любым требованиям, выходящим за рамки начального объема работ. Если у меня будут идеи о том, как сделать продукт лучше, я, скорее всего, их придержу, чтобы не оказаться в ситуации, когда мне придется их реализовывать забесплатно.

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

Fixed price часто выбирают «жадные» клиенты. Они легко увеличивают объем работы, но не бюджет. Все мои постоянные клиенты работают со мной на почасовой ставке. Причем это не означает, что они платят больше за свои проекты, чем те, что предпочитают fixed-price.

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

С Fixed-price я беру технические риски по проекту на себя — если всплывет какая-то сложность, которая не была учтена при определении бюджета, мне, скорее всего, придется работать над ней за свой счет. В случае почасовой ставки этот риск лежит на заказчике.

Как определить плохого заказчика? По следам вебинара «Как построить хорошие отношения с заказчиками»

Спасибо всем, кто пришел меня послушать, и, конечно же Сергею Бережнову, что пригласил меня выступить!

Запись уже обработана, Сергей в ближайшее время обещал выложить.

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

Полезные ссылки по теме

Семь признаков плохого заказчика

  1. Неадекватно жадный.
  2. Fixed-price проекты c размытым функционалом и оплатой по факту выполнения.
  3. Низкая доступность заказчика по ходу работы с последующим появлением в конце разработки со словами «нет, это совсем не то».
  4. Не готов к уступкам.
  5. Ограничивает взаимодействие с ключевыми людьми в проекте со своей стороны.
  6. Изначально не доверяет.
  7. Считает достаточным вкратце формализовать задачу и закончить разговор словами «Ну вы же профессионал, сами все должны понимать, к тому же мы вам СТОЛЬКО платим».

Семь признаков хорошего заказчика

  1. Понимает, что хорошая работа стоит хороших денег.
  2. Знает, что из низкой цены, качества и скорости разработки можно выбрать только два пункта.
  3. Ежедневно доступен для связи и охотно идет на контакт.
  4. Регулярно участвует в обсуждениях по проекту.
  5. Не занимается микроменеджментом.
  6. Изначально обладает высоким уровнем доверия.
  7. Как правило, из западных компаний и работает по адекватному процессу.

Как построить хорошие отношения с заказчиками и не нарваться на м*даков

1 марта состоится мой вебинар «Как построить хорошие отношения с заказчиками и не нарваться на м*даков». Участие бесплатное, регистрация открыта — welcome! :)

О чем будем говорить:

  • Откуда берутся заказы.
  • Какие у меня правила работы с заказчиками.
  • Как из заказчика сделать «постоянного клиента».
  • И как избавляться от тех заказчиков, с которыми работать не хочется.

+ Несколько кейсов про реальных клиентов и проекты, которые начинались одинаково, а закончились по-разному (с разной степенью успешности от «Wow!» до «Полный факап!») и почему.

Epic fail? Или как мы делали мобильный стартап в Испании

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

Моя роль в проекте Spanish Village — разработчик в одном из стартапов, выбранных в результате конкурса в 2011 году. Три месяца мы провели в живописнейшем местечке в нескольких километрах от города Тарифа, что на южном побережье Атлантики в Испании.

Tarifa

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

Нас содержали в прекрасном отеле (Punta Sur — очень рекомендую), кормили на убой изысканными блюдами испанской кухни и обучали различными бизнес-менторами, а также испанскому и английскому языкам. Обещали подогнать инвесторов.

Jamón y melón

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

На все про все у нас было всего три месяца. За это время мы должны были научиться делать бизнес, презентовать свои проекты, составлять бизнес- и финансовые планы, проработать стратегию развития стартапа, познакомиться с условиями организации технологических бизнесов в Андалусии. Да, и разработать пилотную версию приложения. И все это силами троих человек, двое из которых — разработчики, и один — менеджер.

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

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

По возвращению домой мы дорабатывали наше приложение еще почти месяц, прежде, чем его стало не стыдно показывать. Кстати, вы можете найти его на Android Market, называется Around The World. Это мобильный гид с картой (OpenStreetMap), POIs (из Википедии), а также нашим ноу-хау — функцией распознавания архитектурных объектов.

Да, вот эта вот штука стоит 90 000 евро :).

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

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

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

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

Startuppoint

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

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

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

А теперь немного конструктива: как бы сделал я, имея весь этот опыт.

  1. Выездная разработка — однозначно хорошая идея. В новом месте, особенно с хорошим климатом, солнцем и морем, работается лучше.
  2. Жить не в отеле — там, конечно, классно, но слишком дорого. На те же деньги (я прикинул — минимум 35 000 евро), при должной экономии (и зная где искать :), можно на два года снять домик в той же Испании (каждому — своя комната, патио прилагается).
  3. Есть не в отеле — еда была вкуснейшей, порции — громадными, через месяц все набрали 6-10 кг массы. Не представляю, сколько всё это стоило, но я бы предпочел питаться проще, но при этом иметь больше времени для работы над проектом, не думая о деньгах. Вообще, там (в Испании) тепло, и есть практически не хочется. Пицца стоит 5-10 евро. Если готовить дома на весь проект — получится вообще копейки — на те два года аренды дома понадобится где-то 12 000-16 000 евро на хорошую еду (можно и дешевле).
  4. Обучение языкам — ох, даже и не знаю. Для личного развития испанский был в тему (кстати, в Испании есть возможность посещать бесплатные государственные курсы испанского, которые, уверен, хуже, чем те, что были у нас, но все же). Нужен ли он нашему проекту — не знаю. Если предполагать вести бизнес на территории Испании — однозначно да, хотя можно в нужные моменты привлекать переводчика.
  5. Бизнес-обучение — послушав несколько лекций и услышав информацию частично известную и частично неинтересную, я воспользовался своей ролью разработчика и на бизнес-обучение не ходил — работал над продуктом. Живой опыт наших менторов дорого стоит, но лучше его получать не в виде лекций, а тогда, когда у нас самих возникают вопросы. В качестве источника знаний я предпочитаю книги. Правда, среди наших коллег это мнение никто не разделяет.
  6. Экскурсии и конференции — частично полезны, частично — нет. Так, было полезно съездить в технопарки Малаги и Севийи (в Малаге круче :), пообщаться с людьми, которые работают в испанских стартапах. Посещение конференции EmTech было вообще бессмысленным. Поездки по Испании и близлежащим странам (от Тарифы 35 минут до Танжера в Марокко, а однажды мы арендовали машину и доехали до Лиссабона в Португалии) тоже были полезны. В Испании очень дешевая аренда машин — за 3 000 евро можно снять тачку на год и использовать ее всем проектом.
  7. Инвесторы и инвестиции — а и нету их. Потратив больше времени на разработку и раскрутку продукта, есть не только больше шансов найти инвесторов, но и самостоятельно выйти на достаточный уровень продаж, который, пусть и не покроет расходы, но сделает инвестиции в проект более привлекательными.

В итоге, на те виртуальные 90 000 евро наша команда могла бы работать над проектом как минимум год (а то и два!), за который мы бы не только вышли на рынок, но, думаю, привлекли бы инвестиции (или убедились, что дело того не стоит :). Шансов у нас было бы гораздо больше.

Резюме: больше автономии в выборе деталей пути (и, да, меньше возможностей бухать и есть :).

Яндекс. План "Б"

Был вчера на конференции «План Б» в питерском Яндексе, посвященной планированию проектов. Понравилось :).

Из докладов больше всего запомнился «Полет на Марс, или как не обидедь слона» Георгия Липатова из iFree:
Георгий Липатов, iFree
На простом примере он рассказал о том, как планировать проект, чтобы было без факапов. Отличная презентация, подача и идеи.

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

Море плюшек, Яндексу - респект :)

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

Фотки с конференции: на Яндекс.Фотках (отсюда можно скачать хайрезы), в Facebook, Вконтакте.

Twitter: #pbconf — там, кстати, ссылки на презентации уже появились.

Опрос про Agile

Привет!

Кирилл Климов проводит опрос об использовании средств управления в Agile проектах. Если не трудно, заполните пожалуйста — поможем хорошему человеку подготовить хороший доклад для AgileEE :).

Спасибо!

Презентация к моему докладу про фриланс на IT Jam

IT Jam очень порадовал. Было много веселого расслабленного IT-шного народу (более 1200 человек), интересные доклады и зажигательная концовка концертом IT-шных рок-групп, одна из которых - из Global Logic - взяла нас на борт своего автобуса и подбросила до Киева :).

Ruby on Rails

«Альтернатива состоит в том, чтобы быть незаурядным! Начинается все с продуктивности. Я хочу сказать, что вы должны быть в самом деле настолько эффективны, что никому в голову не придет делать из вас козла отпущения; даже сама попытка должна быть равна политическому самоубийству. Я говорю о культивировании практики, при которой ваши результаты настолько блестящи, что вызывают слезы радости даже у самых циничных и жестокосердых заказчиков проекта».
-- Оби Фернандес, «Путь Rails».

Антикорпоративный галстук

Ради такого стоит пойти работать в какую-нибудь компанию, где есть дресс-код :).

MySQL — потерянные буквы 'ш' и 'И' — решение

Недавно пришлось восстанавливать сайт на Wordpress, и дамп MySQL'ной базы оказался дважды перекодирован из Windows-1251 в UTF-8. После того, как я его перекодировал взад, оказалось, что из русского текста пропали две буквы: 'ш' и 'И' — на их месте стояли кракозябылы.

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

Скачать: SHI-convert.zip (1 Кб).

Скрипт будет работать, скорее всего, только для двойного преобразования Windows-1251 → UTF-8. Результат работы скрипта — текст в UTF-8 с поставленными на место буквами 'ш' и 'И'.

Шлите ваши комментарии :).

<?php
/**
    Восстанавливатель текстов, подвергшихся двойной перекодировки  
    из Windows-1251 в UTF-8. Казалось бы, что сложного в том, чтобы 
    сделать обратное преобразование? Однако, проблема в том, что 
    по неизвестным причинам в исходном тексте теряются две буквы: 
    'ш' и 'И'. 

    Особенно часто этот глюк встречается при экспорте базы из MySQL 
    при криво настроенных свойствах кодировки таблиц и экспорта.

    Как использовать:

    php SHI-converter.php {имя файла} > {имя нового файла}


    Комментарии, предложения, замечания? 
    http://outcorp-ru.blogspot.com/2011/08/mysql.html
    
    Copyleft, Стас Давыдов и Outcorp, 2011. 
    stas@motivateme.ruhttp://stasdavydov.comhttp://outcorp-ru.blogspot.com/
*/

define("DEBUG"FALSE);

function 
get_bytes($str) {
    
$len strlen($str);
    
$bytes '';
    for(
$i 0$i $len$i++) {
        
$bytes .= sprintf('%2X'ord($str[$i]));
        if (
$i $len 1)
            
$bytes .= ' ';
    }
    return 
$bytes;
}

function 
fix_bytes(&$str$start 0$len 0) {
    if (
ord($str[$start $len]) == 0xD0) {
        
$str[$start $len 1] = chr(0x98);
    } else if (
ord($str[$start $len]) == 0xD1) {
        
$str[$start $len 1] = chr(0x88);
    } else {
        
$str[$start $len] = ' ';
    }

}

function 
fix_string(&$s) {
    
$converted = @iconv('utf-8''windows-1251'$s);
    if (
strlen($converted) > 0) {
        
$converted iconv('windows-1251''utf-8'$converted);
        
$sub strlen($converted);
        
$start strpos($s$converted);

        if(
DEBUG)
            echo 
$converted;

        if(
DEBUG) {
            echo 
'['.get_bytes(substr($s$start $sub)).']'."\n";
        }

        
fix_bytes($s$start$sub);

    } else {
        if (
DEBUG)
            echo 
'['.get_bytes($s).']'."\n";

        
fix_bytes($s);
    }
}

if (
$_SERVER['argc'] != 2) {
    echo 
'Usage: '.pathinfo(__FILE__PATHINFO_FILENAME).".php <name of file to recover>\n";
    exit;
}

$filename $_SERVER['argv'][1];

$str file_get_contents($filename);
$utf8str iconv('utf-8''windows-1251'$str);
foreach(
preg_split('/( |\t)/'$utf8str) as $s) {
    while(! 
mb_check_encoding($s'utf-8')) {
        
fix_string($s);

        if (
DEBUG)
            echo 
$s."\n";
    }

    if (! 
DEBUG)
        echo 
$s.' ';
}
?>

IT Jam: Питер → Одесса

20 августа выступаю на IT Jam в Одессе про фриланс, за и против. Буду расскаывать вещи, о которых еще не рассказывал. Минимум пространных рассуждений, максимум жизни и примеров :).

Участие в конференции беслпатное. Это круто :)
Приходите меня послушать. Да и вообще буду рад встрече! :))

Мой украинский номер: +38 063 571-58-14