О заваленных проектах

Июнь 13th, 2008

Я уже писал статью о крупных лажах, которые я сделал.

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

Технарьские проблемы:

— Очень неправильный изначальный estimate (чаще всего неправильная оценка сложности нескольких крупных задач)

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

— Отсутствие технического лидера (или другого опытного человека) на проекте.

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

Решение, просто — добавить технического лидера на проект.

— Развития конечного продукта на базе прототипа.

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

Правильное решение, либо привести прототип к нормальной архитектуры, либо не пытаться сэкономить время на стартование с прототипа.

Бизнес проблемы:

— Установка нереалистично коротких сроков.

Тут все просто. Технари говорят, нам нужно 12 месяцев. Бизнес отделение отвечает — есть только шесть.

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

— Установка завышенных требований к первой версии

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

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

Даже при портировании нужно разбивать на несколько версий.

— Слишком большое количество разнообразной требуемой функциональности.

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

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

— Малое внимание к проекту

Как написал в  комментариях eko, зачастую либо заказчик, либо product manager забывает, что если вложить денег и назначить программистов, это еще не значит, что проект будет успешный.

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

А смысл?

Июнь 11th, 2008

Когда-то, лет эдак 6 назад, кто-то (уж не A.Stelmakh) в компании, на которую я тогда работал нашел мою задумчиво пьяную фотки, и в фотошопе добавил фразу «А смысл?» вверху.

И хотя, это тема лежит фактически за границей темы блога, но я себя позволяю раз в некоторое время слегка отклоняться.

А действительно, в чем собственно смысл работы, бизнеса, карьеры? Ладно, черт с ним с смыслом. Почему например, я должен быть добрый, а не злой. Почему я должен не делать подлости кому-то в бизнесе? Или зачем мне вкалывать и стремиться к чему, если можно легко на все забить? Или почему, я чувствую себя ответственным, за то, что я делаю?

Естественно, не я первый (а еще порядка 500 прошлых поколений) задавались похожими вопросами. Но, как-то сейчас все стало насколько смешано и странно.

Все стандартные ответы, стали какими-то призрачными и размытыми.

Религия

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

Вера в людей/сообщество.

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

Кофортность жизни

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

Интерес

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

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

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

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

Гадание на кофейной гуще.

Июнь 10th, 2008

Одно из моих самых точных долгосрочных предсказаний по поводу рынка я сделал где-то 3.5 года назад. Тогда я сказал, что где-то к нынешнему моменту на пост советские просторы прийдут иностранные фирмы и  взвинтят зарплаты переманиванием кадров. И появяться гораздо больше freelancer’ов, которые тоже подогреют требования к доходам. И эти две силы будут выдавливать все средние IT фирмы. Большие фирмы потенциально смогут выжить из-за больших размеров, и супер маленькие из-за своей подвижности. Но, все средние фирмы понемногу «сдуются» из-за кадровых проблем, так как доходы в основном будут расти медленно, а расходы на работников улетят в небо.

Хотя предсказание, не так чтоюы очень сложно заумное было, но тем не менее достаточно точно сбылось. Конечно,  не везде такое произошло, но тренд таки двинулся очень активно именно в эту сторону.

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

Итак, разобьем все на два направления

— Серьезного экономического кризиса не будет.

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

Вот тут начнется самое интересное.

Появятся независимые консультанты работающие по контрактам на фирмы внутри страны (собственно уже начали появляться люди, которых берут под проект). Это разовьется еще сильнее.

Во вторых, мелкие фирмы станут пытаться стартовать как продуктовые, а не как чисто offshor’ные. Тем не менее до появления инвесторов, шансов, что они вырастат будет откровенно мало. Причем количество фирм которые выпускают мелкие утилиты, игры и т.п. станет меньше (так как это перестанет быть финансово выгодно).

Кстати, вероятнее всего следующей волной (но это ближе к окончанию тех самых 4 лет предсказаний), в всех более менее крупные города придут серьезные корпорации (а-ля Microsoft, IBM, Google и т.п.) и выпрут основное количество средне-мелких американских фирм, которые выпирают местные фирмы сейчас.

Хорошо по этому поводу будет работникам, менеджерам, наемным директорам. Явно фигово будет от этого предпринимателям. Кисло также будет компаниям, которые пользовались  раньше любыми IT услугами , так как цены на это взвинтятся просто нереально.

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

Теперь к второй половине:

— Серьезный экономического кризиса будет

Сразу оговорюсь, мы говорим не о тотальном полном кризисе, а просто о очередной крупной рецессии.

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

Дальше повторяется предыдущее предсказание, только с задержкой на 2-3 года, которые уйдут на восстановление от кризиса.

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

Вот такое вот гадание на кофейной гуще.

Я предполагаю (и даже слегка надеюсь), что будут много несогласных. Готов обсудить/поспорить по каждому пункту. Ну и интересно, если вы хотите что-то добавить, послушать ваши предсказания.

Блин, ну чего же я такой тупой?

Июнь 9th, 2008

Вчера, играл с друзьями в пинг-понг (как именуют его тут, в стране заходящего солнца). И вот слово за слово, завязался разговор о текущих багах и потихоньку все погрузилось в глючность реализации JNI (java native interfaces) для какого-то Linux и ошибки в C++ коде, которые вызывается через C прослойку через JNI и т.п.

Где-то после минут десяти у меня начал активно проявляться комплекс неполноценности. Хотя это абсолютно не моя техническая область, но тем не менее, она была и не слишком ихняя. При этом люди меня повергли в ужас, количество разнообразной технической информации о java, c++, по ходу был зацеплен unicode (и его виды utf-8 и utf-16), а так реализация виртуальных машин, их оптимизация, задеты темы языков ruby on rails и чего-то еще.

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

Одна правда мысль в голову таки пришла. Достаточно много времени я потратил на развитие своих бизнес знаний и умений. И хотя они не так хорошо формализованы, тем не менее они присутствуют где-то в голове.

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

— знание платформы — 30%

— умение создавать нормальную архитектуру — 20%

— умение решать проблемы 20%

— понимание логики программы — 20%

— знания языка программирования — 10%

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

Я как-то фактически не побывал снаружи от мобильных разработок. Как оно вообще во вне?  Такие же приоритеты или что-то по другому?