Злобный план по покорению галактики.

Май 13th, 2008

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

Итак, вот он план…

Я очень давно задумывался о создании идеального самоучебника по программированию с нуля.

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

Идем дальше. Насчет «Самоучителя» . Идея в том, чтобы можно было научиться без того, чтобы дергать кого-то постоянно за рукав и спрашивать: «Дядечка, а что значит эта фраза и как сделать то и другое?».

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

Что меня убивает во всех учебниках это фразы «а-ля»:

«Выражение присваивания — этот нетерминальный символ используется в Справочном руководстве по C++ для обозначения элементов списка выражений. Не следует особо смущаться по поводу этого нового обозначения. Это всего лишь частный случай выражения.»

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

Собственно говоря, основная идея в постоянном feedback’е. Самоучитель предполагается быть onlin’овым и ключевой возможностью будет пометка абзацев/глав и т.п. Их можно будет помечать в стиле «Не фига не понял», «Скучно/нудно и уже сто раз было до этого написано» и т.п.

И само собой, плохие абзацы постепенно будут заменяться, поясняться и улучшаться.

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

Начну с другого конца. Я уже один раз писал книгу. Во первых это заняло гораздо больше времени, чем я ожидал, во вторых я ее не успел довести до ума из-за улета в США. Но, что я вынес, что писать книгу от корки до корки самому – достаточно длительный и сложный труд.

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

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

Итого, ниже опросник по поводу книги. Если в нем не освещено, что-то что вы хотели бы обсудить, напишите пожалуйста в комментарии.

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

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

Подкинули интересную ссылочку. http://www.djangobook.com/en/1.0/chapter01/. Где-то так я это и вижу.

P.S. Я создал две начальные страницы проекта. Одна содержит описание идеи проекта, вторая содержит ответы на часто задаваемые вопросы.

Моя любимая чашка.

Май 13th, 2008

Знаете, меня убивают вот такие фразы: «Это моя любимая чашка, поэтому я ее никогда не использую ее и храню за стеклом. Поэтому она никогда не поцарапается и не разобьется».

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

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

Это я пишу к тому, что меня убивает, когда люди оставляют куски ОЧЕНЬ важного и возможно полезного кода, которые мы используем в каком-то неопределенном будущем. Люди… очнитесь, либо код важен и полезен, потому, что он пользуется прямо сегодня, либо этот код представляет из себя ту самую чашку, на нее всегда молятся и никогда не пользуют.

Особенно это актуально, учитывая, то что есть системы контроля версий и можно достать всегда удаленный код из закрамов.

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

P.S. Кстати, я имел в виду старый код, который вроде уже и не нужен, но так как он когда-то делал что-то очень полезное, его не удаляют, в надежде, что он пригодиться.

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

И еще раз о амнезии (часть вторая). Буква закона vs. Дух закона.

Май 11th, 2008

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

В этой статье не буду писать никаких решений, а только буду бить по больным местам… э… пожалуй, только по больным местам этой темы.

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

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

б) Запись знаний, чаще всего низкий приоритет в системе ценностей человека. И поэтому, когда встает выбор – разгребать текущие проблемы или создавать «нетленку» 🙂, то чаще всего начинают разгребать именно текущее дела.

Дальше, перейдем к менеджеру того человека, который генерирует знания. Опять же у него возникает проблема очень похожая на б):

в) Нужно ли заставлять подчиненного писать свои знания или делать остальную часть работы. Опять же возникает конфликт приоритетов.

Потребитель знаний:

г) Почему собственно нужно читать чьи-то ошибки, сделанные непонятно когда и кем и пытаться понять какие-то решения, принятые людьми, которые уже не работают в фирме?

д) Как справляться с тем потоком информации, которые могут быть сгенерированными многими людьми. Как отбирать только нужное и важное и не тратить время на все остальное?

Ну, и с точки зрения компания, проблемы следующие

е) Что делать с людьми, которые не хотят сохранять знания, особенно если они ими обладают. Должно ли стать это требованиям к работе. Что делать с теми, кто не хочет изучать знания?

ж) Какова приоритетность записи и изучения знаний? Это нужно для того, чтобы менеджеры могли выставлять приоритеты рабочим

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

Д) Самое главное, как сделать весь этот проект прибыльным?

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

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

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

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

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

И вот те самые юноши (или девушки), которые были наняты контролировать, оказываются во главе процессов которые они не понимают, не знают и не пробовали. И получается, то самое, что я писал в названии статьи – они начинают пользоваться буквой закона, вместо духа закона.

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

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

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

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

Очень хочется услышать ваше мнение о том, если я забыл указать какие-то проблемы и то, как вы считаете нужно решать самые серьезные их этих проблем.

Пожар, чистые зубы и приоритеты

Май 6th, 2008

Написал вчера пост о том, что мелкими действиями плохой проект не спасти и натолкнулся на удивительный отпор 🙂

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

А в этом посте, хочу привести один пример.

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

Внимание вопрос. Стоило ему пытаться спасаться? Я думаю — ответ «да». Полезно ли чистить зубы? Ответ тоже «да». Какого же фига нужно спасаться от пожара, а не чистить зубы?

То, что я хотел сказать (и в прошлом посту и в этому), что в мире есть миллион полезных вещей. В программирование этих полезных вещей не меньше.

Сделать ВСЕ полезные вещи нереально. Следовательно нужно расставлять их по приоритетам. Зачастую приоритеты зависят от сложившейся ситуации.

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

Из моего лично опыта, если человек делает даже приоритет N2, вместо приоритета N1 — это уже обычно на длительном отрезке времени ведет к проблемам. Если человек делает приоритет N10 , вместо приоритета N1 — то это полный пипец (даже на коротком участке времени)

Резонный ответ из зала. Но, все равно, лучше делать N10, чем N20 или чем вообще ничего не делать.
Моя саркастическая фраза: Да, конечно, в момент пожара лучше чистить зубы (N10), чем читать газету(N20). Это гораздо эстетичнее и красивее.

Опять ответ из зала: Так, что же вообще ничего не делать? Я скажу так, что если кто-то не решаете приоритет N1 или N2, то толк от человека фактически равен ничего не деланию. А если этим еще и расходуются деньги фирмы на деланье приоритета N10, то лучше вообще чтобы такой человек ничего не делал (был уволен).