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


Интересна Java? Кликай по ссылке и изучай!
Если тебе полезно что-то из того, чем я делюсь в своем блоге - можешь поделиться своими деньгами со мной.
с пожеланием
столько времени читатели провели на блоге - 
сейчас онлайн - 
Показаны сообщения с ярлыком планирование. Показать все сообщения
Показаны сообщения с ярлыком планирование. Показать все сообщения

среда, 22 июня 2016 г.

Что надо для того, чтобы было?

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


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

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

Есть бесчисленное множество инструментов которые могут помочь. Но самый главный это пустой листик А4 и карандаш, 2 часа времени и желание разобраться. Где я. Что я. Куда я. Сядь и запиши. Куда хочешь прибыть? Что там будет? Как тебе это? Что ты делаешь? Что не делаешь? Прочувствуй картинку. Нарисуй ее в деталях. В голове и на бумаге. Где-то в процессе будут проявляться не совсем позитивные моменты - это таракашки шалят. Почему это меня цепляет? Что именно меня цепляет? Почему я это чувствую? Почему не разрешаю этому случиться? А когда все сказано - отложи на потом. Завтра вернись обратно и продолжи. 


Куда хочешь прибыть? 
Что там будет? 
Как тебе это? 
Что ты делаешь, а что нет? 
С кем ты там? 
Что они тебе говорят? 
Как помогают? 
Что утром, днем, вечером? 
Как это с тобой случилось? 
С кем познакомился? 
С кем расстался? 
Что читаешь? 
О чем говоришь? 
Как говоришь? 
Сколько? 
Куда?
Как?
Где?
Когда?

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


Когда я говорю об этом друзьям, многие сразу же вспоминают о "позитивной визуализации", "секрете" и с улыбочкой, мол "это я уже слышал"... Слышал? А делал ли? Знать != Делать. Попробуй сделать. Хоть раз. 

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

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


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

"Хочу быть богатым"
"Хочу дом"
"Хочу семью"
"Хочу хороший проект"
"Хочу чтобы все"
"Хочу быть здоровым и прожить долго"
"Хочу чтобы не болела голова"
"Хочу на море"

Где проектная документация? Где планы? Где описан процесс? Кто в команде? Хочу всего этого по твоему личному проекту. Иначе это просто фантазия и так она и останется на всю жизнь. Уж прости. Это так. 


А если сил после работы не остается, может ну ее такую работу? У тебя всегда есть проект который ты хочешь. И команда которая тебе помогает. Если компании это полезно так же как тебе - она платит деньги. Делая свой проект ты помогаешь не только себе но и другим, за это и получаешь попутный ветер в свои паруса. Где-то там есть твои потенциальные заказчики, им хочется то что делаешь ты. Они готовы вложиться. Может быть это отдельные люди, а может целые компании. Они как-то про твой проект должны узнать. Как ты этого достигнешь? 

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


Очень важно, чтобы ты сделал свой собственный проект, потому что его больше некому сделать. Только ты его видишь так. Только ты его сможешь выкристализировать из возможностей этого мира. Если бы мог кто-то другой, он был бы уже. А его нет. Только в твоей голове. Что это? 

Как-то так...

Пока писал, слушал "Hans Zimmer - Interstellar Piano Suite"


пятница, 30 декабря 2011 г.

Time mamagement: Планируй свой сон

Общались с другом на тему: "что надо сделать, чтобы появилось время на реализацию задумок, которые откладывал". Ответ был - выспаться. И тут сразу у меня возник вопрос, а когда у меня получается самый классный сон? Контент сразу полился из глубин сознания (спасибо фрирайтингу)...


