пятница, 28 октября 2011 г.

Про счастье пользователей

Дорогой блог!

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

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

До скорых встреч!

четверг, 13 октября 2011 г.

Про модульность в людях

Дорогой блог!

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

Дорогоуважаемые программисты! Помните, что модульность - это очень хорошо, особенно когда вы пишете сложные программы. А еще есть модульность в людях, и это тоже хорошо и можно так натренироваться, что самому стать модульным. Тогда вы сможете отключать мозг, и никто не сможет его съесть или еще что-нибудь.

До скорых встреч!

вторник, 11 октября 2011 г.

Про правильные решения вовремя

Дорогой блог!

Сегодня я хочу рассказать тебе о том, как мой начальник управляет мной и другими планктонами. Мы все разные планктоны: кто-то меньше, кто-то больше, а кто-то вообще находится в другом городе. А он, начальник, очень умный, потому что он нами всеми управляет. Я тебе сейчас расскажу, как он это делает.
Как ты помнишь, у нас полтора месяца назад был релиз. И еще до релиза другой планктон, он обычно тестирует, говорил, что нам надо дальше исправлять наши ошибки, а не делать что-то другое. И другие планктоны согласно кивали. Но начальник сказал нам, что надо делать новое, потому что он видит ситуацию лучше, умный и начальник, а еще этого хотят наши пользователи. А мы как хорошие планктоны стали делать новое. И запланировали новый релиз прямо к годовщине революции, чтобы отпраздновать.
А сейчас тестирующий планктон снова сказал, что надо исправлять ошибки, но уже никто не кивнул вместе с ним. А начальник тоже сказал, что надо исправлять ошибки, а новое больше делать не надо. И мы стали исправлять ошибки, а новое оставили и не доделали до конца.
Вот такие мы все молодцы, а особенно начальник, который так хорошо нами управляет. Я считаю, что наш начальник принял очень правильное решение. Он вообще молодец, потому что сделал это заранее - до нового релиза еще целых 3 недели, и мы успеем много сделать. Только мне немножко жалко новое - оно так сиротливо стоит недостроенным, а достраивать его нельзя.

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

До скорых встреч!

среда, 31 августа 2011 г.

Про наследование и композицию в людях

Дорогой блог!

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

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

До скорых встреч!

среда, 17 августа 2011 г.

Про релизы и последние минуты

Дорогой блог!

А сегодня расскажу тебе про релиз. Нет-нет, не уходи, я очень хочу рассказать.
У нас на работе вчера случился настоящий релиз! Это значит, что наш милый продуктик выпустился на рынок и теперь им пользуются настоящие пользователи. Мы очень этому радовались, несмотря на все 100 багов, про которые мы знаем в продукте. А еще тестировщик говорит, что продукт не протестирован, но это ерунда, правда ведь?
Вот, вчера у нас был релиз, и продукт ушел, но мы почему-то не собрали его инсталлятор и руководство и не выложили их в общий доступ. Вот такой у нас замечательный релиз! А сегодня утром мы все думали, что соберем настоящий инсталлятор и положим его на сайт и дадим всем его скачивать и платить нам деньги.
Но утром мой начальник сказал, что у нас есть большая проблема: одна маленькая утилитка иногда не работает, как она должна работать, потому что пользователи иногда пытаются через нее установить плохие пароли. Плохие пароли - это такие, которые короткие и легкие и вообще запрещены политиками безопасности. Вообще, эти политики безопасности - это очень страшные люди. Они по телевизору заседают в Думе и безопасят. Вот, мой начальник сказал, что надо проверять пароли политиками безопасности, и если уж они пропустят, то все совсем хорошо и прекрасно. И сказал, чтобы я это сделал, хотя я раньше никогда такого не делал, потому что боюсь политиков. А я сделал, и мы все собрали инсталлятор и решили на него немножко посмотреть.
Мы посмотрели и увидели, что ничего не работает, потому что никто толком не тестировал этих политиков и их проверки. И тогда другой планктон удалил политики и сделал все по-другому, а мы снова собрали инсталлятор и стали смотреть. Но теперь у нас перестал работать другой кусок. И тогда третий планктон исправил этот кусок, и сейчас мы снова собираем инсталлятор.

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

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

До скорых встреч!

четверг, 11 августа 2011 г.

Про новости

Дорогой блог!

