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

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

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



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


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

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

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

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



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


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

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

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

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

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

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

Комментариев нет:

Отправить комментарий