...лучший сон, когда я ложусь в 22:00 и просыпаюсь сам с чувством "все, выспался!" - супер. Я не должен кушать перед сном, лучше если я лягу спать слегка голодным. Можно выпить стакан сока или съесть яблочко. Еще лучше, если будет вечерняя прогулочка, еще лучше на велосипеде а потом душ - это сразу перед сном. Никаких раздражителей не должно мешать в комнате, а форточка должна быть открытая всю ночь (свежий воздух). Я должен знать, что на сегодня я все таски сделал на работе, а завтра у меня расслабленный день, в который я могу работать, или не работать (скорее всего чуть-чуть работать). У меня нет никаких планов на завтра с семьей - типа куда-то пойти, что-то сделать - требующих физического перемещения моего тела в пространстве-времени (особенно, если это "надо" а не "хочется"). Я знаю, что могу до обеда валяться в кровати (но я высплюсь, скорее, к 6 часам утра и с этого времени буду на ногах). Никто не позвонит в первой половине дня. Никто не позвонит в двери (доставка воды, доставка книг или чего-то там еще). Я в этом уверен тогда, когда ложусь спать вечером. Утром дома скорее всего будет спокойно (не шумно), потому как все будут отсыпаться :) Еще хорошо, если днем ранее я сдам какой-то проект. Вот тогда я высыпаюсь лучше всего и день после такого сна наиболее творческий и насыщенный...

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

Какой твой идеальный сон?

четверг, 7 апреля 2011 г.

Подборка #49

Вот какими должны быть презентации


...Это ценно, а потому повторюсь.
http://www.ivanpirog.com/posts/spontannoe-planirovanie-dlya-tex-kto-nenavidit-tajm-menedzhment/

А вот это было для меня новостью
http://www.ivanpirog.com/posts/formula-uspexa-spontannoe-planirovanie-i-zhizn-v-potoke/
Я сделал все, что там описано и получил облегчение. Буду пробовать месяц эту методику и посмотрим на результаты. Я кажется понял, почему когда заканчивая играться с текущей задачей (когда мне становится нудно или задача завершена) я сразу же лезу в почту или скайп - таким образом я пытаюсь выбрать себе следующую задачу (а там всегда что-то есть). Пару месяцев назад я выписывал каждое утро таски на день и обращался к этому списку, но оказалось что это не то, и, когда я замял со списком, мне ничего не осталось как лезть в почту - ибо там весь пленнинг и все таски. Но, выписав мои Пути и области деятельности на листик А4, я понял, что многие из них не привязаны к почте и компьютеру вообще.

А еще почитайте отзывы к статье.

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

Кстати эта заметка была записана, когда я уже собирался выходить из офиса и даже одел куртку с шапкой. Так вот одетый и писал заметку. Хотя минуту назад я о ней даже не думал! Знакомо?...

...Хочу летать!


...Статья "Несколько советов для организации успешного вебинара" будет полезна тем, кто хоть раз проводил вебинар...

...Хороший сайт http://www.kodejava.org/
Kodejava website provides beginners to Java programming some examples to use the Java API (Application Programming Interface) to develop applications. Learning from some examples will hopefully decrease the time required to learn Java...

...Как инджектить в private final static field
private static void inject(Class<ServiceLocator> clazz, String fieldName, Object data) throws Exception {
        setFinalStatic(clazz.getDeclaredField(fieldName), data);
    }

    private static void setFinalStatic(Field field, Object newValue) throws Exception {
        field.setAccessible(true);

        Field modifiersField = Field.class.getDeclaredField("modifiers");
        modifiersField.setAccessible(true);
        int oldModifiers = field.getModifiers();
        modifiersField.setInt(field, oldModifiers & ~Modifier.FINAL);

        field.set(null, newValue);
  
        modifiersField.setAccessible(true);
        modifiersField.setInt(field, oldModifiers);
  
        field.setAccessible(false);
    }

...Представьте пианиста, который играет на пианино с помощью мышки. А теперь пианиста играющего всеми 10 пальцами. Какой из них красивее сыграет? Горячие клавиши вот что по настоящему ускоряет - мышка только в фотошопе оправдана...

...К тебе обратились за помощью? Сам решить не можешь? Найди того кто может, а детали реализации сокрой от клиента. Инкапсуляция, блин. А то бывает и так http://www.newsland.ru/news/detail/id/613590/cat/37/ - моя хата скраю....

пятница, 14 января 2011 г.

Включаем мозг: Mind Map как способ сохранить информацию обо всем

Блин, только что подумал - слово "обо" такое странное хоть и часто используемое. Ладно не об этом :)

