воскресенье, 10 ноября 2013 г.

Дело о еженедельном заполнении времени в журнал

Всем привет. Я добавил в своё приложение полезный плагин для генерации отчёта о затраченном на проекте времени. Как правило, многим не хочется его заполнять в течении недели, но потом приходит час Х и приходится мучительно вспоминать, а чем же ты занимался.  

 

Немного о нововведениях

Для начала расскажу о тех изменениях которые произошли с моим приложением за последнее время.
Основные жалобы были на моё приложение были связаны с не очень удобным интерфейсом. Я попытался его изменить, было так:
а теперь стало вот так:
 
Надеюсь стало немного удобнее.
Также сменил иконку на один из символов опытного программиста - жёлтую уточку :)
Добавил возможность отправки автору письма, в котором можно указать интересный совет или сообщить об ошибке.  Также теперь можно хранить файлы конфигурации в папке приложения, а не только в папке пользователя. Добавил локализацию - теперь есть 2 языка: русский и английский. Было исправлено много ошибок и оптимизирована производительность.
Нашёл один интересный способ уменьшить потребление WPFом памяти - можно отключить ускорение силами видеокарты - сразу освобождаем 40 мегабайт памяти. В случае моего приложения, где графики особой нет, это очень полезная функция.
Всем спасибо за ценные советы и пожелания. 

 

Надоедливое заполнение журналов

Как правило. приходится на каждом проекте заполнять журнал времени. На это уходит много времени как у самих разработчиков, так и у их начальства, которое должно следить за тем чтобы всё было не только заполнено но и не было ошибок. Особый случай - когда приходится заполнять несколько  систем параллельно. Иногда кто то случайно удаляет какие то задачи, в итоге в конце месяца всё становится ещё веселее, если надо составлять отчёт за месяц.
Мне эта ситуация порядком надоела и я решил что раз уж я разработчик, то могу что то написать чтобы облегчить эту проблему.
Основная идея состоит в том, что мы можем получить список всех изменений в репозитории, для каждого разработчика, по дням - это существенно упростит процесс вспоминания того, что ты за неделю сделал. Для этого достаточно при каждом изменении указывать в комментарии номер таска в каком то общем формате, например: "#1234 сообщение". Аналогично можем получить список времени в системе управления проектами. В моём случае их аж две - Target Process и внутренняя (по понятным причинам я не могу о ней распространятся). Чтобы каждому не тратить время на создание такого отчёта, можно его всем персонально рассылать на почту в конце недели.
Чтобы эта система была универсальной я решил использовать скрипты на сишарпе, как это было сделано в плагине для автоматизации - теперь я могу у себя локально использовать скрипты которые учитывают специфику моей работы и распространять программу без них, чтобы и остальные могли пользоваться.
Как видим - всё очень просто.

 

Настройка менеджера команды

 Настройки плагина представлены следующим образом:
Тут мы можем создать профиль для проекта и настроить всех участников. Каждый участник идентифицируется емейлом. По нему можно и отчёт отправлять и данные из систем управления проектами получать. Также нужно чтобы для доступа к репозиторию у каждого было правильное имя = емэйлу или существовало какое то правило по которому можно из емэйла получить правильное имя (на худой конец - простой словарь, заданный в скрипте).
 Тут же задаётся какой именно отчёт будет отправлен пользователю на электронную почту - полный, персональный или никакой.
На второй вкладке настраиваются сами скрипты и их параметры (для свн логин и пароль опциональные). Вообще говоря, всё аналогично как в плагине для автоматизации. Для получения данных из svn используется svn.exe, путь к которому надо добавить в Path, а для TargetProcess используется его родной REST API.
на последней вкладке настраивается почта. Приложение поддерживает smtp и еxchange сервера.
Также есть ещё одна вкладка - тут мы настраиваем всякие особенные дни - например праздники или рабочие дни (по умолчанию  суббота и воскресенье  - выходные).

 

Использование нового плагина

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

На второй вкладке настраиваются параметры отчёта и его проверки - количество рабочих дней в неделю, стиль (обычный css, можно найти в папке styles), валидатор (тоже скрипт, но из папки validators). Можно прятать людей у которых всё в порядке, а также копировать результат в экселевский файл или рассылать отчёты по почте.

Каждому участнику может быть выслано письмо, с примерно следующим содержанием (только по нему или по всем участникам, в зависимости от настроек):
Также отчёт можно добавить в планирощик - в определённое время в указанные дни будет автоматически генерироваться отчёт и отправляться письма, по последним указанным настройкам.
Вот такой плагин у меня получился. Возможно кому то будет полезным. Скачать можно всё там же: https://tbox.codeplex.com/ 

Немного о планах


Следующий плагин над которым я работаю - SkyNet - этакая универсальная система для распределённых вычислений по сети. Основная цель - победить тесты которые проходятся часами. Да, их сильно ускорил плагин для параллельного запуска тестов, но всёравно ждать долго, хотелось бы хотя бы минут 5-10 :)

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

Спасибо за внимание.

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

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