пятница, 19 октября 2012 г.

Игрались в Snake Dojo

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

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

А ще мы договорились, что доджо на следующей неделе пройдет только, если будет готово то, о чем мы договаривались в прошлый раз - рабочий покемон. Утром Demo вечером Dojo.

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


2 часа работы в паре. Вот они - эмоции!  


А вот и другая пара - тут игра более спокойная.


С нами играли даже наши преподаватели!


А я фиксил баги :)

Спасибо ребята за участие!

воскресенье, 30 сентября 2012 г.

Новая итерация

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



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

А ведь это реальная задача из реального коммерческого проекта - есть какой-то проект (скорее модуль) которй ты видишь впервые. Его писал неизвестно кто, которого уже давно нет на прокте (или есть но он уже не помнит, что там и как). Документации нет. Тесты хоть и есть, но доверять им пока страшно. С чего начать непонятно. Есть только команда.

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


Так же разбились на пары. Получилось очень даже складно - 4 пары (новенький + бывалый).

Я заметил, что ребята, которые уже "бывалые" более смелые, чем новенькие, больше проявляют лидерские задатки, хотя пару месяцев назад были "новенькими" и боялись слова сказать. Это очень радует, ведь следующий этап - собеседование, а потом хардкор тренинг на котором либо пан либо пропал. За софтскилзами ребят  будут смотреть очень пристально, так что наша задача научиться не только Java но и прокачаться в soft skills как можно сильнее. Потому ребятам сразу была поствлена задача - через неделю привести код к компилируемому виду и каждой паре знать про назначение каждого класса системы, уметь поднимать его и провести демо. И делать они это будут самостоятельно - нет мы будем конечно же рядом, чтобы не дай Бог никто не утонул.

И пусть у Ребят все получится. Успехов!

воскресенье, 15 июля 2012 г.

Второе демо

Второе демо прошло успешно. На этот раз органов у покемона стало больше и приложение превратилось из консольного в полноценное web. Даже базу данных прикрутили!

Еще, на собрании мы рассмотрели несколько тем, касающихся планирования - http://planningpoker.com/




 и несколько burndown chart, которые мы разбирали как пример


Второй особенно наглядный :)

Кушали пиццы, говорили про будущее программиста.

Кстати, очень хорошее видео рекомендю посмотреть, буквально каждому айтишнику (взято с сайта jeeconf).




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

суббота, 23 июня 2012 г.

Первое демо

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



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

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

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

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

Мы решили, что заведем бэклог и на следующий раз попробуем пленнинг поккер. А посему книжечка "Скрам: заметки с передовой" must read за время этой итерации.

среда, 20 июня 2012 г.

Отзывы наших выпускников

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

Одним из самых запоминающихся событий тренинга был сбор на coding dojo. В ходе которого, мы поделились на команды из 2 человек и соревновались между собой. Дух соперничества очень ускоряет мысли в голове, все идеи как-то структуризируются и ты примерно знаешь как делать задание. И надо его быстро делать :) Вначале мы даже вышли вперед по очкам, но в итоге нас ребята обогнали. Зато остались не последние:) Было интересно и полезно. Спасибо GlobalLogic за это.
Тимур 

Итак, отзыв. В общем и целом курсы очень хороши, причины следующие:

1) Если треннинг по Java, то он действительно по этому языку. Я участвовал в Java-тренинге, где прожили на С, С++ и Пайтоне, при чем не используя здравый смысл в выборе заданий.

2) Есть программа, есть четкая структура и отобраные материалы. В целом подход "вот задание, а вот тут лежит инфа" для меня самый действенный. Также толковый ментор, и митинги с обсуждением каких-то не книжных аспектов это очень хорошо. Чем глубже, тем меньше или менее толково пишут в книгах/гугле.

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

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

Очень понравилось кодинг доджо, соревнование это всегда хорошо, а если против своих же преподавателей-то вдвойне. Хочу еще :)
Василий 

Тренинг по Java Core в КПИ мне очень понравился. С самого начала приятно удивила нормальная организация процесса - в начале тренинга каждый учасник получил свой аккаунт для доступа к репозиторию, email.

Второй и одной из самый прятных неожиданностей стала сама организация материала. Полезные ссылки, статьи, список книжек с указанием глав и СТРАНИЦ, которые можно почитать - я, тогда уже студентка 5-го курса, с таким столкнулась впервые. ))) Вообщем, все на блюдечке. Осталось только написать код и ждать код ревью от менторов или своих напарников. Плюс все непонятные моменты можно уточнить на встречах вживую или в скайп-группе.

В итоге, я осталась очень довольна, что не поленилась вовремя записаться. Плюс для меня этот тренинг стал старт-площадкой для JEE тренинга уже в GLOBALLOGIC.

Тренинг в Глобале ориентиован на изучение enterprise-технологий, а хорошую опорную базу для него может дать именно тренинг по кору в КПИ. На нем я поняла много важных моментов о паттернах проектирования, рефакторинге кода, TDD, которые помогли мне делать новые таски намного быстрее.

Вообщем, спасибо всем, кто приложил руку к тому, что на ФПМ теперь появились такие полезные курсы. ))) 
Антонина

четверг, 7 июня 2012 г.

Самая энергососущая часть - планирование

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



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


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

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

Кроме функциональных требований были так же и нефункциональные. У ребят страдал java code convections, а так как мы стартуем проект не на одну неделю, то code quality должно стоять во главе угла. Так же это все дело надо будет покрыть интеграционными тестами - так мы еще с junit познакомимся. Еще все наработки ребят надо слить воедино в один репозиторий. Для этого мы декомпозировали задачу на объекты, и каждая пара получила себе по объекту. Как объекты будут коммуницировать между собой, ребята решат уже во время разработки.

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



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


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

Есть еще консультант. Который в самом конце придёт в пиджачке с галстучком акуратненько посмотрит на бедного покемона и посмотрит, как юзер отвечал на вопросы и возьмет у бабушки библиотекаря ряд рекомендаций на такой случай и выдаст их. Их юзер и получит. 
Возле каждого объекта (или пакета) должен быть такой яркий образ, чтобы потом не было вопроса "а куда мне этот метод засунуть?" или "кто кого должен вызывать?" или "куда поместить новый класс/ответственность?". Посмеялись и ладно.

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

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

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

Ну, вот как бы и все...

четверг, 31 мая 2012 г.

Мы брейнстормили идеи для стартапа

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

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

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

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

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

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

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

Вот некоторые из самых интересных идей, которые были озвучены/записаны/зарисованы:

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

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

- а еще одно интересное название - "найди еду" :) - может натолкнет на какие-то мысли...

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

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

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

- изучение формул и законов в игровой форме

- идея "снегового кома", когда соревнуются команды и в режиме эстафеты каждому участнику предстоит написать код и передать его дальше на дополнение своему коллеге. 

- программа по автоматическому исправлению гуанокода. 

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

- программа, которая будет переделывать код лабораторных работ в уникальный код, чтобы преподаватель и глазом не моргнул

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

- система, которая позволит накапливать опыт старшекурсников для младших курсов

- "ректорский контроль" - но я так и не понял в чем идея :)

- #$!A703Q#$ - это название игрушки, в которой надо будет дешифровывать что-то, и кто быстрее это сделает, тот и круч

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

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


Закончилось все на позитивной формуле, что $ = t☺^2 и чем более веселую тему ребята выберут для проекта, тем больший успех их ждет. Попрощались и разбежались. А в пятницу ребята соберутся еще раз и снова побрейнстормят, но уже сами. А уже в понедельник мы начнем планироваться.

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

Продолжение обязательно следует...