Итак информация. Представь, что у тебя есть 1 word документ, в который нужно сохранить абсолютно все, с чем ты сейчас имеешь дело: все проекты, все этапы, всю информацию по проектам, все нюансы, детали, инфо о людях, о еде, о воде, о любимых телеканалах так далее. Сложный и неудобный документ получится. А прямо сейчас это все хранится в черепной коробке между ушами, одновременно. Получить доступ можно ко всей информации, но не всегда это просто сделать сознанию, потому как оно обладает весьма небольшой ОЗУ - всего 7+/-2 объекта/цвета/ощущения/формы/слова/цифры и так далее. Попробуй для доказательства загадку Эйнштейна. Итак в голове, без предварительной подготовки не получится оперировать в голове большим количеством объектов. Но как тогда работать с всем тем разнообразием информации в голове, быстро и удобно перемещаясь от любимых каналов к состоянию здоровья и куда-то в сторону идей продвижения нового стартапа. Информация должна быть структурирована где-то так


Очень похожий алгоритм папок в Windows, но с той лишь разницей, что увидеть всю картин происходящего на винчестере не так уж и просто. Видишь пару папок, с которыми работаешь. Этого в 99% случаев достаточно, но иногда полезно взглянуть на всю цепочку связей одновременно.

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

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



А вот одна ветка вглубь.


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

среда, 12 января 2011 г.

Подборка #40

Вот так хочу полетать




Хочу в Норвегию...

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

...Я полюбил http://dropbox.com за то, что он бесплатно позволяет мне размещать свои файлы и мило предоставляет к ним прямой доступ через http протокол. Раньше я недолюбливал dropbox, а теперь полюбил :) Читать дальше...

пятница, 23 июля 2010 г.

Менторство. Первый опыт. Отрывки из скайпа.

Подходит к концу третья неделя издевательства, тьху менторства над Трейни. Уже три недели помимо основной работы я пробую коучить будущего программиста GlobalLogic. Получается, как получается. Но опыт потрясающий. Короче, мне сейчас не спится и я решил почитать, чего ему наговорил за это все время. Итак перлы и просто цитаты - они для меня ценны как память, а тебе могут показаться пустыми - не удивительно, для тебя это всего лишь слова. Хотя есть как минимум еще один человек, с кем я делю этот опыт пополам - Трейни. Рад, что мне попался именно такой напарник. Читать дальше...

среда, 23 декабря 2009 г.

Впервые за три года свободен

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

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

Ну ладно, освободили, так освободили. Теперь стоит решать другого рода задачи - где найти денег, причем так, чтобы не тусить в офисе с 9 до 18. Неа, не так. Что мне сделать такого, чтобы я мог обеспечить запросы семьи, при этом был свободен для семьи и для своих многочисленных хобби? О! Так лучше.... В всплыло первое слово - фриланс. А опыта нифига не имею... А вот кто имеет...

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

Удачи мне!

среда, 16 декабря 2009 г.

Еще два дня в паре: 1) мы успеваем 2) мне тоже есть чему учиться 3) как показать эффективность?

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

Сегодня на кухне, во время очередного перерыва, мы провели неформальную мини ретроспективу, где я спросил "ну как?". Плюсы очевидны - меня интересовали больше минусы. А они такие: усталость + головная и глазная боль. Что-то мы делаем не так, но уже пошли намеки на зрительную гимнастику со стороны напарницы. Я же стараюсь делать зарядку при малейшей возможности.

Так же мы выявили, что после обеда, где-то с 15 до 16 (обед у нас заканчивается в 14:30, а скрам дейли проходит в 14:45) продуктивность минимальна за весь день, а ближе к 18:00 она обратно увеличивается. Возможно мозк в это время занимается перевариванием пищи, кто знает? Решили, что в это время будем давать передышку друг другу и расходится по углам комнаты (наши рабочие места находятся в двух диагонально противоположных углах комнаты).

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

