пятница, 9 апреля 2010 г.

Пытаемся писать планировщик, который планирует за нас, часть 2

Прошло некоторое время, за которое обрисовался кое-какой базовый функционал, который уже получилось накодить. В процессе нарисовался некий общий принцип, частично угнанный у Девида Аллена из его GTD, ну и из ThinkingRock. :) Но видимо из меня бездарный проектировщик, потому что докручивание туда нужных фич похоже больше на головную боль.
Основная идея работы с планировщиком выглядит примерно так:

  1. Юзер вбивает свои "идеи" действий и примерную длину (необязательно, для справки) в некий список идей.

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

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

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

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

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

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

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