Сегодня я хочу поговорить с тобой о новостях. Почему-то в последнее время у меня всегда происходит так: сначала приходит какая-то очень плохая новость, а потом приходят другие новости, они помельче, но получше. И эти новости получше о том, что можно сделать плохие последствия первой новости чуть меньше.
А еще мне тут сказали, что я не планктон, а гриб. И это тоже плохая новость. А еще это значит, что до меня еще не все новости доходят.

Дорогоуважаемые программисты! А как вы поступаете в таких ситуациях, когда у вас нет нужных вам новостей? И как вы думаете, хорошо ли это, когда кто-то один не пускает информацию дальше, а оставляет ее только себе? Я имею в виду, и постоянное непускание, и фильтрацию новостей. А еще как вы думаете, к чему это может привести?

До скорых встреч!

среда, 3 августа 2011 г.

Про желания и вакансии

Дорогой блог!

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

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

До скорых встреч!

UPD: Со мной согласны дяденьки ДеМарко и Листер и даже придумали про это шаблон "Свободное кресло". Правда, они говорят, что это когда "Никто не отвечает за концептуальную целостность опыта пользователя в целом", но все может быть и шире.

пятница, 22 июля 2011 г.

Очень ответственный пост

Дорогой блог!

Сегодня я хочу поговорить с тобой про страшные вещи. Я вот сегодня писал программу, которую мы все пишем на работе, и запустил тесты. Их очень много - целых 700 штук. И один из них мне сказал, что он не будет выполняться, потому что он OutOfMemoryException, а я испугался, потому что подумал, что кто-то из нас написал плохой код. Но на самом деле это просто тест ленился работать, а мы написали в нем не настолько плохой код.
А знаешь, почему я испугался, блог? Потому что мы часто пишем плохой код, хотя стараемся писать только хороший и правильный и читаем для этого умных дяденек вроде вот этого и вот этого. И я подумал, почему же мы пишем плохой код, хотя стараемся писать хороший? Я думаю, это из-за того, что мы очень торопимся, потому что наши заказчики очень просят нас успеть сделать за месяц столько, сколько мы обычно делаем за три месяца. Как ты думаешь, мы хорошие планктоны или не очень?
А потом я подумал, что мы наверное зря торопимся, потому что мы все равно успеем за месяц сделать только столько, сколько мы обычно делаем за два месяца, а больше не успеем. А еще я подумал, что было бы здорово сказать заказчику, что даже если мы успеем все сделать за месяц, то это будет очень плохо, и ему не понравится наша программа. Но нам нельзя такое говорить заказчику, потому что наши начальники нам запрещают. Я думаю, они так делают потому, что боятся, что заказчики на них обидятся. И я думаю, что когда ты планктон, то тебе нельзя поддаваться заказчику, потому что тогда ты напишешь плохую программу, и заказчик на тебя обидится. А когда ты начальник, то тебе совсем-совсем нельзя поддаваться заказчику, потому что на тебя обидятся все: твои планктоны, заказчик, его друзья и все-все, кому они расскажут.

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

До скорых встреч!

пятница, 15 июля 2011 г.

Про языки

Дорогой блог!

Сегодня я хочу рассказать тебе о языках. Вот я сейчас занимаюсь такой сложной штукой, которая называется импорт данных. Она такая сложная, что я даже сам до конца ее не понимаю. А еще вместе со мной этой штукой занимаются архитектор и еще один планктон, только поменьше. Вот, и мы еще хотим, чтобы этой штукой занимался еще один планктон, но он уже большой.
И когда мы все вместе думаем про импорт данных и проектируем его, мы рисуем такие специальные рисунки, которые называются DFD, Use Case и Component Map. А все вместе они называются UML. И я заметил, что мы начинаем говорить уже только на UML, а не на русском языке. И мне от этого немножко грустно. Как ты думаешь, бложик, почему нам так хорошо подходит UML и так плохо подходит русский язык? Я вот думаю, что это не из-за того, что мы плохие или плохо знаем русский язык, а из-за того, что задачка плохо подходит к русскому языку.

Дорогоуважаемые программисты! А какие вы еще знаете задачки, для которых плохо подходит русский язык, а хорошо подходит другой язык?

До скорых встреч!

среда, 13 июля 2011 г.

Исследования исследований

Дорогой блог!

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

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

До скорых встреч!