Мы успеваем! Это наверное самый классный показатель. Кроме тог омы сегодня еще ускорили разработку в будущем. Что раньше приходилось тестировать, делая деплой на удаленный сервак раз в день, теперь мы можем тестировать на локали - мы исключили узкое место привязанное к тому серваку, в случае, если в базе в таблицы свойств находится запись debug.testing.mode = "on". Естественно все сделано секьюрно, дабы никто посторонний не мог воспользоваться этим для своих целей. Оба довольны, потому как кадый из нас по отдельности хотел это реализовать давно, а решились лишь вдвоем и сделали это за час.

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

Близится конец деливери, а мы уже почти все сделали. В пятницу сутрау нас будет демо с продакт овнером по так называемм "аксепттанс историям", которые были записаны на пленнинге КьюА. Истории были такими "логинимся, видим обычный список. Создаем то-то и в результате в таком-то месте надпись меняется на. Потом жмем ту кнопку, и переодим туда-то. При всем при этом по такому линку видно то-то, но если мы нажмем туда-то то больше этого видеть не будем...." Написано так, что моя покойная бабушка могла бы разобраться. Это мы и проделаем в пятницу утром каждый по своей фиче отдельно. Чисто формально моя напарница отвечает за эту фичу. Но реально отвечаем мы оба. Я сознательно на пленнинге отмалчивался, когда продакт овнер спрашивал "кто отвечает за фичу", потому как понимал, что при нашей стратегии парного программирования отвечать будем мы оба. Кроме того за провтык фичи у нас пока не предусмотрена никакое наказание... Но это пока... Да и что говорить, если мы успеваем в срок.

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

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

понедельник, 14 декабря 2009 г.

Еще один день в паре: 1) Немного отстаем 2) Устали и 3) Необходима дисциплина

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

Для начала напомню, что при планировании я учел так называемый мной "коэффициент преувеличения". Задачи, после декомпозиции, оценивались в Саньках, и, чтобы перевести их в часы, Саньки были домножены на этот коэффициент. По последним статистическим данным 1 СанЁк равен 1.3 часа. Т.е. в среднем я оптимист, и если запланировал 10 часов на выполнение задачи, то обязательно потрачу минимум 13. Так же мы с напарницей прибавили еще 15% к общему времени на издержки парного программирования - потому, что так написано во многих источниках.

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

И, ведь, сегодня договорились - каждый час делаем перерыв на 10 минут и меняемся местами независимо от того, какая задача. Но во второй половине дня то ли забыли это правило, то ли моя нетерплячка начала брать верх - начался хаос. На мое "уже перерыв" напарница сидя за клавиатурой сказала "если хочешь - иди, а я тут закончу". Мне так же показалось, что вот вот конец - и я остался рядом с напарницей. Но конец не наступал - еще минут через 15 предложил поменяться, ибо начал скучать. Не вставал уже до конца рабочего дня - около 2х часов сидел за баранкой без перерыва.

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

Сегодня я меньше вклинивался в работу напарницы. Сидя рядом, когда возникала пауза в ее работе я задавал вопрос "что случилось?". Если же я не понимал что делаю, просил объяснить, что происходит. Часто у самого в работе за штурвалом возникает мысль "О! Блин! А что если так?" и начинаешь ее реализовывать как можно быстрее, забыв про напарника. Это не гуд. Оба должны понимать, что происходит - возможно уставать станем меньше.

Во время долгожданного коммита 2.5 дневной работы, мы проглянули все изменения и прикинули, сколько бы мы потратили на задачу 1) работай мы параллельно 2) работай каждый из нас по отдельности над задачей 3) ну и в паре, и каким был бы качественным результат. Все +/- сходится с теорией!

