Продолжение повести начатой тут:http://www.habrahabr.ru/blog/startup/13187.html
Часть 2. Горка.
Итак. Мы занимаемся работой, пишем всякую фигню сопряженную с нашим opensource проектом. Кстати, в данный момент я начинаю понимать, что на кодирование программы нужно не всё заявленное на работу время. Сколько именно я еще точно не знаю. Нет, я конечно читал Брукса, но кто ж поверит какой-то макулатуре. Это ж, блин буржуи. Нашу славянскую душу буржуйскими книгами не опишешь. (Идиот. Это я не о Бруксе, а о себе :) )
В общем как-то раз стучится мне в аську товарищ и говорит: «Слы тут буржуй один стучится и спрашивает могу ли я сделать такую-то работу. А я говорю нихрена не могу, но я знаю одного знатока который может. Ща дам ему твои контакты.» Таким образом мы получаем [b]ПЕРВЫЙ БУРЖУЙСКИЙ ПРОЕКТ[/b].
Не, вы вообще представляете разницу в уровне жизни тут и там (или в уровне оплат?...) Короче, что что я тут бы выторговывал целуя заказчика в попу я получаю без проблем! Мы получаем заказ на сумму более 1000 евро! Пипец. Я не знаю куда бежать. Вот он наш звездный час!!! Прикиньте, проект в котором есть и PHP и С++ и база данных (миллион новых записей в месяц. это я знаю сейчас. Слава богу, что у нас был товарищ который реально шарил по БД, а то бы я сделал им такую БД, что она умерла через 2 недели. Но наш хороший товарищ не дал мне сделать «побыстрее», а сделал нормально :) Кстати, это был не мускул. )
Вернусь к вновь сторгованному проекту. Я делаю оценку 2 месяца.
Что сказать. Делали мы его 8 месяцев.
В общем примерно 100 уе в месяц на человека. Я понимаю, что я:
— не умею делать оценки по срокам
— я не умею вообще ни хрена и меня надо сдать в утиль.
Короче депрессия. После сплошных флэш-роялей мизер с паровозом.
Очередная «опа» (с). Нет ОПИЩЕ.
Ладно, депрессию переживали и не такую :)
В общем тут приходит очередной этап моего развития как программера и незвисимого бизнесмена.
Я [b]НЕ УМЕЮ ПЛАНИРОВАТЬ ПРОЕКТЫ[/b]
Ну что. А ничего. Я иду в интернет а потом в магазин и покупаю MS Project для дебилов. (В принципе экселя хватило бы, но в книге были умные слова типа PERT которые нужны если надо по@#$%ваться. Немного отвлекусь. Недавно был случай, когда я торговался за проект. Заказчиком был посредник. Еще одна аутсорсинговая контора. И вот я представляю свои оценки по времени. Мне товарищ из конторы задает вопрос мол какого х№; и такие сроки. А я ему да вот б%я воспользуйтесь методом PERT и всё поймете. Урод заткнулся (Я не гоню на заказчиков, но этот был урод :) Короче, я понимаю, что ПЕРТ нужен для заказов, наверное, более $1_000_000 или даже больше, но слово модное. А скажи, я вот посчитал в сранном экселе....)
В общем я начинаю осваивать MS Project, рисовать диаграммы, и т.д и т.п. В последствии окажется, что для проектов до 10_000уе достаточно экселя и опыта. Может этого будет хватать и для 100_000 уе, но я пока об этом не знаю :)
Вот, я приобрел новый опыт. Опыт проя@#$^ия проектов. Не то, что бы проект был запоран и мы его не сделали. Нет, мы с честью выдержали испытание. Да, мы не заработали денег, но мы и не заработали плохой репутации. Мы сдали проект и продолжаем сотрудничество с заказчиками, уже с новым опытом, с новыми ценами, но мы не выглядим ганд@#$%ми. Кстати, кроме опыта этот проект дал нам в портфолио буржуйского заказчика.
В общем это событие заставило вновь сделать переоценку того, чем я занимаюсь.
Конец части №2
Часть. 3. Трехголовый змей ищет друзей.
Вернусь к самому началу нашей работы. В команду объеденились 3 человека, на условиях равноправия. Т.е. решения принимаются согласованно со всеми. Речь идет о политических решениях, а не о программерских. Т.е. направление нашего развития, какие-то концептуальные вопросы. С одной стороны хорошо — демократия, никто не обижен. Но с другой стороны всё далеко не так хорошо и рано или поздно один будет за, другой против, а третий воздержится. В общем схема в которой нет высшей инстанции должна была привести в какой-то момент к конфликту, причем понимал я это с самого начала, но выбора у меня не было.
Думаю каждый из нас троих считал (и считает) себя равным, но немного равнее, чем другие. В общем конфликт случился, было принято какое-то важное решение без согласования со мной. Что именно за решение я уже не помню, наверное, на самом деле, оно было не столь важным :) Ну в общем я устроил сцену ревности с разборами полетов и т.д. В конце концов меня попустило, конфликт был улажен и всё вернулось в свое русло. Схема нашей работы не изменилась, команда не распалась, однако я до сих пор убежден в порочности такой схемы.
Примерно в то же время, когда произошел конфликт, я понимаю что есть новая проблема. Я иногда не знаю, кто сейчас трудится, а кто нет, и вообще чем заняты бойцы. Также у нас расширяется кол-во заказов и приходится приглашать на помощь товарищей. Эти два события заставляют задуматься над учетом рабочего времени. Кто сколько трудится и трудится ли вообще. Начинаются поиски софтины, позволяющей учитывать рабочее время, стоимость времени для сотрудников и стоимость этого же времени для заказчика. После перебора кучи вариантов я останавливаюсь на этом sandsurfer.sourceforge.net После доработки напильником программа может хорошо выполнять все необходимые функции.
Теперь немного про то, как мы приглашали к работе новых програмистов. Ситуация примерно следующая: иногда у нас начинают появляются заказы с которыми мы не успеваем справляться, однако еще нет базы, которая позволила бы нанять полноценно программиста на ежемесячную оплату. Что делать? Начинаем спрашивать толковых студентов на последних курсах, друзей, знакомых и т.д. на предмет сделать шабашку. Народ понемногу откликался. Мы давали небольшие работы и смотрели, кто что делает. В общем так через нас прошла кучка народу, большая часть которых отсеялась, но осталась пара человек с которыми начали постоянно работать.
Кстати о студентах. Есть потенциально очень толковые студенты, у них дофига энтузиазма, быстрые мозги и хорошая память, но нет опыта. Работа с ними без пристального присмотра приводит к очень забавным результатам в написании кода. Ну например засунуть блок оптимизации (по логике отдельная большая сущность) в класс базы данных. А потом вызывать функции оптимизатора почему-то из класса БЛ :) И получается как в том рассказе про рассеянного с улицы Бассеянной: «Побежал он в кассу покупать бутылку квасу». В общем пришлось долго доказывать что не надо смешивать принципиально разные вещи в одном классе.
Тут я вынес еще один урок: по началу молодых бойцов надо очень внимательно контролировать, и доверять самостоятельную работу только когда удостоверишься, что нет откровенных ляпов. Наиболее правильно самому выполнять проектирование, делать заглушки и просить эти заглушки наполнить кодом.
С появлением у нас новых бойцов приходит конец разгильдяйству с деньгами. Нужен, как минимум, нормальный учет. (До планирования еще далеко. Слишком мы зависим от Фортуны :) ) Благо рядом был нормальный бухгалтер и заходя раз в неделю-две делал все проводки. Т.е. я в течении недели накапливал чеки, листочки (мне друг подогнал 2 ящика перфокарт. удобные листики :) ) с записями о приходах, тратах и т.д., а бухгалтер нормально это оформлял.
В команде особой популярностью пользовались месячные отчеты о деятельности команды. Положительные отчеты. Отрицательные отчеты успехом не пользовались.
В это же время я рисую большую таблицу в экселе которая позволила бы понять сколько я должен брать с заказчика если у меня N отцов-основателей, M — наемных работников, P% простоев, S% налогов, всякая амортизация компов, стоимость офиса, и т.д. Грубо говоря получается, что если нас трое отцов, и у нас трое наемных рабочих, простой 30% времени, час стоит 7 уе, ЗП рабочих 600 уе отцы имеют ~980 уе… Но не всё так просто… Иногда простои бывали по круче чем 30% :)
Конец части №3
Часть 2. Горка.
Итак. Мы занимаемся работой, пишем всякую фигню сопряженную с нашим opensource проектом. Кстати, в данный момент я начинаю понимать, что на кодирование программы нужно не всё заявленное на работу время. Сколько именно я еще точно не знаю. Нет, я конечно читал Брукса, но кто ж поверит какой-то макулатуре. Это ж, блин буржуи. Нашу славянскую душу буржуйскими книгами не опишешь. (Идиот. Это я не о Бруксе, а о себе :) )
В общем как-то раз стучится мне в аську товарищ и говорит: «Слы тут буржуй один стучится и спрашивает могу ли я сделать такую-то работу. А я говорю нихрена не могу, но я знаю одного знатока который может. Ща дам ему твои контакты.» Таким образом мы получаем [b]ПЕРВЫЙ БУРЖУЙСКИЙ ПРОЕКТ[/b].
Не, вы вообще представляете разницу в уровне жизни тут и там (или в уровне оплат?...) Короче, что что я тут бы выторговывал целуя заказчика в попу я получаю без проблем! Мы получаем заказ на сумму более 1000 евро! Пипец. Я не знаю куда бежать. Вот он наш звездный час!!! Прикиньте, проект в котором есть и PHP и С++ и база данных (миллион новых записей в месяц. это я знаю сейчас. Слава богу, что у нас был товарищ который реально шарил по БД, а то бы я сделал им такую БД, что она умерла через 2 недели. Но наш хороший товарищ не дал мне сделать «побыстрее», а сделал нормально :) Кстати, это был не мускул. )
Вернусь к вновь сторгованному проекту. Я делаю оценку 2 месяца.
Что сказать. Делали мы его 8 месяцев.
В общем примерно 100 уе в месяц на человека. Я понимаю, что я:
— не умею делать оценки по срокам
— я не умею вообще ни хрена и меня надо сдать в утиль.
Короче депрессия. После сплошных флэш-роялей мизер с паровозом.
Очередная «опа» (с). Нет ОПИЩЕ.
Ладно, депрессию переживали и не такую :)
В общем тут приходит очередной этап моего развития как программера и незвисимого бизнесмена.
Я [b]НЕ УМЕЮ ПЛАНИРОВАТЬ ПРОЕКТЫ[/b]
Ну что. А ничего. Я иду в интернет а потом в магазин и покупаю MS Project для дебилов. (В принципе экселя хватило бы, но в книге были умные слова типа PERT которые нужны если надо по@#$%ваться. Немного отвлекусь. Недавно был случай, когда я торговался за проект. Заказчиком был посредник. Еще одна аутсорсинговая контора. И вот я представляю свои оценки по времени. Мне товарищ из конторы задает вопрос мол какого х№; и такие сроки. А я ему да вот б%я воспользуйтесь методом PERT и всё поймете. Урод заткнулся (Я не гоню на заказчиков, но этот был урод :) Короче, я понимаю, что ПЕРТ нужен для заказов, наверное, более $1_000_000 или даже больше, но слово модное. А скажи, я вот посчитал в сранном экселе....)
В общем я начинаю осваивать MS Project, рисовать диаграммы, и т.д и т.п. В последствии окажется, что для проектов до 10_000уе достаточно экселя и опыта. Может этого будет хватать и для 100_000 уе, но я пока об этом не знаю :)
Вот, я приобрел новый опыт. Опыт проя@#$^ия проектов. Не то, что бы проект был запоран и мы его не сделали. Нет, мы с честью выдержали испытание. Да, мы не заработали денег, но мы и не заработали плохой репутации. Мы сдали проект и продолжаем сотрудничество с заказчиками, уже с новым опытом, с новыми ценами, но мы не выглядим ганд@#$%ми. Кстати, кроме опыта этот проект дал нам в портфолио буржуйского заказчика.
В общем это событие заставило вновь сделать переоценку того, чем я занимаюсь.
Конец части №2
Часть. 3. Трехголовый змей ищет друзей.
Вернусь к самому началу нашей работы. В команду объеденились 3 человека, на условиях равноправия. Т.е. решения принимаются согласованно со всеми. Речь идет о политических решениях, а не о программерских. Т.е. направление нашего развития, какие-то концептуальные вопросы. С одной стороны хорошо — демократия, никто не обижен. Но с другой стороны всё далеко не так хорошо и рано или поздно один будет за, другой против, а третий воздержится. В общем схема в которой нет высшей инстанции должна была привести в какой-то момент к конфликту, причем понимал я это с самого начала, но выбора у меня не было.
Думаю каждый из нас троих считал (и считает) себя равным, но немного равнее, чем другие. В общем конфликт случился, было принято какое-то важное решение без согласования со мной. Что именно за решение я уже не помню, наверное, на самом деле, оно было не столь важным :) Ну в общем я устроил сцену ревности с разборами полетов и т.д. В конце концов меня попустило, конфликт был улажен и всё вернулось в свое русло. Схема нашей работы не изменилась, команда не распалась, однако я до сих пор убежден в порочности такой схемы.
Примерно в то же время, когда произошел конфликт, я понимаю что есть новая проблема. Я иногда не знаю, кто сейчас трудится, а кто нет, и вообще чем заняты бойцы. Также у нас расширяется кол-во заказов и приходится приглашать на помощь товарищей. Эти два события заставляют задуматься над учетом рабочего времени. Кто сколько трудится и трудится ли вообще. Начинаются поиски софтины, позволяющей учитывать рабочее время, стоимость времени для сотрудников и стоимость этого же времени для заказчика. После перебора кучи вариантов я останавливаюсь на этом sandsurfer.sourceforge.net После доработки напильником программа может хорошо выполнять все необходимые функции.
Теперь немного про то, как мы приглашали к работе новых програмистов. Ситуация примерно следующая: иногда у нас начинают появляются заказы с которыми мы не успеваем справляться, однако еще нет базы, которая позволила бы нанять полноценно программиста на ежемесячную оплату. Что делать? Начинаем спрашивать толковых студентов на последних курсах, друзей, знакомых и т.д. на предмет сделать шабашку. Народ понемногу откликался. Мы давали небольшие работы и смотрели, кто что делает. В общем так через нас прошла кучка народу, большая часть которых отсеялась, но осталась пара человек с которыми начали постоянно работать.
Кстати о студентах. Есть потенциально очень толковые студенты, у них дофига энтузиазма, быстрые мозги и хорошая память, но нет опыта. Работа с ними без пристального присмотра приводит к очень забавным результатам в написании кода. Ну например засунуть блок оптимизации (по логике отдельная большая сущность) в класс базы данных. А потом вызывать функции оптимизатора почему-то из класса БЛ :) И получается как в том рассказе про рассеянного с улицы Бассеянной: «Побежал он в кассу покупать бутылку квасу». В общем пришлось долго доказывать что не надо смешивать принципиально разные вещи в одном классе.
Тут я вынес еще один урок: по началу молодых бойцов надо очень внимательно контролировать, и доверять самостоятельную работу только когда удостоверишься, что нет откровенных ляпов. Наиболее правильно самому выполнять проектирование, делать заглушки и просить эти заглушки наполнить кодом.
С появлением у нас новых бойцов приходит конец разгильдяйству с деньгами. Нужен, как минимум, нормальный учет. (До планирования еще далеко. Слишком мы зависим от Фортуны :) ) Благо рядом был нормальный бухгалтер и заходя раз в неделю-две делал все проводки. Т.е. я в течении недели накапливал чеки, листочки (мне друг подогнал 2 ящика перфокарт. удобные листики :) ) с записями о приходах, тратах и т.д., а бухгалтер нормально это оформлял.
В команде особой популярностью пользовались месячные отчеты о деятельности команды. Положительные отчеты. Отрицательные отчеты успехом не пользовались.
В это же время я рисую большую таблицу в экселе которая позволила бы понять сколько я должен брать с заказчика если у меня N отцов-основателей, M — наемных работников, P% простоев, S% налогов, всякая амортизация компов, стоимость офиса, и т.д. Грубо говоря получается, что если нас трое отцов, и у нас трое наемных рабочих, простой 30% времени, час стоит 7 уе, ЗП рабочих 600 уе отцы имеют ~980 уе… Но не всё так просто… Иногда простои бывали по круче чем 30% :)
Конец части №3