1) Параллельно мы бы сделали этот же объем работ быстрее, но не намного (где-то на 15-20%). Что касается качества, а подобный опыт уже был у нас раньше, скажу так. Раз в день/два либо я, либо напарница находили бы баги и сообщали друг другу, в связи с чем приходилось бы переписывать начатое или каким-то другим образом выкручиваться. Скорее всего количество багов и моментов недопонимания требований заказчика было бы больше, а выплывали бы они не сразу, а дай Бог, если к концу деливери. Деливери в конце призналась бы незаконченной и в следующей мы бы заканчивали то, что не успели сделать в этой. Сомневаюсь, что код был бы покрыт юнит-тестами так, как он покрыт сейчас - думаю тестов было бы на половину меньше. Архитектура! Т.к. в нашей команде за этот вопрос больше всех отвечаю я, то возможно в следующем деливери пришлось бы иметь дело с приведением кода к общей задумке. Это, хоть и не существенные изменения - но все же, есть большой шанс, что без рефакторинга не обошлось бы. Много времени уходило бы на общение и, в любом случае, в конце деливери мы объединили бы свои усилия чтобы хоть как-то спасти ситуацию. В общем - подобным оптом уже сыт по горло. Посмотрим, что происходит в других случаях.

2) Разработка в одиночку занимала бы однозначно в два раза больше времени. Если параллельная разработка какая никакая - командная, со всеми вытекающими плюсами, то тут о багах и неточностях скорее всего узнали бы не раньше начала-середины следующей деливери. Подобный опыт тоже был. Кроме того приходилось бы отвлекаться на консультации команде по задачам, которые вообще тебя касаются слабо. А, если недостаточно дисциплинирован, и на раскачку надо время, то на выполнение этой задачи в одиночку уходило бы до 3х времени.

3) Мы сделали это за два с половиной дня. Мы нашли приятную фичу в ИДЕ. Мы продумали совместно множество вариантов. Мы знаем о чем речь, и каждый из нас может полноценно заменить другого в случае чего. Архитектура мало того, что поддерживается - она улучшается. О ней знают двое а не один я. Код тестами покрыт хорошо. Но есть и минусы. УСТАЛОСТЬ и к концу дня хрипота - говорить приходится много - рты у нас не закрываются целый день. А если почему-то слетает процесс парного программирования, то это ведет к хаосу, из которого сложно потом вырулить - ты просто не замечаешь как погружаешься в него. Дисциплина и отдых! Думаю это поможет.

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

четверг, 23 апреля 2009 г.

С чего начать

Этот вопрос я задал команде. Ребята высказали свое мнение: "нам нужен рефакторинг". Ну ок. Думаю эффективно будет заниматься тем, что сейчас востребовано. Значит Рефакторинг!

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

Ну где-то так :) А там посмотрим...

--------------------------------------------------------

Митинг прошел!

По результатам мы будем собираться раз в два дня по два часа. Почему так? Потому что:

- Надо с чего-то начать. И при всем у нас есть ретроспективы, на которых в конце предстоящей итерации мы сможем подкорректировать график встреч.

- У меня есть свой родной проект, в котором я числюсь официально.

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

- Максимум два часа потому, что дольше усваивать новую информацию сложно. Доверимся нашим образовательным институтам, две пары по 40 минут + перерыв :)

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

Устранять стресс будем с помощью тестов. Хоть мы и начинаем с Рефакторинга, тесты мы просто обязаны зацепить, потому как рефакторить без тестов - все равно что ходить с граблями по минному полю...

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

Меня пригласили на планирование предстоящей итерации, дабы я услышал про приоритеты и поучаствовал при составлении плана.

Сейчас я жду проект на мыло - хочу привыкнуть к новому синтаксису языка Objective C.

Со следующей недели начнем.

четверг, 9 октября 2008 г.

Глава "Метафора,...". Совершенный код. С. Макконнелл.

"Терминология компьютерных наук - одна из самых красочных" Стив Макконнелл

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

"Не стоит недооценивать важность метафор. Метафоры имеют одно неоспоримое достоинство: описываемое ими поведение предсказуемо и понятно всем людям. Это сокращает объем ненужной коммуникации, способствует движению взаимопонимании ускоряет обучение. По сути метафора - это способ осмысления и абстрагирования концепций, позволяющий думать в более высокой плоскости и избегать низкоуровневых ошибок" Фернандо Дж. Корбати

"Сегодня почти невозможно найти человека, считающего, что Солнце вращается вокруг земли. Столь же трудно представить программиста, который бы думал, что все данные можно рассматривать как последовательный поток карт. После опровержения старых теорий трудно понять, как кто-то когда-то мог в них верить" Стив Макконнелл

"От того, насколько хорошо вы понимаете метафоры, зависит и ваше понимание разработки ПО" Стив Макконнелл

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

"Вот алгоритм, позволяющий добраться до чьего-то дома: проезжайте по шоссе 167 на Юг до города Пюиолап. Сверните на аллею Сауз-Хилл, а дальше 4,5 мили вверх по холму. Поверните у продуктового магазина направо, а на следующем перекресте - налево. Доехав до дома 714, расположенного на левой стороне улицы, остановитесь и входите из автомобиля.
А эвристическое правило может быть таким: найдите наше последнее письмо. Езжайте в город, указанный на конверте. Оказавшись в этом городе, спросите кого-нибудь, где находится наш дом. Все нас знают - кто-нибудь с радостью вам поможет. Если никого не встретите, позвоните нам из телефона-автомата, и мы за вами приедем" Стив Макконнелл

"Со временем тот, кто использует метафоры, лучше поймет программирование и будет быстрее создавать более эффективный код, чем тот, кто их не использует" Стив Макконнелл

"Планируйте выбросить первый экземпляр программы: вам в любом случае прийдется это сделать" Фред Брукс
"Если вы планируете выбросить первый экземпляр программы, вы выбросите и второй" Крейг Зеруни

"... не лучший совет в мире разработки ПО, где крупная система по стоимости уже сравнилась с 10-этажным офисным зданием или океанским лайнером." Стив Макконнелл

"Инкрементное проектирование, конструирование и тестирование - одни из самых лучших концепций разработки ПО" Стив Макконнелл

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

"Для построения метровой башни требуется твердая рука, ровная поверхность и 10 пивных банок, для башни же в 100 раз более высокой недостаточно иметь в 100 раз больше пивных банок. такой проект требует совершенно иного планирования и конструирования." Стив Макконнелл

"За ошибку, допущенную при создании простого объекта, приходится расплачиваться лишь потраченным временем и, возможно некоторым разочарованием" Стив Макконнелл

"Перемещение стены на 15 см обойдется дорого не потому, что при этом будет потрачено много гвоздей, а потому, что вам прийдется оплатить дополнительное время работы строителей. ... Материалы, необходимые для создания программного продукта, стоят дешевле, чем стройматериалы, однако затраты на рабочую силу в обоих случаях примерно одинаковы. Изменения формата отчета обходится ничуть не дешевле, чем перемещение стены дома, потому что главным компонентом затрат в обоих случаях является время людей" Стив Макконнелл

"Какие еще параллели можно провести между сооружением дома и разработкой ПО? При возведении дома никто не пытается конструировать вещи, которые можно купить. Здравомыслящему человеку и в голову не прийдет самостоятельно разрабатывать и создавать стиральную машину, холодильник, шкафы, окна и двери, если все это можно приобрести" Стив Макконнелл

"Все крупные здания создаются с большим запасом прочности; лучше заплатить на 10% больше за более прочный материал, чем рисковать крушением небоскрёба" Стив Макконнелл

""Перемещение несущей стены на 15 см обходится гораздо дороже, чем перемещение перегородки между комнатами" Стив Макконнелл

"По экономическому масштабу некоторые программные проекты сравнимы с возведением "Эмпайр Стейт Билдинг", и контролироваться они должны соответствующим образом" Стив Макконнелл

"Люди, эффективно разрабатывающие высококачественное ПО, многие годы посвятили сбору методов, хитростей и магических заклинаний. Эти метода - не правила, а аналитические инструменты. Хороший рабочий знает предназначение каждого инструмента и умеет эффективно его использовать. Программисты не исключение" Стив Макконнелл

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

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

"Метафоры не исключают друг друга. Используйте комбинацию метафор, наиболее эффективную в вашем случае" Стив Макконнелл

"Только благодаря метафорам я понял многое из того что мне было сложно понять. Объяснять кому-то что-то используя метафоры - одно удовольствие. А вот каждый раз искать другую метафору - очень интересная развивающая игра. Метафора, это сила" Собственного сочинения :)